- 2
- 0
- 约5.01万字
- 约 56页
- 2021-01-15 发布于云南
- 举报
1.1 从 Hello Qt 开始 收藏
差不多所有的程序教材都从 Hello 开始,下面就是这个程序的 qt 版本。
1 #include QApplication
2 #include QLabel
3 int main(int argc, char *argv[])
4 {
5 QApplication app(argc, argv);
6 QLabel *label = new QLabel(Hello Qt!);
7 label-show();
8 return app.exec();
9 }
按行解析以上 9 行代码
第一,二行:是代码中需要使用的类的头文件。在 Qt4 中,可以写成 QAppli
cation 的格式,当然也可写成 “QApplication.h 。”
第三行:是 main 函数的标准写法
第五行:创建一个 QApplication 对象,管理应用程序的资源。
第六行: QLabel 对象,QLabel 是一个 Qt 提供的小控件,显示一行文本。
第七行:显示 QLabel 。
第八行:QApplication.exec() ,让程序进入消息循环。等待可能的菜单,工具
条,鼠标等的输入,进行响应。
将以上代码放到名为 hello.cpp 中,保存,编译过程如下:
qmake -project ,qmake 命令创建 ,是平台无关的工程文件。
在 所在目录下,运行 make (unix )或者 nmake (windows )。
第 6 行代码还可以如下替换:
QLabel *label = new QLabel(h2iHello/i
font color=redQt!/font/h2);
这里面包含了 html 文本,显示的字体,颜色会改变。
实际程序中,下面两行是比不可少的。
QApplication app(argc, argv);
return app.exec();
1.2 连接信号和响应函数 收藏
连接信号和响应函数
这个例子用来说明怎么响应信号,和 hello 程序的源代码相似,原来的 Label
用一个按钮代替,点击时退出程序。
源程序如下:
1 #include QApplication
2 #include QPushButton
3 int main(int argc, char *argv[])
4 {
5 QApplication app(argc, argv);
6 QPushButton *button = new QPushButton(Quit);
7 QObject::connect(button, SIGNAL(clicked()),
8 app, SLOT(quit()));
9 button-show();
10 return app.exec();
11 }
当有所动作或者状态改变, qt 的控件会发出消息( signal ),例如,当点
击按钮时,按钮会发送 clicked() 消息,这个消息可以连接到一个函数上(这个
函数在这里成为 slot )。这样,当一个消息发送时, slot 函数可以自动执行。 在
这个例子中,我们连接了按钮的 clicked 信号和 QApplication 的quit 函数,
语法如第七,八行所示。
编译以上程序,将以上代码放在 quit.cpp 文件中,保存。
依次运行
qmake -project
qmake
make(unix or linux) or nmake(windows) 然后运行程序,点击 Quit 按钮,程序将会中止。
1.3 控件的几何排列- Laying Out Widgets 收藏
在这个小节中,我们说明在一个窗口中如何排列多个控件。学习利用 signal
和 slot 的方法使控件同步。 程序要求用户通过 spin box 或者 slider 输入年龄。
程序中使用了三个控件: QSpinBox ,QSlider 和 QWidget 。QWidget 是这个
程序的主窗口。 QSpinBox 和 QSlider 被放在 QWidget 中;他们是 QWidget
的 children 。反过来,我们也可以称 QWidget 是 QSpinBox 和 QSlider 的 p
arent 。QWidget 没有 parent ,因为它是程序的顶层窗口。在 QWidget 及其
子类的构造函数中,都有一个 QWidget* 参数,用来指定它们的父控件。
源代码如下:
1 #include QApplication
2 #include QHBoxLayout
3 #include QSlider
4 #include QSpinBox
5 int main(int argc, char *arg
您可能关注的文档
- 垃圾分类知识[共5页].doc
- 垃圾分类诗歌[共10页].doc
- 基本乐理课后练习题[共46页].doc
- 处理客户异议的100条经典话术[共7页].doc
- 复变函数课后习题答案(全)[共130页].doc
- 外科手术切口分类[共3页].doc
- 外贸英语函电课后答案[共77页].doc
- 大学物理下册课后习题答案[共129页].doc
- 大学物理祝之光版--课后习题答案[共62页].doc
- 大学生创新思维培养途径[共20页].doc
- 河北盐山中学等校2025-2026学年上学期高三一模化学试卷(含解析).docx
- 河北正定中学2025-2026学年高一上学期期末考试物理试卷(含解析).docx
- 河北张家口市怀安县2025-2026学年第一学期期末教学综合评价八年级地理试卷(含解析).docx
- 河南安阳市殷都区2025-2026学年第一学期期末教学质量检测七年级地理试卷(含解析).docx
- 河南安阳市滑县2025一2026学年第一学期期末学业质量监测八年级地理试题(含解析).docx
- 河南安阳市林州市2025-2026学年上学期期末考试高一政治试题(含解析).docx
- 河南焦作市武陟县第一中学2025-2026学年高一上学期1月月考语文试卷(含解析).docx
- 河南济源市2025-2026学年上学期期末学业质量调研七年级历史试卷(含解析).docx
- PICC导管并发症的紧急处理与护理.pptx
- 河南鹤壁市2025-2026学年高二上学期期末考试生物试题(含解析).docx
最近下载
- 学堂在线 雨课堂 学堂云 机器学习初步 章节测试答案.docx VIP
- 2024年内蒙古事业单位综合应用能力考历年高频难、易点(公基础测验1000题)题库a4版.docx
- 2026广东惠州市中心人民医院招聘员额制专业技术人员80人备考题库及答案详解1套.docx VIP
- 《体育科学研究方法》全套课件(硕士生).ppt
- 会摇尾巴的狼+课件-2025-2026学年语文三年级下册统编版.pptx VIP
- 上海市2026年中考一模语文模拟试卷试题(含答案详解).docx
- 微型计算机原理及应用课后答案侯晓霞.pdf VIP
- 2025年江西省赣州市留置看护队伍招聘考试历年参考题库含答案详解.docx VIP
- 人力资源管理应届生个人简历.pdf
- 四川威纳尔特种电子材料有限公司半导体集成电路超细电镀键合丝多样化改造项目环境影响评价报告书.docx
原创力文档

文档评论(0)