QT学习笔记2
初探信号槽
代码如下:
QPushButton *button=new QPushButton("quit");
QObject::connect(button,SIGNAL(clicked()),&a,SLOT(quit()));
button->show();
QObject是所有类的根。Qt使用这个QObject实现了一个单根继承的C++。它里面有一个connect静态函数,用于连接信号槽。注意是静态函数::static。
发出信号的对象指针: button
SIGNAL 信号: clicked 点击鼠标新红
接收信号的对象指针: &a
槽函数SLOT: quit()
这种信号槽机制的原理就是指定两个对象,一个对象发出信号,一个对象响应信号。实际上和MFC的消息响应机制类似,信号就是消息,也就是可以自定义消息。槽函数就是消息响应函数,用来响应消息,做具体的任务。
组件布局
注意一点,在组件进行信号槽连接时,信号和槽如果有参数,必须加上!
QWidget* myWidget=new QWidget;
myWidget->setWindowTitle("Enter your age");
QSlider* mySlider=new QSlider(Qt::Horizontal);
QSpinBox *mySpinBox=new QSpinBox;
mySlider->setRange(0,100);
mySpinBox->setRange(0,100);
QSlider* mySlider1=new QSlider(Qt::Horizontal);
QSpinBox *mySpinBox1=new QSpinBox;
mySlider1->setRange(0,100);
mySpinBox1->setRange(0,100);
QObject::connect(mySpinBox,SIGNAL(valueChanged(int)),mySlider,SLOT(setValue(int)));
QObject::connect(mySlider,SIGNAL(valueChanged(int)),mySpinBox,SLOT(setValue(int)));
mySpinBox->setValue(50);
QObject::connect(mySpinBox1,SIGNAL(valueChanged(int)),mySlider1,SLOT(setValue(int)));
QObject::connect(mySlider1,SIGNAL(valueChanged(int)),mySpinBox1,SLOT(setValue(int)));
QHBoxLayout *myHoxlayout=new QHBoxLayout;
myHoxlayout->addWidget(mySlider);
myHoxlayout->addWidget(mySpinBox);
QVBoxLayout *myVoxlayout=new QVBoxLayout;
myVoxlayout->addLayout(myHoxlayout);
myVoxlayout->addWidget(mySlider1);
myVoxlayout->addWidget(mySpinBox1);
myWidget->setLayout(myVoxlayout);
myWidget->show();
布局的关键在于QHBoxLayout QVBoxLayout。layout使用addWidget添加组件,使用addLayout可以添加子布局。窗口通过setLayout进行布局设置。
程序运行结果

API文档的使用
QT的文档可以在可以在Qt的安装目录下的bin里面的assistant.exe中看到Qt的文档。
QT学习笔记2的更多相关文章
- qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果
应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看执行效果,我用的群创7寸屏 ...
- Qt学习笔记-Widget布局管理
Qt学习笔记4-Widget布局管理 以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,f ...
- QT学习笔记(一)——Helloworld
QT学习笔记(一)--Helloworld 一.调试的基本方法: Log调试法 --在代码中加入一定的打印语句 --打印程序状态和关键变量的值 断点调试法: --在开发环境中的对应代码行加上断点 -- ...
- qt学习笔记(七)之数据库简介(所有支持数据库类型的列表)
笔者最近用Qt写公司的考勤机.本来要求是要基于frameBuffer下用自己开发的easyGUI来进行上层应用开发,但是考虑到easyGUI提供的接口不是很多,就考虑用Qt来开发,顺带练练手. 废话不 ...
- Qt学习笔记(2)-利用StackWidget实现选项卡式页面
学习笔记第二篇,利用Qt实现选项卡式的页面,效果如图1.1-图1.3所示.程序实现的功能是通过点击状态栏实现不同页面的切换,实际上Qt中自带有Tab选项卡式的控件,本文利用StackWidge实现类似 ...
- Qt学习笔记(1) hello world
Qt的简介: Qt是一个跨平台的C++ GUI库实现,原本只是以为它只提供一些图形接口,看来我还是低估了它,采用文档Qt学习之路2开始学习,不知道这个文档是不是有点老了,管他呢,先了解下. 搭建环境: ...
- 【Qt学习笔记】Qt+VS2010的配置
http://blog.csdn.net/jocyln9026/article/details/8575218 关于Qt Qt是1991年由Trolltech公司开发的一个跨平台的C++图形用户界面应 ...
- QT学习笔记1
不准备用MFC了,想切换到QT.所以跟着网上的一个笔记学习. 1 开发环境是VS2008+QT4.7+VassistX 具体如何配置看这个帖子:http://qimo601.iteye.com/blo ...
- QT学习笔记(一)——ui的认识
////////////2015/08/06/////////////////// ///////////by xbw////////////////////////// //////////环境 Q ...
- 【Qt学习笔记】窗口部件整理
关于Qt中窗口部件的学习 今天开始学习Qt的窗口部件,领略一下Qt的神奇之处,记得2012年的那年冬天,我还学Java呢,现在基本上和Java说再见了,不过对于嵌入式的开发Qt还是举足轻重的,我想趁着 ...
随机推荐
- 备库Seconds_Behind_Master的计算
背景 在mysql主备环境下,主备同步过程如下,主库更新产生binlog, 备库io线程拉取主库binlog生成relay log.备库sql线程执行relay log从而保持和主库同步. 理论上主库 ...
- Android 自定义View 三板斧之三——重写View来实现全新控件
通常情况下,Android实现自定义控件无非三种方式. Ⅰ.继承现有控件,对其控件的功能进行拓展. Ⅱ.将现有控件进行组合,实现功能更加强大控件. Ⅲ.重写View实现全新的控件 本文来讨论最难的一种 ...
- Metrics-Java版的指标度量工具之二
接上<Metrics-Java版的指标度量工具之一> 4. Histograms Histograms主要使用来统计数据的分布情况,最大值.最小值.平均值.中位数,百分比(75 ...
- 我的ORM之示例项目
我的ORM索引 示例项目 code.taobao.org/svn/MyMvcApp/ 1. 编译 MyTool ,DbEnt, WebApp, 安装JRE. 2. 配置 Web.config 数据库字 ...
- 在asp.net WebAPI 中 使用Forms认证和ModelValidata(模型验证)
一.Forms认证 1.在webapi项目中启用Forms认证 Why:为什么要在WebAPI中使用Forms认证?因为其它项目使用的是Forms认证. What:什么是Forms认证?它在WebAP ...
- dojo/request模块整体架构解析
总体说明 做前端当然少不了ajax的使用,使用dojo的童鞋都知道dojo是基于模块化管理的前端框架,其中对ajax的处理位于dojo/request模块.一般情况下我们使用ajax请求只需要引入do ...
- 两段for循环代码的区别
第一段: #include<iostream>using namespace std;int main(){ int a; int x; for(a=0,x=0;a<=1&& ...
- 安卓手动新增SDK
一:下载SDK 比如,我正要使用sdk5.0,于是我随便找了一个源下载:http://download.csdn.net/detail/dan_seek/8216801 二:整合进eclipse 解压 ...
- GLFW初体验
GLFW - 很遗憾,没有找到FW的确切含义,Wiki上没有,GLFW主页也没有.猜测F表示for,W表示Window GLFW是干啥用的? 一个轻量级的,开源的,跨平台的library.支持Open ...
- ASP.NET MVC从视图传递多个模型到Controller
从后台组织好数据然后传递到页面倒是水到渠成很方便,因为MVC自身就将这样的需求内建到了这个系统中.我只需要在后台组织好一个List 或IEnumerable类型的变量,将需要传递的数据模型扔进去便可. ...