当前位置: 首页 > news >正文

Qt 第1课、Qt 的窗口组件和窗口类型

GUI 程序的开发原理:

GUI 程序在运行的时候,操作系统会为它创造一个消息队列,消息队列用于存储操作系统发过来的系统消息。

在这里插入图片描述

用户使用操作系统的过程中,操作系统内核检测到用户的操作(鼠标,键盘),会把这个操作翻译成程序消息,并将程序消息发送到拥有焦点的应用程序上去,这个有焦点的应用程序就是 GUI 应用程序,我们的 GUI 应用程序可以在消息队列中将发过来的消息给检测到,并把程序消息拿出来实时响应。

在这里插入图片描述


1、窗口组件

  • 图形用户界面由不同的窗口窗口组件组成
  • 组件的类型
    — 容器类(父组件):用于包含其它的界面组件
    — 功能类(子组件):用于实现特定的交互功能
    Qt 中没有父组件的顶级组件叫做窗口

QWidget

  • QWidget 继承于 QObjectQPaintDevice
    QObject 是所有支持 Qt 对象模型的基类
    QPaintDevice 是 Qt 中所有可绘制组件的基类
    QWidget 是 Qt 中所有窗口组件类的父类,常作为父组件或顶级组件使用

在这里插入图片描述

QLabel 组件

  • QLabel 用于显示一个提示性的字符串
  • QLabel 是功能性组件,一般需要父组件作为容器
  • QLabel 可以作为窗口存在,但没什么意义
QWidget w;
QLabel l(&w);
l.setText("This is a label control.");

QLineEdit 组件

  • QLineEdit 用于显示一个行编辑来接受用户输入
  • QLineEdit 能够在父组件中定位
QWidget w;
QLineEdit le(&w);
le.setAlignment(Qt::AlignRight);  		//设置显示的字符串向右边对齐
le.move(10, 10);
le.resize(240, 30);

QPushButton 组件

  • QPushButton 用于显示一个按钮

2、窗口类型

— 窗口类型:QWidget w(QWidget* Parent,Qt::WindowFlags);

  • Qt::Window     — 主窗口类型,包含最大化、最小化和关闭按钮
    在这里插入图片描述
  • Qt::Dialog     — 对话框类型,最大化和最小化按钮没有了,只有一个帮助和关闭按钮
    在这里插入图片描述
  • Qt::SplashScreen  — 启动动画类型,没有标题栏,最大化最小化和关闭按钮,一般用来作为软件开始时的欢迎界面
    在这里插入图片描述
    用法:QWidget w(NULL, Qt::Dialog);

— 窗口标志:

  • Qt::WindowStaysOnTopHint     — 有点像模态对话框,顶级窗口
  • Qt::WindowContextHelpButtonHint  — 文本帮助对话框
  • Qt::WindowCloseButtonHint     — 只有关闭按钮的窗口,计算器界面就是用这个

用法:
QWidget w(NULL, Qt::Window | Qt::WindowContextHelpButtonHint);
QWidget w(NULL, Qt::WindowCloseButtonHint);

http://www.lryc.cn/news/17325.html

相关文章:

  • 【Jmeter】ForEach控制器
  • Julia 数据类型
  • 01-基于SOA架构someip 开发-Linux开发环境搭建
  • 历时半年!从外包到现在阿里网易25K,分享一下自己的涨薪经验
  • 支付系统中的设计模式04:改进的策略与外观模式
  • 关于数据分析和数据指标,企业还需要做什么?
  • jvm之垃圾回收器
  • 【c++】类和对象7—继承
  • vue实现预览、下载和打印后端返回的pdf文件流
  • 【Android视频号④ 问题总结】
  • 推荐算法—widedeep原理知识总结代码实现
  • PHP面向对象03:命名空间
  • Elasticsearch:使用 pipelines 路由文档到想要的 Elasticsearch 索引中去
  • 前端开发常用的18个JavaScript框架和库
  • 理解、总结重点知识
  • 记一次从文件备份泄露到主机上线
  • 8年测开经验面试28K公司后,吐血整理出1000道高频面试题和答案
  • Linux 基础知识之权限管理
  • 百度LAC分词
  • 软件测试面试题 —— 整理与解析(1)
  • 深入浅出C++ ——红黑树模拟实现STL中的set与map
  • 自动化测试框架设计
  • 【虚拟仿真】Unity3D中实现鼠标的单击、双击、拖动的不同状态判断
  • 【2023】Prometheus-相关知识点(面试点)
  • 英语二-电子邮件邀请短文写作
  • 如何快速一次性通过pmp考试?
  • 1-Linux 保存kernel panic信息到flash
  • linux基本功系列-top命令实战
  • 6.5 拓展:如何实现 Web API 版本控制,同时兼容无版本控制的原始接口?
  • Springboot依赖注入Bean的三种方式,final+构造器注入Bean