簡體   English   中英

可能使QDialog在OSx中抖動

[英]Possible to make QDialog shake in OSx

由於Qt在OSX下使用Cocoa,例如,如果用戶輸入了錯誤的密碼,是否可以使模態QDialog搖動? 我無法找到任何有關它的信息,但在Mac上實現將非常不錯。

謝謝!

我不知道內置的方法,但是您可以自己動搖,如下所示:

頭文件

#include <QtGui>

class ShakyDialog : public QDialog
{
    Q_OBJECT

public slots:
    void shake()
    {
        static int numTimesCalled = 0;
        numTimesCalled++;

        if (numTimesCalled == 9) {
            numTimesCalled = 0;
            return;
        }

        vacillate();
        QTimer::singleShot(40, this, SLOT(shake()));
    }

private:
    void vacillate()
    {
        QPoint offset(10, 0);

        move(((shakeSwitch) ? pos() + offset : pos() - offset));
        shakeSwitch = !shakeSwitch;
    }

    bool shakeSwitch;
};

main.cpp

#include "header.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    ShakyDialog dialog;
    QHBoxLayout layout(&dialog);
    QPushButton button("Push me.");
    layout.addWidget(&button);

    QObject::connect(&button, SIGNAL(clicked()), &dialog, SLOT(shake()));

    dialog.show();
    return app.exec();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM