我正在使用 qt creator 为 vtk 应用程序创建一个 gui。
我做了一个#define 操作,我想将该命令分配给 QPushButton。
如果按下按钮,如何使按钮重现我的定义?
例子。用户界面->按钮->...
简单的方法是为你的按钮定义一个默认的响应槽。在您的类定义(定义按钮的同一个类)中,您可以在该slots部分下创建一个默认插槽。
class MyMainApplication : public QMainWindow
{
Q_OBJECT
public:
MyMainApplication(QWidget *parent = 0);
~MyMainApplication();
// More stuff in the public section (...)
public slots:
void on_pushButton_clicked(); // This is the important line
// The remaining definitions in your class
};
Run Code Online (Sandbox Code Playgroud)
现在,您只需on_pushButton_clicked()在类实现中编写函数,它就会响应单击名为 的按钮pushButton。
默认插槽的语法是on_NAMEOFTHEWIDGET_NAMEOFTHESIGNAL.
使用默认插槽,连接是自动进行的。如果要为插槽使用通用名称,则必须手动进行连接。例如,假设
on_pushButton_clicked()您想使用mySlot(). 在类定义中,您将键入
(...)
public slots:
void mySlot();
(...)
Run Code Online (Sandbox Code Playgroud)
在类实现中,可能在构造函数中,在ui->setupUi(this);命令之后,您将连接按钮和插槽:
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(mySlot()));
Run Code Online (Sandbox Code Playgroud)
最后一句话:在这种特殊情况下,我几乎可以肯定插槽也可以是private.