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


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

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

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

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

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

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

    1.在vs2012里添加信号和槽

    新建一个qt的项目QtDemo

     

    在qtdeom.h里添加槽

    private slots:
             void Btn_OpenClick();

    整体代码

    复制代码
    #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
    复制代码

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

    复制代码
    #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();
    }
    复制代码

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

    我们在窗体上放一个PushButton

    点击编辑信号槽

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

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

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

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

    回到vs2012后F5运行

    2.在Qt里添加信号和槽

    打开 Qt Creator新建一个项目MyQtDemo

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

    点击右键先把转到槽

    打开转到槽窗体

    点击clicked()点击确定

    在mainwindow.cpp里添加QMesageBox

    复制代码
    #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();
    }
    复制代码

    运行

    作者:李鹏
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    数据库事务的四大特性
    MySQL数据库高可用性架构
    java中几种访问修饰符
    zookeeper的leader选举
    zookeeper的集群部署步骤
    MySQL索引设计原则
    SpringMVC框架知识点详解
    Spring框架知识点详解
    JAVA之DAY1
    JDK
  • 原文地址:https://www.cnblogs.com/Peit/p/6103196.html
Copyright © 2020-2023  润新知