我正在使用VS2008與QT 4.7.1和加載項。我對這個環境很陌生。
我設法做必要的設置和運行簡單的「你好世界」。但是當我嘗試使用簡單的 quit()
插槽點擊一個按鈕,我失敗了。當試圖使用Q_OBJECT
時,它也會導致編譯失敗。
評論後Q_OBJECT
代碼被構建和調試。現在它顯示無法找到退出插槽,並使用Q_OBJECT宏
QObject :: connect:no such slot QWidget :: quit()in。\ main.cpp found。下面
是我的代碼
#include <QtGui>
#include "QtGui\QApplication"
#include "QObject"
class Notepad : public QWidget
{
//Q_OBJECT
public:
Notepad();
private slots:
void quit();
private:
QTextEdit *textEdit;
QPushButton *quitButton;
};
Notepad::Notepad()
{
textEdit = new QTextEdit;
quitButton = new QPushButton(tr("Quit"));
connect(quitButton, SIGNAL(clicked()), this, SLOT(quit()));
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(textEdit);
layout->addWidget(quitButton);
setLayout(layout);
setWindowTitle(tr("Notepad"));
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Notepad nt;// = new Notepad();
nt.show();
return a.exec();
}
我已經通過網絡搜索,但未能得到合理的解決方案。大多數解決方案都是在命令行上使用qmake。 此外,我能夠找到項目的.pro文件。
任何幫助表示讚賞。
我沒有在你的代碼中看到你的void void Notepad :: quit(){} **方法在任何地方都是正常的。 – KaZ
我希望如此,因爲這不會導致任何錯誤。也不要刪除這個影響代碼! – Nitesh
@KaZ這是問題所在。退出沒有被定義。這不會導致直接的錯誤,但定義Q_OBJECT宏是因爲它無法找到quit()槽的定義。 – Nitesh