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

qt继承结构

一、 继承结构

所有的窗口类均继承自QWidget类,因此QWidget类本身包含窗口的特性。QWidget对象本身既可以作为独立窗口,又可以作为组件(子窗口)。

通过构造函数可以创建以上两种形态的QWidget:

// 参数1:使用默认值0时,创建的对象为独立窗口。

// 参数2:窗口标记属性(后面讲)

QWidget::​QWidget(QWidget * parent = 0,

Qt::WindowFlags f = 0)

当创建项目时,基类选择QWidget,此时自带的窗口w对象就是继承自QWidget的独立窗口效果。

QWidget作为独立窗口的基类,内部常用的相关功能如下:

  • windowFlags : Qt::WindowFlags

窗口标记,可以设置一些枚举值,给窗口不同的显示效果,如果要同时设置多个标记,可以使用 | 分隔。

下面是一些常见标记:

二、QMessageBox 消息对话框

QMessageBox直接继承QDialog,是一个用于通信用户或询问用户一个问题并接受答案的模态对话框。

预设了四种类型的弹窗:

这些QDialog的派生类往往适用于一个具体的开发场景,弹窗无需创建对象,直接使用静态成员函数。

// 参数1:父窗口

// 参数2:窗口标题

// 参数3:展示信息

// 返回值:枚举,表示用户点击的按键类型

QMessageBox::StandardButton QMessageBox::​critical|imformation|question|warning(

QWidget * parent,

const QString & title,

const QString & text) [static]

三、QStackedWidget 堆栈窗口

QStackedWidget包含多个QWidget子窗口,同时只能显示一个,子窗口之间可以翻页切换显示。

通常配合QListWidget使用。

QListWidget提供信号函数:

// QListWidget当前选项发生变化时发射

// 参数为当前选项的索引

void currentRowChanged(int currentRow) [signal]

QStackedWidget提供槽函数:

// 设置显示页的索引

void setCurrentIndex(int index) [slot]

四、QMainWindow 主窗口类

1.主窗口类型

QMainWindow是最合适作为主窗口的类型,因为包含若干组成部分:

 

2.QToolBar 工具栏

工具栏上的工具按钮通常都是菜单栏里的QAction对象(设置图标),因此:

  • 通过C++代码设置工具栏按钮 

/ 向工具栏中添加工具按钮

// 参数为设置了图标的QAction对象

void QToolBar::addAction(QAction * action)

3.QWidget 中心组件

就是一个作为子窗口的QWidget对象。

4.QStatusBar 状态栏

状态栏可以自定义,通过文档中对应add函数增加各种自定义组件,课下感兴趣可自行拓展。预设的状态栏可以显示文本信息,相关函数如下:

// 在状态栏显示信息

// 参数1:信息内容

// 参数2:显示的毫秒数,0表示长显示

void QStatusBar::showMessage(const QString & message, int timeout = 0) [slot]

// 清除状态栏显示信息

void QStatusBar::clearMessage() [slot]

 

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

相关文章:

  • 【HCIA复习作业】综合拓扑实验(已施工完)
  • 网络基础知识:交换机关键知识解析
  • 基于System.js的微前端实现(插件化)
  • MedSAM2调试安装与使用记录
  • Linux 进程终止和进程等待
  • 如何查看默认网关地址:详细步骤
  • 什么是方法的返回值?方法有哪几种类型?静态方法为什么不能调用非静态成员?静态方法和实例方法有何不同?
  • Qt开发——Qt项目打包、整合以及生成安装包保姆级教程(Windows系统)
  • 大数据-180 Elasticsearch - 原理剖析 索引写入与近实时搜索
  • 大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
  • 【Java后端】之 ThreadLocal 详解
  • 2.链表(代码随想录——python版本)
  • 6个解决“由于找不到vcruntime140_1.dll无法继续执行代码”问题的方法
  • 常用数据库获取表,视图,列,索引信息
  • 架构设计笔记-16-嵌入式系统架构设计理论与实践
  • SpringSecurity使用介绍
  • # Js 回调函数
  • COOLSHELL文章:从Code Review 谈如何做技术【阅读笔记】
  • 3.1.1 ReactOS系统中二叉树创建一个MEMORY_AREA节点
  • 三、Linux 安装全攻略
  • Ansible自动化工具
  • Flutter Container组件
  • IPv6 DNS简介
  • 【Python-AI篇】数据结构和算法
  • VideoCLIP-XL:推进视频CLIP模型对长描述的理解
  • 【vue】vue-router_ vue3路由管理器
  • 昇思MindSpore进阶教程--Diffusion扩散模型(上)
  • Nginx:proxy_pass指令
  • 【AI学习】Mamba学习(十):HiPPO总结
  • AI编程新纪元:Cursor与V0引领的技术变革