【发布时间】:2018-04-02 13:02:52
【问题描述】:
我是 Qt Creator 的新手,我正在尝试使用打开新窗口的按钮构建第一个窗口。我学习了很多教程,但都遇到了同样的问题:
QObject::connect: ../Gestion_Travaux/MainWindow.cpp:23 中没有这样的信号 QPushButton::click()
这就是我的代码:
Main.cpp
#include <QApplication>
#include "MainWindow.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow frame;
frame.show();
return app.exec();
}
MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include "NewJobWindow.h"
class MainWindow : public QWidget // On hérite de QWidget (IMPORTANT)
{
public:
MainWindow(); //Fenetre principale
public slots:
void OpenNew();
private:
QPushButton *m_NewJob;
QPushButton *m_OldJob;
NewJobWindow *m_NewJobWindow;
};
#endif // MAINWINDOW_H
MainWindow.cpp
#include "MainWindow.h"
#include "NewJobWindow.h"
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QLCDNumber>
#include <QSlider>
MainWindow::MainWindow() : QWidget()
{
setFixedSize(500, 500);
// Construction du bouton nouveau travail
m_NewJob = new QPushButton("Nouveau Travail", this);
m_NewJob->setCursor(Qt::PointingHandCursor);
m_NewJob->setGeometry(30,30,140,30);
// Construction du bouton nouveau travail
m_OldJob = new QPushButton("Travail archive", this);
m_OldJob->setCursor(Qt::PointingHandCursor);
m_OldJob->setGeometry(30,70,140,30);
connect(m_NewJob, SIGNAL(click()), this, SLOT(openNew()));
}
void MainWindow::OpenNew()
{
m_NewJobWindow= new NewJobWindow(); // Be sure to destroy you window somewhere
m_NewJobWindow->show();
}
NewJobWindow.h
#ifndef NEWJOBWINDOW_H
#define NEWJOBWINDOW_H
#include <QApplication>
#include <QWidget>
#include <QPushButton>
class NewJobWindow : public QWidget // On hérite de QWidget (IMPORTANT)
{
public:
NewJobWindow(); //Fenetre de nouveau travail
public slots:
private:
};
#endif // NEWJOBWINDOW_H
NewJobWindow.cpp
#include "NewJobWindow.h"
NewJobWindow::NewJobWindow() : QWidget()
{
setFixedSize(500, 500);
};
我还在寻找我的错误... 任何想法? 谢谢
【问题讨论】:
-
注意信号是clicked 不是
click -
同时添加 Q_OBJECT 宏