0

2 つのボタンを備えたポップアップ ウィンドウがあり、これらのボタンの SIGNAL と SLOT を静的 Methode で使用するときに使用したい

connect(allbox->getAcceptButton(),SIGNAL(clicked()),this,SLOT(dosmt());

プログラムは、これを解決する方法を考えてもクラッシュします。ご協力いただきありがとうございます

4

3 に答える 3

1

静的メソッドを呼び出すスロットを作成する必要があります

于 2013-01-16T09:09:37.857 に答える
0
 class Test: public QObject
 {
     Q_OBJECT
 ...
 public:
     static void testMethod();
 public slots:
     void testSlot();

 };

Test::Test()
{
    QObject::connect(button, SIGNAL(clicked(), this, SLOT(testSlot()));
}

Test::testSlot()
{
    Test::testMethod();
}

ほんの短い例ですが、Qt http://doc.qt.digia.com/qt/signalsandslots.htmlで文書化されているように、SIGNAL を SLOT に接続する必要があります。

于 2013-01-16T09:25:06.843 に答える
0

すでに同様の質問をしていますが、答えは同じです。静的メソッドでは使用できないため、スロットをthis持つオブジェクトも渡す必要があります。dosmt()

于 2013-01-16T08:42:53.393 に答える