在Qt Creator 和在 vs2012 里添加信号和槽

时间:2024-06-20 12:35:20

原文地址:http://www.cnblogs.com/li-peng/p/3644812.html

作者:*
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

Qt  的窗口部件通过发射信号(signal)来表明一个用户的动作已经发生了或者是一个状态已经改变了。

如点击一个QPushButton时,按钮会发送一个clicked()信号,信号可以与函数(在qt里称做槽slot)相连接

可以把信号理解为c#里的事件

在vs2012里和在Qt Creator里添加信号和槽不一样,这里把两种环境下怎么添加详细说明一下

1.在vs2012里添加信号和槽

新建一个qt的项目QtDemo

在Qt Creator 和在 vs2012 里添加信号和槽

在qtdeom.h里添加槽

private slots:
void Btn_OpenClick();

整体代码

在Qt Creator 和在 vs2012 里添加信号和槽
#ifndef QTDEMO_H
#define QTDEMO_H #include <QtWidgets/QMainWindow>
#include "ui_qtdemo.h" class QtDemo : public QMainWindow
{
Q_OBJECT public:
QtDemo(QWidget *parent = 0);
~QtDemo(); private:
Ui::QtDemoClass ui;
private slots:
void Btn_OpenClick();
}; #endif // QTDEMO_H
在Qt Creator 和在 vs2012 里添加信号和槽

在qtdemo.cpp里添加实现,这里我们只是弹出一个QMessagBox

在Qt Creator 和在 vs2012 里添加信号和槽
#include "qtdemo.h"
#include <QMessageBox>
QtDemo::QtDemo(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this); } QtDemo::~QtDemo()
{ } void QtDemo::Btn_OpenClick()
{
QMessageBox msg;
msg.setText("HelloWord!");
msg.exec();
}
在Qt Creator 和在 vs2012 里添加信号和槽

双击qtdemo.ui打开qt设计师窗体

我们在窗体上放一个PushButton

在Qt Creator 和在 vs2012 里添加信号和槽

点击编辑信号槽

在Qt Creator 和在 vs2012 里添加信号和槽

点击PushButton手动红色箭头指向窗体

在Qt Creator 和在 vs2012 里添加信号和槽

点击QtDemoClass窗口下的编辑打开信号槽窗体点击添加把我们之前写的方法名称加到里边

在Qt Creator 和在 vs2012 里添加信号和槽

确定关闭后在配置连接窗体下点点击licked()和Btn_OpenClick()后确定

在Qt Creator 和在 vs2012 里添加信号和槽

点击保存关闭qt设计师窗体

回到vs2012后F5运行

在Qt Creator 和在 vs2012 里添加信号和槽

2.在Qt里添加信号和槽

打开 Qt Creator新建一个项目MyQtDemo

在Qt Creator 和在 vs2012 里添加信号和槽

点击mainwindow打开设计窗体在窗体上添加一个PushButton

点击右键先把转到槽

在Qt Creator 和在 vs2012 里添加信号和槽

打开转到槽窗体

在Qt Creator 和在 vs2012 里添加信号和槽

点击clicked()点击确定

在mainwindow.cpp里添加QMesageBox

在Qt Creator 和在 vs2012 里添加信号和槽
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
} MainWindow::~MainWindow()
{
delete ui;
} void MainWindow::on_pushButton_clicked()
{
QMessageBox msg;
msg.setText("Hello Word !");
msg.setStandardButtons(QMessageBox::Ok|QMessageBox::Cancel);
msg.setDefaultButton(QMessageBox::Cancel);
msg.exec();
}
在Qt Creator 和在 vs2012 里添加信号和槽

运行

在Qt Creator 和在 vs2012 里添加信号和槽

作者:*
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。