在某些应用中,会用到多窗体功能,这里就来讨论一下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. 通过 CancellationToken 提高 Web 性能

    在 Web 开发中,经常会遇到这样的场景:用户发起一个请求,Web 服务器执行一些计算密集型的操作,等待结果返回给用户.这种情况下,如果用户在等待结果的过程中取消了请求,那么服务器端依然会继续执行计算 ...

  2. cs231n__2. K-nearest Neighbors

    CS231n 2 K-Nearest Neighbors note ---by Orangestar 1. codes: import numpy as np class NearestNeighbo ...

  3. 1. 使用 fluent-bit 采集文件

    1. 使用 fluent-bit 采集文件 简介 Fluent Bit是一款快速.灵活的日志处理器,旨在收集.解析.过滤日志,并将日志发送到远程数据库,以便执行数据分析. 数据分析通常发生在数据存储和 ...

  4. OpenMP 原子指令设计与实现

    OpenMP 原子指令设计与实现 前言 在本篇文章当中主要与大家分享一下 openmp 当中的原子指令 atomic,分析 #pragma omp atomic 在背后究竟做了什么,编译器是如何处理这 ...

  5. Codeforces Round #601 (Div. 2) A-E

    比赛链接 A 题意 给两个数字 \(a,b\) ,每次操作可以使 \(a\) 加上 \(+1,+2,+5,-1,-2,-5\) 中的一个数,求最少多少次操作可以将 \(a\) 变成 \(b\) . 题 ...

  6. java 进阶P-6.2+P-6.3

    细胞自动机 CellularAutomation(细胞自动机)细胞自动机(英语:Cellular automaton),又称格状自动机.元胞自动机,是一种离散模型,在可算性理论.数学及理论生物学都有相 ...

  7. Blazor入门100天 : 身份验证和授权 (6) - 使用 FreeSql orm 管理ids数据

    目录 建立默认带身份验证 Blazor 程序 角色/组件/特性/过程逻辑 DB 改 Sqlite 将自定义字段添加到用户表 脚手架拉取IDS文件,本地化资源 freesql 生成实体类,freesql ...

  8. Springboot整合AOP和注解,实现丰富的切面功能

    简介 我们在文章<Spring AOP与AspectJ的对比及应用>介绍了AOP的使用,这篇文章讲解一下AOP与注解的整合,通过注解来使用AOP,会非常方便.为了简便,我们还是来实现一个计 ...

  9. 编程哲学之 C# 篇:006——什么是 .NET

    本章将用本系列第二章中提到的 类比 思维来让读者快速了解什么是.NET. 当年在网上看到一个初学者问<Java编程思想>第一章看不懂怎么办.然后我发现在很多经典的技术书中,如<C#入 ...

  10. redis georadius源码分析与性能优化

    原文地址: https://blog.fanscore.cn/a/51/ 背景 最近接到一个需求,开发中使用了redis georadius命令取附近给定距离内的点.完工后对服务进行压测后发现geor ...