2013-08-22 257 views
2

我几乎是Qt的初学者。无论如何,我试图使用信号和插槽来显示一个小部件,一旦按下按钮。我创建了这个小部件,并且已经完成了connect(),但是我在SLOT()中放置了什么?我试过show(widget),但说实话我不知道该放什么。Qt PushButton信号和插槽

回答

6

QWidget有一个名为show()的公开插槽。您可以将您的按钮的clicked()信号连接到您的小部件的show()插槽。 Read more about signals and slots here

例子:

QPushButton *button = new QPushButton(this); 
QWidget *widget = new QWidget(this); 
widget->setWindowFlags(Qt::Window); 
connect(button, SIGNAL(clicked()), widget, SLOT(show())); 

你也可以创建自己的插槽,并从那里调用widget->show()。然后将按钮的clicked()信号连接到您的插槽。

实施例:

//myclass.h 
... 
public: 
    QWidget *myWidget; 

public slots: 
    void mySlot(); 

//myclass.cpp 
... 
    connect(button, SIGNAL(clicked()), this, SLOT(mySlot())); 
... 

void MyClass::mySlot() 
{ 
    myWidget->show(); 
}