Qt中的多窗体编程
在某些应用中,会用到多窗体功能,这里就来讨论一下Qt下多窗体功能的实现。本例仍以qt4.8.7版本为例,并基于QtCreator4.6.2环境进行开发。在本例中,以一个能显示实时时钟的第二窗体为例进行讨论,其中拟采用菜单点击的方式来打开时钟子窗体,并加入了控件随窗体大小变化的方法,对话框窗体按钮的编程方法,关闭窗体时的确认通知方法以及更改应用程序图标的方法等等,具体过程如下。
1、新建一个窗体应用的工程,单击“文件”->“新建文件或项目”,在弹出的对话框中,默认选择项目“Application”中的“Qt Widgets Application”工程,如下图所示,然后单击“Choose...”按钮。

2、随后的操作全部以默认值进行,整个工程建好后如下图所示。

3、在窗体的工具条上点击右键,选择“移除工具栏mainToolBar”,删除工具栏,如下图所示。

4、在窗体上点击右键,选择“移除状态栏”,删除状态栏,如下图所示。

5、在窗体的菜单栏上双击,在其中输入“操作”作为菜单名称,然后在其下面再双击并输入“时钟” ,如下图所示。

6、双击下面的“添加分隔符”,在“时钟”一项下添加一条分隔线,然后以同样的方式再在线下新建一项“退出”,如下图所示。

7、完成以上步骤后点击左边的绿色三角符号,先运行一下看看窗体的效果,如下图所示。

8、接下来需要再建立一个时钟显示的窗体,单击“文件”->“新建文件或项目”,弹出一个对话框,在对话框左边的“文件和类”下面选择“Qt”一项,然后在中间选择“Qt设计师界面类”,如下图所示,单击“Choose...”按钮。

9、在接下来的对话框中,就选择默认的带底部按钮的对话框形式,如下图所示,点击“下一步”。

10、类名取为“timeDialog”,如下图所示,单击“下一步”按钮。

11、接下来询问是否把新建的窗体加入到项目中,这里默认加入,如下图所示,点击“完成”按钮。

12、全部完成后,切换到编辑状态,可看到新加入了三个文件,一个是头文件timedialog.h,一个是源文件timedialog.cpp,一个是窗体文件timedialog.ui,如下图所示。

13、在Forms下双击“timedialog.ui”,打开新建立的对话框窗体,并在其中放置一个显示时钟用的LCD Number控件,如下图所示。

14、点击“文件”->“保存所有文件”,保存项目。至此,就完成了本例所有窗体的创建工作。 接下来就需要编写相应的程序代码了。
Qt中的多窗体编程的更多相关文章
- Qt中采用多线程实现Socket编程
Socket通常也称作"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 本文介绍的是Qt中采用多线程Socket编程,由于工作的需要,开始 ...
- Windows平台下Qt中glut库的使用
用Qt中的QGLWidget窗体类中是不包括glut工具库的,难怪在myGLWidget(在我的程序中是QGLWidget的派生类)中绘制实心球体是说“glutSolidSphere”: 找不到标识符 ...
- QT中使用Glut库
用Qt中的QGLWidget窗体类中是不包括glut工具库的,难怪在myGLWidget(在我的程序中是QGLWidget的派生类)中绘制实心球体是说“glutSolidSphere”: 找不到标识符 ...
- Qt中QString、QByteArray、int、double之间转换
最近写Qt中的tcp网络编程,Socke连接后,接受到的数据类型是字节型,这就涉及到了大量的类型转换,在网上辗转几辄,总算有了点结果,特此跟大家分享.好了,不废话,下面细说. 方法/步骤 1. ...
- QT中的SOCKET编程(QT-2.3.2)
转自:http://mylovejsj.blog.163.com/blog/static/38673975200892010842865/ QT中的SOCKET编程 2008-10-07 23:13 ...
- Qt中的多线程编程
http://www.ibm.com/developerworks/cn/linux/l-qt-mthrd/ Qt 作为一种基于 C++ 的跨平台 GUI 系统,能够提供给用户构造图形用户界面的强大功 ...
- 在Qt(C++)中与Python混合编程
一.PythonQt库 在Qt(C++)中与Python混合编程,可以使用PythonQt库. 网站首页:http://pythonqt.sourceforge.net 下载页面:https://so ...
- c# WinForm窗体编程中对窗体程序设置快捷键
c# WinForm窗体编程中对窗体程序设置快捷键http://www.cnblogs.com/bison1989/archive/2011/09/19/2180977.html /// <su ...
- QT中的SOCKET编程
转自:http://mylovejsj.blog.163.com/blog/static/38673975200892010842865/ QT中的SOCKET编程 2008-10-07 23:13 ...
- qt中窗体全屏
原文地址:https://www.cnblogs.com/wiessharling/p/3750461.html 近期在学习QT时遇到了很多问题这也是其中一个,个人通过在各种书籍和网络上的查阅找到了一 ...
随机推荐
- GitHub上的一个Latex模板
代码下载:GitHub的项目地址或者在LATEX项目报告模板下载. 编译环境:Latex的编译器,如Ctex软件. 把源码clone或者下载到本地后,根据他的说明 如何开始 使用report.tex开 ...
- 关于 MySQL 嵌套子查询中,无法关联主表字段问题的折中解决方法
今天在工作中写项目的时候,遇到了一个让我感到几乎无解的问题,在转换了思路后,想出了一个折中的解决方案,记录如下. 其实,问题的场景,非常简单: 就是需要查询出上图的数据,红框是从 项目产品表 中查询的 ...
- Hadoop详解(04-1) - 基于hadoop3.1.3配置Windows10本地开发运行环境
Hadoop详解(04-1) - 基于hadoop3.1.3配置Windows10本地开发运行环境 环境准备 安装jdk环境 安装idea 配置maven 搭建好的hadoop集群 配置hadoop ...
- lock 和 Monitor (转载)
Lock和Monitor都是对被操作对象同步控制的方法 Lock 是 Monitor的简化版本,IL callvirt ...Monitor.Enter(object)...leave.s.... c ...
- ng-alain全局配置NzMessageService
官方文档是这样子的,抄下来会报错,因为没有后两个设置 import { NgZorroAntdModule, NzConfig, NZ_CONFIG } from 'ng-zorro-antd'; c ...
- Redis - 介绍与使用场景
简介 Redis 的全称是 Remote Dictionary Server,是一个使用 C 语言编写的.开源的(BSD 许可)高性能非关系型(NoSQL)的键值对数据库. Redis 的数据是存储在 ...
- 11月28日内容总结——多表查询的两种方法及部分小知识点、可视化软件Navicat安装及简单使用讲解及多表查询练习题、python代码操作MySQL(pymysql模块)
目录 一.多表查询的两种方法 方式1:连表操作 inner join(内连接) left join(左连接) right join(右连接) union(全连接) 方式2:子查询 二.小知识点补充说明 ...
- JavaScript 评测代码运行速度
一.使用 performance.now() API 在 JavaScript 中,可以使用 performance.now() API 来评测代码的运行速度.该 API 返回当前页面的高精度时间戳, ...
- 洛谷 P3137 [USACO16FEB]Circular Barn S
题目链接 本蒟蒻的第一篇题解,写得不好请指出,敬请谅解 题意: 有\(n\)头奶牛,分布在一些房间,某些房间可能有多头牛,要让这些牛按顺时针移动,求使每一个房间刚好有一个奶牛的最小花费 花费计算:如果 ...
- python线程池等待全部任务结束再继续
import json import time from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED impor ...