如果我嘗試直接使用quit()方法,它編譯得很完美, 但是在運行時出現錯誤,說「Object :: connect:No such slot myClass :: quit() 「。 所以爲了避免這種情況,有什麼辦法嗎? 通過使用方法quitPicture()(定義爲插槽)應用程序工作正常。 這是唯一的解決方案嗎?調用QApplication的quit()方法
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();
}
非常感謝。有用 :) – suma 2013-02-24 03:40:54