在某些应用中,会用到多窗体功能,这里就来讨论一下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. 什么是RPC? (全面了解)

    一:RPC 1.什么是RPC? RPC 是指远程过程调用,也就是说两台服务器,A 和 B,一个应用部署在A 服务器上,想要调用B 服务器上应用提供的函数或方法,由于不在一个内存空间,不能直接调用,需要 ...

  2. .Net 7 团队把国内的龙芯确实当做一等公民和弃用的项目

    楔子: 国内龙芯据说是用的自己的指令集,在研究ILC的时候,发现了龙芯在微软那边确实是一等公民的存在. 龙芯官网 龙芯平台.NET,是龙芯公司基于开源社区.NET独立研发适配的龙芯版本,我们会长期进行 ...

  3. [seaborn] seaborn学习笔记10-绘图实例(2) Drawing example(2)

    文章目录 10 绘图实例(2) Drawing example(2) 1. Grouped violinplots with split violins(violinplot) 2. Annotate ...

  4. Asp-Net-Core-搭建ELK日志平台-Docker-Compose版本

    title: Asp.Net Core 搭建ELK日志平台(Docker-Compose版本) date: 2022-09-27 15:16:59 tags: - .NET 由于暂时用不上Logsta ...

  5. 重磅!瞄准 Web 3.0,谷歌云推出专为区块链服务的 Blockchain Node Engine!

    [本文由Cloud Ace整理发布,谷歌云服务请访问Cloud Ace 官网] 区块链技术正在为世界各地的消费者和企业带来巨大的创新和价值创造.随着技术变得越来越主流,公司需要可扩展.安全和可持续的基 ...

  6. day13-实现Spring底层机制-03

    实现Spring底层机制-03 7.实现任务阶段5 7.1分析 阶段5目标:bean后置处理器的实现 7.2代码实现 新增: 1.创建 InitializingBean 接口,实现该接口的 Bean ...

  7. JSTL概述和JSTL常用标签if

    JSTL概述 1.概念:JavaServlet Pages Tag Library(JSP标准标签库) 是由Apache组织提供的开源的免费的jsp标签 <标签> 2.作用:用于简化和替换 ...

  8. linux基础(部分讲解)

    linux常见岗位 Linux运维工程师.Linux高级架构师.运维开发工程师.数据库管理员.云计算架构师 作为python后端可以从事的linux岗位: 自动化运维.容器运维.DBA 注意:会的越多 ...

  9. Unity发布Web之支持手机端

    Unity发布Web之支持手机端 需求: ___ 相信有许多人和小黑一样,会遇到各种各样的难题,这其中就有,Unity发布Web后,在手机浏览器上可运行!!!!! 分析: 为什么会有相关的需求被提出呢 ...

  10. BIGO 如何做到夜间同时运行 2.4K 个工作流实例?

    点亮 ️ Star · 照亮开源之路 GitHub:https://github.com/apache/dolphinscheduler   ​ 精彩回顾 近期,BIGO 的大数据研发工程师许名勇在社 ...