本人是
新手,刚开始学习信号和槽,遇到些
问题,在这里请教一下
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- signals:
- void mySignal(int x);
- public slots:
- void mySlot(int x);
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
- private slots:
- void on_pushButton_2_clicked();
- void on_pushButton_clicked();
- private:
- Ui::MainWindow *ui;};
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- connect(this,SIGNAL(mySignal(int x)),ui->pushButton_2,SLOT(clicked()));
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::on_pushButton_2_clicked()
- {
- QMessageBox::about(this,"Tsignal","111");
- }
- void MainWindow::on_pushButton_clicked()
- {
- emit mySignal(5);
- }
上面是mainwindow.h 和mainwindow.cpp的代码
编译时候会报错:
D:\QTCreator\QT aaa\TsignalApp-build-desktop\debug\moc_mainwindow.cpp:80:
错误:undefined reference to `MainWindow::mySlot(int)'
:-1: 错误:collect2: ld returned 1 exit status
把void mySlot(int x);注释掉 编译通过,但还是会报错
D:\QTCreator\QT aaa\TsignalApp-build-desktop\debug\TsignalApp.exe 启动中...
Object::connect: No such
signal MainWindow::mySignal(int x) in [url]..\TsignalApp\mainwindow.cpp:11[/url]
Object::connect: (sender name: 'MainWindow')
Object::connect: (receiver name: 'pushButton_2')
请问哪里出了问题?谢谢!