How to connect a signal to a slot

◇◆丶佛笑我妖孽 提交于 2019-12-09 03:56:31

问题


I let Qt-Creator to generate me a basic window app using Qt. I added there a button and try to connect it to a slot. It compiles fine but the app crashes and returns 3, please help me, I don't know what to do.

#include "form1.h"
#include "ui_form1.h"
#include <iostream>

Form1::Form1(QWidget *parent) : QMainWindow(parent), ui(new Ui::Form1)
{
    connect(ui->buttonLoad,&QPushButton::clicked,this,&Form1::ButtonLoadClick);
    ui->setupUi(this);
}

Form1::~Form1()
{
    delete ui;
}

void Form1::ButtonLoadClick(){
    using namespace std;
    cout << "click!" << endl;
}

In the header I only added one public slot.

#ifndef FORM1_H
#define FORM1_H

#include <QMainWindow>

namespace Ui {
class Form1;
}

class Form1 : public QMainWindow
{
    Q_OBJECT

public:
    explicit Form1(QWidget *parent = 0);
    ~Form1();

public slots:                        //here
    void ButtonLoadClick();          //here

private:
    Ui::Form1 *ui;
};

#endif // FORM1_H

回答1:


Try:

Form1::Form1(QWidget *parent) : QMainWindow(parent), ui(new Ui::Form1)
{
    ui->setupUi(this);
    connect(ui->buttonLoad,&QPushButton::clicked,this,&Form1::ButtonLoadClick);
}

setupUi creates all visual components, including push button.



来源:https://stackoverflow.com/questions/15854685/how-to-connect-a-signal-to-a-slot

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!