如果我尝试直接使用quit()方法,它正在编译完美,但是在运行时出现错误,说"对象::连接:没有这样的插槽myClass :: quit()." 所以要避免这种情况,有什么办法吗?通过使用方法quitPicture()(定义为槽),应用程序正常工作.这是唯一的解决方案吗?
myClass::myClass(QWidget *parent)
: QWidget(parent)
{
QWidget *window = new QWidget;
window->setWindowTitle(QObject::tr("Class"));
QPushButton *quitButton = new QPushButton("&Quit");
// QObject::connect(quitButton, SIGNAL(clicked()), this, SLOT(quit())); //showing run time error
QObject::connect(quitButton, SIGNAL(clicked()), this, SLOT(quitPicture())); //working perfectly
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(this);
layout->addWidget(quitButton);
window->setLayout(layout);
window->show();
}
void myClass::quitPicture()
{
std::cout << "calling quitPicture" << std::endl;
QApplication::quit();
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*ité 13
按钮的clicked信号可以直接连接到应用程序的quit插槽:
QObject::connect(quitButton, SIGNAL(clicked()),
QApplication::instance(), SLOT(quit()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16119 次 |
| 最近记录: |