如何在静态方法中与QPushButton交互

时间:2013-01-16 08:35:52

标签: c++ qt

我有弹出窗口,有2个按钮,我想在使用时使用静态Methode中的那些按钮的SIGNAL和SLOT

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

该程序崩溃任何想法如何解决这个问题。 谢谢你的帮助

3 个答案:

答案 0 :(得分:1)

您必须编写一个调用静态方法的插槽

答案 1 :(得分:0)

您已经问过类似的question,答案是一样的:您不能在静态方法中使用this,因此您必须传递一个dosmt()的对象也可以插入它。

答案 2 :(得分: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();
}

只是一个简短的例子,您必须连接SIGNAL和SLOT,因为Qt http://doc.qt.digia.com/qt/signalsandslots.html

记录了这一点。