【问题标题】:How to connect a signal to a slot如何将信号连接到插槽
【发布时间】:2013-04-06 18:46:01
【问题描述】:

我让 Qt-Creator 使用 Qt 为我生成了一个基本的窗口应用程序。我在那里添加了一个按钮并尝试将其连接到一个插槽。它编译正常,但应用程序崩溃并返回 3,请帮助我,我不知道该怎么办。

#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;
}

在标题中我只添加了一个公共插槽。

#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

【问题讨论】:

  • 你使用的是什么 Qt 版本?
  • 我已经安装了这个版本:Qt 5.0.1 for Windows 32-bit (MinGW 4.7, 823 MB)

标签: c++ qt signals-slots


【解决方案1】:

试试:

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

setupUi 创建所有可视化组件,包括按钮。

【讨论】:

  • 噢,我不知道!谢谢你。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 1970-01-01
相关资源
最近更新 更多