我知道要在类中使用 Qt 的信号和槽机制,该类必须包含Q_OBJECT
宏,但我试图在main()
不使用任何类的情况下使用信号和槽。
到目前为止,这是我的代码:
#include <QApplication>
#include <QWidget>
#include <QTextEdit>
#include <QtGui>
void saveText();
int main(int argv, char **args)
{
QApplication app(argv, args);
QTextEdit textEdit;
QPushButton saveButton("Save!");
QPushButton exitButton("Exit!");
QObject::connect(&exitButton,SIGNAL(clicked()),qApp,SLOT(quit()));
QObject::connect(&saveButton,SIGNAL(clicked()),qApp,SLOT(saveText()));
QVBoxLayout vlyt;
vlyt.addWidget(&textEdit);
vlyt.addWidget(&exitButton);
vlyt.addWidget(&saveButton);
QWidget mainWindow;
mainWindow.setLayout(&vlyt);
mainWindow.show();
return app.exec();
}
void saveText()
{
exit(0);
}
这是生成的 GUI 窗口:
从上面的代码中,退出按钮连接到quit()
,这是一个 Qt 函数,当单击它时它可以工作。分配给功能的保存按钮saveText()
被配置为退出,但不这样做。
请告诉我在理解 Qt 中的信号和插槽方面哪里出了问题。