1.建立连接
Qt通过信号(signal)与槽(slot)来响应用户的动作,信号和槽是一种高级接口,它们被应用于对象之间的通信,它们是Qt的核心特性,也是Qt不同于其它同类工具包的重要地方之一。因为博主也在入门的路上,所以对于其具体机制的实现暂时也无法给出详细的分析,所以以教材上的一个基本例子来熟悉此部分。
这个应用程序就由一个退出按钮构成,用户可以单击按钮退出程序。
#include <QApplication> #include <QPushButton> int main(int argc,char *argv[]) { QApplication app(argc,argv); QPushButton *button = new QPushButton("Quit"); //将按钮的click()信号和QApplication对象的quit()槽连接起来 QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit())); button->show(); return app.exec(); }
Qt的窗口部件通过发射信号(signal)来表明一个用户动作的发生或状态的改变,信号可以与槽(slot)相连接,以便信号发射时,槽便可以得到自动执行。
程序运行效果:
2.窗口部件的布局
我用一个例子来说明如何用布局(layout)来管理窗口中窗口部件的几何形状,也还要说明如何利用信号和槽来同步窗口部件。
该应用程序可以用来询问用户的年龄,由微调框(spin box)和滑块(slide)来完成年龄的输入:
#include <QApplication> #include <QHBoxLayout> #include <QPushButton> #include <QSlider> #include <QSpinBox> int main(int argc, char *argv) { QApplication app(argc,argv); //该程序将Widget设置为应用程序的主窗口 QWidget *window = new QWidget; window->setWindowTitle("Enter Your Age"); //创建QSpinBox和QSlider两个窗口对象,并对其部分属性进行设置 QSpinBox *spinBox = new QSpinBox; QSlider *slider = new QSlider(Qt::Horizontal); //设置有效范围 spinBox->setRange(0,130); slider->setRange(0,130); QPushButton *button = new QPushButton("QUIT"); //设置QSpinBox和QSlider两个对象的信号&槽,使其数值同步 QObject::connect(spinBox,SIGNAL(valueChanged(int)), slider,SLOT(setValue(int))); QObject::connect(slider,SIGNAL(valueChanged(int)), spinBox,SLOT(setValue(int))); QObject::connect(button,SIGNAL(clicked()), &app,SLOT(quit())); spinBox->setValue(35); QHBoxLayout *layout = new QHBoxLayout; //布局管理器(layout manager) layout->addWidget(spinBox); layout->addWidget(slider); //自动重定义父对象,成为这个安装了布局的窗口部件的子对象 layout->addWidget(button); window->setLayout(layout); window->show(); return app.exec(); }
布局管理器(layout manager)就是一个能够对其所负责窗口部件的尺寸大小和位置进行设置的对象,其主要的三个布局管理器类:
- QHBoxLayout 水平方向上排列,从左至右。
- QVBoxLayout 竖直方向上排列,从上到下。
- QGridLayout 网格形式排列。
目前见过的类之间的继承树:
相关推荐
学习笔记----图形界面程序Qt安装及其在2410-s上的移植 学习笔记----图形界面程序Qt安装及其在2410-s上的移植 学习笔记----图形界面程序Qt安装及其在2410-s上的移植
qt-webassembly-examples例子工程qt-webassembly-examples例子工程qt-webassembly-examples例子工程qt-webassembly-examples例子工程qt-webassembly-examples例子工程qt-webassembly-examples例子工程qt-webassembly...
qt-win-opensource-4.8.5-vs2010.exe与VS2010-qt-vs-addin-1.1.11.rar合集
Qt学习笔记--图形视图框架很好的,步骤清楚,手把手的教你使用Qt绘制图形视图
Visual Studio 2013、Visual Studio 2015 两种 C++ qt必备插件,分值最低没有之一
qt-sdk-win-opensource-2010.05.exe QT很经典的一个版本,包含qtdemo,可以直接看各种demo运行效果,包括qml程序, ...qt-sdk-win-opensource-2010.05.part2.rar qt-sdk-win-opensource-2010.05.part3.rar
从Qt官网上下载的Qt的解决方案资料库(Qt Solutions Archive) http://qt.nokia.com/products/qt-addons/solutions-archive/ 有JPEG2000的,有Windows中Services的,有浏览器插件的,有单应用程序的,有SOAP的,有...
QT入门到实战篇-02-对象树及坐标系
学习Qt的好书。。。。。 学习Qt的好书。。。。。 学习Qt的好书。。。。。 学习Qt的好书。。。。。 学习Qt的好书。。。。。 学习Qt的好书。。。。。
qt-creator-linux-x86-opensource-1.3.0
qt学习笔记 qt学习笔记 qt学习笔记 qt学习笔记
Qt入门学习实践-Practice
qt-opensource-windows-x86-msvc2015_64-5.8.0:vs2015版本的qt,解决官网下载不了的问题,已存在百度网盘
qt-sdk-win-opensource-2010.05.exe QT很经典的一个版本,包含qtdemo,可以直接看各种demo运行效果,包括qml程序demo, ...qt-sdk-win-opensource-2010.05.part2.rar qt-sdk-win-opensource-2010.05.part3.rar
qt-vs-addin-1.2.5.part2
截至 2009-12-15 nokia 官方公布的最新 Qt & Eclipse 插件。注意:本插件只匹配于 64 位的 Linux 操作系统。关于安装 Qt 插件 到 Eclipse 步骤,请参考作者的 Csdn 博客:Linux 下集成 Qt 插件至 Eclipse 全过程,...
qt-creator-win-opensource-2.3.1.exe qt-creator-win-opensource-2.3.1.exe qt-creator-win-opensource-2.3.1.exe
1、新手上路,官方教程 2、qt学习之路1-18 3、进阶学习 4、深入理解qt
qt内嵌入vs进行开发的连接工具,支持vs2008+qt4.7.3,傻瓜式安装
工具包