在某些应用中,会用到多窗体功能,这里就来讨论一下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中的多窗体编程的更多相关文章

  1. Qt中采用多线程实现Socket编程

    Socket通常也称作"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 本文介绍的是Qt中采用多线程Socket编程,由于工作的需要,开始 ...

  2. Windows平台下Qt中glut库的使用

    用Qt中的QGLWidget窗体类中是不包括glut工具库的,难怪在myGLWidget(在我的程序中是QGLWidget的派生类)中绘制实心球体是说“glutSolidSphere”: 找不到标识符 ...

  3. QT中使用Glut库

    用Qt中的QGLWidget窗体类中是不包括glut工具库的,难怪在myGLWidget(在我的程序中是QGLWidget的派生类)中绘制实心球体是说“glutSolidSphere”: 找不到标识符 ...

  4. Qt中QString、QByteArray、int、double之间转换

    最近写Qt中的tcp网络编程,Socke连接后,接受到的数据类型是字节型,这就涉及到了大量的类型转换,在网上辗转几辄,总算有了点结果,特此跟大家分享.好了,不废话,下面细说. 方法/步骤     1. ...

  5. QT中的SOCKET编程(QT-2.3.2)

    转自:http://mylovejsj.blog.163.com/blog/static/38673975200892010842865/ QT中的SOCKET编程 2008-10-07 23:13 ...

  6. Qt中的多线程编程

    http://www.ibm.com/developerworks/cn/linux/l-qt-mthrd/ Qt 作为一种基于 C++ 的跨平台 GUI 系统,能够提供给用户构造图形用户界面的强大功 ...

  7. 在Qt(C++)中与Python混合编程

    一.PythonQt库 在Qt(C++)中与Python混合编程,可以使用PythonQt库. 网站首页:http://pythonqt.sourceforge.net 下载页面:https://so ...

  8. c# WinForm窗体编程中对窗体程序设置快捷键

    c# WinForm窗体编程中对窗体程序设置快捷键http://www.cnblogs.com/bison1989/archive/2011/09/19/2180977.html /// <su ...

  9. QT中的SOCKET编程

    转自:http://mylovejsj.blog.163.com/blog/static/38673975200892010842865/ QT中的SOCKET编程 2008-10-07 23:13 ...

  10. qt中窗体全屏

    原文地址:https://www.cnblogs.com/wiessharling/p/3750461.html 近期在学习QT时遇到了很多问题这也是其中一个,个人通过在各种书籍和网络上的查阅找到了一 ...

随机推荐

  1. JavaScript:控制跳转:break、continue与标签

    在循环结构中,经常需要使用关键字break和continue来控制跳转: 遇到break,就会跳出循环结构,执行循环体后面的代码: 遇到continue,就会跳出本次循环,进入下一次循环: 那么,假如 ...

  2. 【转载】【WinAPI】LockWindowUpdate的函数的用法

    DelPhi LockWindowUpdate的函数的用法 Application.ProcessMessages; LockWindowUpdate(Self.Handle); //锁住当前窗口 L ...

  3. 【转载】EXCEL VBA 自定义排序的三种方法

    何谓自定义排序,就是按指定的顺序对数据源进行排序呗.   共分享了三种方法: 第1种方法是系统自带的OrderCustom,优点是代码简洁,缺点是自定义序列有字符长度限制(255个). 第2种方法是字 ...

  4. NC14501 大吉大利,晚上吃鸡!

    题目链接 题目 题目描述 最近<绝地求生:大逃杀>风靡全球,皮皮和毛毛也迷上了这款游戏,他们经常组队玩这款游戏. 在游戏中,皮皮和毛毛最喜欢做的事情就是堵桥,每每有一个好时机都能收到不少的 ...

  5. MySQL优化四,高性能优化

    一,查询优化器 这个部分的整个过程是由MySQL的存储引擎来做的,优化器就会根据存储引擎来使用原来的开销, 优化后的开销,哪个更好一点? 1.如果是查询语句(select语句),首先会查询缓存是否已有 ...

  6. day03-Spring管理Bean-IOC-01

    Spring管理Bean-IOC 1.Spring配置/管理bean介绍 Bean管理包括两方面: 创建bean对象 给bean注入属性 Bean的配置方式: 基于xml文件配置方式 基于注解配置方式 ...

  7. Coolify系列01- 从0到1超详细手把手教你上手Heroku 和 Netlify 的开源替代方案

    什么是Coolify 一款超强大的开源自托管 Heroku / Netlify 替代方案 coolLabs是开源.自托管和以隐私为中心的应用程序和服务的统称 为什么使用Coolify 只需单击几下即可 ...

  8. Python3+Selenium3自动化测试-(六)

    这里来说一说selenium中的等待方式,其实在webdriver只有两种类型等待方式,显式等待和隐式等待,之前是在程序运行过程中使用time模块中的sleep进行代码的休眠进行强制等待,是显式等待中 ...

  9. 动力节点——day08

    什么是集合,有什么用? 数组其实就是一个集合,集合实际上就是一个容器,可以用来容纳其他数据类型 集合为什么说在开发中使用最多? 集合是一个容器,是一个载体,可以一次容纳多个对象,在实际开发中,假设连接 ...

  10. ORM哪家强?java,c#,php,python,go 逐一对比, 网友直呼:全面客观

    前言 最近一段时间,我使用golang开发了一个新的ORM库. 为了让这个库更好用,我比较研究了各语言的主流ORM库,发现有一些语言的ORM库确实很好用,而有另外一些语言的库那不是一般的难用. 然后我 ...