Qt Creator和VS2010中添加槽信号_差异与详解
1.前言:
Qt 的窗口部件通过发射信号(signal)来表明一个用户的动作已经发生了或者是一个状态已经改变了。如点击一个QPushButton时,按钮会发送一个clicked()信号,信号可以与函数(在qt里称做槽slot)相连接。可以把信号理解为MFC里的事件。信号与槽的关系,我们也可以类比为为,事件驱动关系。
利用QT做UI设计的一般分为两派,发烧派采用Qt Creator设计,平台友好,视觉冲击强,流线式设计。微软派采用Visual Studio开发,此派深受微软毒害~ 已经难以自拔~
就个人而言,属于微软派,用久了想脱身也不容易了。
这里需要面对一个问题就是VS与Qt Creator中添加“信号与槽”是不一样的,需要注意。
2.Visual Studio2010中添加槽
Step1:创建对话框窗口,选择“创建界面”复选框
2.头文件中添加“槽声明”
#ifndef ADDSOLTTOVS_H #define ADDSOLTTOVS_H#include <QtWidgets/QDialog> #include "ui_addsolttovs.h"class AddSoltToVs : public QDialog {Q_OBJECTpublic:AddSoltToVs(QWidget *parent = 0);~AddSoltToVs(); private:Ui::AddSoltToVsClass ui; 槽声明 public slots:void Btn_Click(); };#endif // ADDSOLTTOVS_H
3.源文件中进行“槽实现”(注意添加消息盒子的头文件)
#include "addsolttovs.h" #include <QMessageBox>AddSoltToVs::AddSoltToVs(QWidget *parent): QDialog(parent) {ui.setupUi(this); }AddSoltToVs::~AddSoltToVs() { } void AddSoltToVs::Btn_Click() {QMessageBox msg;msg.setText("Hello World!");msg.exec(); }
4.打开UI,进入Qt Designer,建立槽
注意:别把槽的函数名写错了![]()
注意:一定要把Designer关闭了再去调试我们的VS主程序
5.运行结果
没错,这就意味着,我们成功了。
3.Qt Creator中添加槽过程
诶呀。支持Creator的发烧友们欢呼吧~ 的确,很简单~
1.打开 Qt Creator新建一个项目MyQtDemo
2.点击mainwindow打开设计窗体在窗体上添加一个PushButton。点击右键先把转到槽
3.打开转到槽窗体
4.点击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 World !");msg.setStandardButtons(QMessageBox::Ok|QMessageBox::Cancel);msg.setDefaultButton(QMessageBox::Cancel);msg.exec(); }
5.运行即可。
Qt Creator和VS2010中添加槽信号_差异与详解相关推荐
- mysql添加新的实例_MySQL中添加新用户权限的实例详解
有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表.比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些. 下面的例子显示出如何使用MySQL客户安装新用户. ...
- html中添加butter按钮,Butter Knife使用详解
Butter Knife 官方说明给出的解释是 Bind Android views and callbacks to fields and methods. Field and method bin ...
- Qt Creator删除toolbar中多余的“分隔符”
Qt Creator删除toolbar中多余的"分隔符" 问题描述 在使用Qt Creator开发的时候,添加toolbar的过程中,不小心多添加了3个"分隔符" ...
- Qt Creator在属性之间添加绑定
Qt Creator在属性之间添加绑定 在属性之间添加绑定 在属性之间添加绑定 要动态更改对象的行为,可以在两个对象的属性之间创建绑定.为了创建属性绑定,为属性分配了一个JavaScript表达式,该 ...
- Qt Creator在浏览器中预览
Qt Creator在浏览器中预览 在浏览器中预览 在浏览器中预览 Qt Design Viewer是在您的Web浏览器中运行的QML查看器.这意味着您可以在台式机和移动设备上的最广泛使用的Web浏览 ...
- VS2010中添加lib库引用
一.VS2010中添加lib库引用: 1 菜单 项目---> 属性--->配置属性-->链接器---->输入---附加依赖项, 加入库名,如: my_API.lib; ...
- Photoshop CS 中的“照片滤镜/Photo Filter”命令详解(转)
Photoshop CS 中的"照片滤镜/Photo Filter"命令详解(转)[@more@] 这是一个跟摄影有关的重要图像调整命令. 有关这一命令的教程,现在网上没一个能说得 ...
- php 修改 wordpress,修改WordPress中文章编辑器的样式的方法详解
这篇文章主要介绍了修改WordPress中文章编辑器的样式的方法详解,同时文中也推荐了两款取代默认文章编辑器的插件,需要的朋友可以参考下 自定义文章编辑器的样式每一个 WordPress 主题的文章样 ...
- crashdumpandroid_Android 中Crash时如何获取异常信息详解及实例
Android 中Crash时如何获取异常信息详解 前言: 大家都知道,Android应用不可避免的会发生crash,无论你的程序写的多完美,总是无法完全避免crash的发生,可能是由于Android ...
最新文章
- VoxelNet阅读笔记
- 淮阴工学院研究生计算机,先鸣论坛第六期/考研加油站(五)|2017届淮阴工学院计算机学院考研最高分王杰和你一起分享他的考研经验...
- java用循环方式实现和计算机玩猜拳的程序
- Nginx Upload Module 上传模块
- Thingsboard 3.1.0 - REST API
- JupyterHub与OpenLDAP集成
- plc模拟器软件_【万泉河】咸鱼上买了个二手施耐德PLC,上当了。
- 塑料盖行业调研报告 - 市场现状分析与发展前景预测
- 不管你信不信,这就是程序员996的真实内幕!
- 洛谷 P5564: [Celeste-B]Say Goodbye
- div九宫格图片布局
- php实现微博话题 功能,PHP实现微博的@好友和话题功能
- 使用虚拟机备份软件恢复Microsoft Hyper-V虚拟机
- 富途证券赴美上市喜迎开门红,盘中一度大涨近45%
- (译)三维空间中的几种坐标系
- 玲珑学院 1127 咸鱼文章
- Swift使用UIImagePickerController 从相册选择图片、从相机选择图片
- 两个EXcel的关联表格进行合并详细步骤
- 如何设置三条均线,学习三根均线买卖法?一起来学习
- 个推推送 SDK常见问题检查 03
热门文章
- hdu 2047(递推)
- 《机器学习实战》chapter 11 使用apriori算法进行关联分析
- hdu 1754 I Hate It(线段树之 单点更新+区间最值)
- Golang的匿名函数和闭包
- Linux 内核链表 【转】
- 程序设计实习MOOC / 程序设计与算法(三)第一周测验
- Linux和Windows的遍历目录下所有文件的方法对比
- SharePoint 2013 Error - TypeError: Unable to get property 'replace' of undefined or null reference
- hdu 1251 统计难题(trie树入门)
- Java并发笔记(三)