QML控件和对话框之ApplicationWindows

news2024/11/15 20:11:56

ApplicationWindows

  • ApplicationWindows应用程序窗口
    • Action
    • 菜单类控件
    • 3.StatusBar
    • 4.工具栏控件类

ApplicationWindows应用程序窗口

Application Window在 Qt Quick Controls中类似于QMain Window 在 Qt/C++中的角色,ApplicationWindow可以充当应用程序顶层窗口,具有自己的布局,包含menuBar、toolBar、statusBar等属性,可以使用平台无关的方式方便地添加菜单栏、工具栏和状态栏等项目,该类型还包含一个contentltem属性,用来进行窗口的大小设置。
在这里插入图片描述
在这里插入图片描述

Action

Action控件似于QAction类,封装应用程序中的动作命令。Action可以添加到菜单、工具条中,由用户触发或通过快捷键调用。使用Action最大的好处在于,出现在多个位置的Action可以自动同步,比如,可以将一个Action添加到菜单栏和工具栏,当修改了Action的某些属性时,菜单栏和工具栏对应的按钮会同步改变,QtQuick中支持为Button、ToolButton和Menultem添加Action.前面的例子创建了4个Action:quitAction、cutAction、copyAction和pasteAction,其中,quitAction被添加到菜单中;后三者则同时添加到了菜单和工具栏。Action的text属性就是Action在界面上显示的文本。同QAction类似,也可以使用“&.”符号指定快捷键,还可以使用tooltip属性来设置工具提示。iconName属性指定了图标名字,该名字由当前主题定义,通常由操作系统提供。iconSource属性指定了图标文件或资源的URL.与iconName不同,iconSource通常指向用户提供的图标文件。QML既可以由文件系统直接加载,又可以从Qt资源系统中加载。如果QML文档不是从资源系统中加载,那么iconSource属性不能使用资源系统中的图片,也就是不能使用.qre文件中的资源,这一点与Qt/C++不同,这里将Action的
iconSource设置为相对路径,例如“images/quit.png”,这意味着Action需要寻找当前目录下的images 目录中的quit.png文件。Action可以通过shortcut属性来设置快捷键,除了像代码中那样使用字符串来设置快捷键,还可以使用标准键,例如复制操作就是StandardKey.Copy,全部的标准键可以在帮助中查看StandardKey关键字。
Action 具有triggered()信号,类似于QAction的triggered()信号。通过连接这个信号,可以响应Action的动作。为达到这一目的,需要在相应的onTriggered()信号处理器中编写代码。
Action类型包含一个checkable属性,可以设置Action是否可以被选中或者被切换状态,默认是false,如果设置为true,那么可以通过checked属性来获取或设置状态。状态改变时会发射toggled()信号,而且这时还可以使用exclusiveGroup属性将几个Action设置为互斥的一组,同组中只能有一个Action被选中。

菜单类控件

Application Window 有一个menuBar 属性,用于设置菜单栏,默认情况下,菜单栏是没有设置的。menuBar属性要指定一个MenuBar类型对象,MenuBar类似于QMenuBar,用于表示一个菜单栏,MenuBar只有menus和style两个属性,其中menus是list<Menu>类型。这是一个默认属性,意味着可以直接将子对象添加到一个MenuBar实例中。MenuBar可以添加Menu类型的子控件,如前面的代码所示。Menu对应着QMenu,可以作为菜单栏的顶层菜单(例如File、Edit等),可以作为另外菜单的子菜单,也可以作为独立菜单或者上下文菜单。Menu的title属性类似于Action的text属性,用于显示菜单的文本,它也支持使用“&.”指定快捷键以及使用qsTr()函数支持国际化。Menu有一个默认属性items,用于设置菜单的子项目。虽然这个属性的类型是list<Object>,但它仅支持Menu、MenuItem和MenuSeparator 这3种类型的对象作为其子项目。Menu可以作为当前菜单的子菜单;Menultem作为当前菜单的菜单项;MenuSeparator作为当前菜单的分隔符。Menu类型包含了一系列有用的方法,例如:添加菜单项addltem()、添加子菜单addMenu()、添加分隔符addSeparator()、插人菜单项insertItem()、插人菜单insertMenu()、插入分隔符insertSeparator()、移除项removeltem()(可以是菜单、菜单项或分隔符)以及在光标处打开菜单的popup()等,值得说明的是,Menu的insertltem函
数支持将动态创建的对象添加到菜单项。Menultem是Menu 最常见的子项目。Menultem对应C++中的QMenultem,作为添加到Menu或者MenuBar的菜单项,Menultem与Action具有相似的属性和信号,而且Menultem可以将一个Action对象赋值给其action属性,用于初始化MenuItem的各个属性,比如text、iconName等。可以使用MenuSeparator类型作为菜单分隔线,该类型包含一个visible属性来设
置其是否可见。

3.StatusBar

ApplicationWindow的statusBar属性用于向应用程序窗口添加状态栏,这个属性的类型是Item,因此可以将任何Item对象设置为状态栏,但最常见的还是使用StatusBar控件。默认情况下,这个属性是没有默认值的,因此没有状态栏。当设置了某个控件时,状态栏将会自动附加到窗口中。
StatusBar通常只会作为ApplicationWindow状态栏。需要注意的是,StatusBar并没有提供布局管理器,所以,在使用时必须添加自己的布局管理器。正如前面代码所展示的那样,一般会为StatusBar增加RowLayout布局管理器,用于排列添加到状态栏的控件。

4.工具栏控件类

Applicatio1Window 的toolBar属性用于向应用程序窗口添加工具栏。toolBar属性与statusBar非常类似。这个属性的类型同样是Item,但最常见的是使用ToolBar控件,默认情况下,这个属性是没有默认值的,因此应用程序窗口没有工具栏。当设置了某个控件时,工具栏将会自动附加到窗口中。ToolBar通常只会作为Application Window的工具栏。需要注意的是,与StatusBar类似,ToolBar也没有提供布局管理器,所以,使用时一般需要添加自己的布局管理器。就像前面代码中展示的那样,在使用ToolBar控件时,一般会为其增加了一个RowLayout 布局管理器。添加到工具栏的按钮可以是ToolButton类型。ToolButton是Button的子类。这是专为工具栏显示优化的按钮,其余属性则同普通的按钮类似。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/447626.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

气传导耳机是什么原理?气传导蓝牙耳机优缺点分析

气传导耳机&#xff0c;简而言之&#xff0c;就是一种通过空气振动进行声音传播的耳机&#xff0c;采用波束成形技术进行定向传音&#xff0c;开放双耳设计模式&#xff0c;将音频传送到耳朵。 其发声途径&#xff0c;和我们双耳聆听到环境音以及人声的途径都是一样的&#xf…

UART协议——异步全双工串行通信方式

文章目录 前言一、简介1、优点2、缺点 二、数据格式三、波特率1、定义2、波特率和采样频率 四、常见接口电平1、TTL电平2、RS232&#xff08;负逻辑&#xff09;3、RS485 前言 2023.4.22 世界地球日 一、简介 UART&#xff1a;Universal Asynchronous Receiver/Transmitter&a…

数据驱动+AI引擎,为MarTech打开全新的想象空间

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 近年来&#xff0c;随着全球数字化、信息化进程不断提速&#xff0c;企业营销的战场也逐渐转移至线上。一方面&#xff0c;消费者行为的数字化使得企业营销活动更加依赖于线上数字营销&#xff1b;另一方面&#xff0c;包括…

Python3 字符串

Python3 字符串 字符串是 Python 中最常用的数据类型。我们可以使用引号( 或 " )来创建字符串。 创建字符串很简单&#xff0c;只要为变量分配一个值即可。例如&#xff1a; var1 Hello World! var2 "Runoob" Python 访问字符串中的值 Python 不支持单字符…

MySQL-CENTOS7下MySQL单实例安装

MySQL单实例安装 1 版本下载2 MySQL安装2.1 创建目录并解压2.2 安装数据库2.3 安装RPM包2.4 启动服务2.5 连接MYSQL 3 MYSQL卸载卸载4 FAQ 1 版本下载 mysql下载 选择对应的版本。我选择的是的8.0.31的版本。 2 MySQL安装 2.1 创建目录并解压 mkdir /mysql mkdir /mysql/s…

chatgpt智能提效职场办公-ppt怎么转pdf文件

作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; 要将PPT转为PDF文件&#xff0c;可以按照以下步骤操作&#xff1a; 1.打开PPT文件&#xff0c;点击“文件”菜单&#xff0c;选择“导出…

浅析商场智能导购系统功能与实施效益

商场智能导购系统是一种基于物联网技术和人工智能算法的解决方案&#xff0c;旨在提供商场内部的智能导购服务&#xff0c;为消费者提供个性化的购物导引和推荐&#xff0c;提升用户购物体验&#xff0c;增加商场的客流量和销售额。 商场智能导购系统的方案一般包括以下主要功能…

react中前端同学如何模拟使用后端接口操作数据?

为什么前端同学需要模拟后端数据 作为一个前端&#xff0c;在实现项目功能的时候&#xff0c;需要在前端写一个静态的json数据&#xff0c;进行测试。 项目中后端的接口往往是较晚才会出来&#xff0c;并且还要写接口文档&#xff0c;于是我们的前端的许多开发都要等到接口给…

pytest中的钩子函数:pytest_addoption(parser)

# python3 # Time : 2023/4/21 9:05 # Author : Jike_Ma # FileName: conftest.pyimport pytesthosts {"dev": "http://dev.com.cn","prod": "http://prod.com.cn","test": "http://test.com.cn" }# 注册一个…

使用WSL在Windows上安装Ubuntu

1. 清理环境 查看当前的wsl 状态&#xff0c;wsl --list 可以列出当前系统中已安装的子系统。 选择需要清理的系统&#xff0c;然后用 wsl --unregister <DistributionName> 即可完成卸载。 将 wsl 默认版本设置为 2&#xff1a; wsl --set-default-version 2 可以通…

taobao.item.carturl.get( 加购URL获取 )

&#xffe5;开放平台免费API可选用户授权 获取加购URL&#xff0c;支持添加商品到购物车 公共参数 请求地址: 公共请求参数: 公共响应参数: 点击获取key和secret 请求参数 请求示例 响应示例 异常示例

matlab笔记总结(4)

https://www.bilibili.com/video/BV1MA4y1d7so/?spm_id_from333.788&vd_source3ef6540f8473c7367625a53b7b77fd66 司守奎老师在B站的讲解视频 https://matlabacademy.mathworks.com/cn/details/matlab-onramp/gettingstarted MATLAB官方的入门之旅&#xff08;英文&…

ChatGPT探索系列之六:思考ChatGPT的未来发展趋势和挑战

文章目录 前言一、未来发展趋势1. ChatGPT重塑数据分析之道2. ChatGPT颠覆企业运用人工智能和机器学习的途径3. ChatGPT颠覆自动化商业流程4. ChatGPT引领企业决策迈向新纪元 二、ChatGPT掀开未来充满机遇和挑战的新篇章总结 前言 ChatGPT发展到目前&#xff0c;其实网上已经有…

如何用Python搭建HTTP服务器,并实现远程访问和下载?

Python是编程语言中的热门语言&#xff0c;具有语法简单、语句清晰的特点。如果你不擅长编程&#xff0c;学习Python是一个不错的选择&#xff0c;初学者在学习阶段可以较为轻松地理解编程对象和思维方法。对于小白用户来说,它具有强大且丰富的库,封装后可以轻松调用,因此也更受…

数学建模第一天:数学建模工具课之MATLAB的入门

目录 一、MATLAB的简介 二、Matlab基础知识 1. 变量 ①命名规则 ②特殊变量名 2、数学符号与函数调用 ①符号 ②数学函数 ③自定义函数 三、数组与矩阵 1、数组 ①创建数组 ②访问数组元素 ③数组运算 2、矩阵 ①定义 ②特殊矩阵 ③矩阵运算 四、控制流 …

pyecharts从入门到精通-地图专题GEO-世界地图和中国城市地图

文章目录 参考安装与查看pyecharts地图实现-Geo完成Geo地理坐标系实现。案例演示拓展-pyecharts中GEO源码 参考 官方文档:https://pyecharts.org/#/zh-cn/quickstart Python使用Pyecharts画Geo地图&#xff0c;如何显示具体地点名称 pyecharts世界地图用&#xff1a;国家中英文…

即使运行高优先级线程,低优先线程也能运行

仅仅因为一个线程具有较高的优先级&#xff0c;并不意味着其他低优先级的线程就不会得到机会运行。 这怎么理解&#xff1f; 有时候&#xff0c;我看到人们编写多线程代码&#xff0c;将一个线程的优先级置于另一个线程之上&#xff0c;他们认为这将防止优先级较低的线程干扰…

Qt编写网络摄像头推流(4路1080P主码流只占用0.2%CPU/极低延时极速响应)

一、前言说明 将从网络摄像头拉流过来的视频流重新推流出去&#xff0c;是目前一个很常规的做法&#xff0c;尤其是推流到流媒体服务中心&#xff0c;这样流媒体服务中心就把散落在各个区域的监控摄像头集中起来统一管理&#xff0c;同时提供对外一致的访问接口。很多时候不仅…

微信小程序开发的基础学习

回顾上篇内容 1、小程序核心理念&#xff1a; 在小程序里面&#xff0c;会把每一个标签看作一个矩阵&#xff0c;该矩阵的宽高会平行x轴、y轴 那么我们只需要知道该矩阵一个左上角的坐标&#xff0c;即可确定该矩阵的位置 2、题外话&#x1f9d0; &#xff08;1&#xff09…

字符串总结

一、最长公共前缀 1.方法一&#xff1a;横向扫描 class Solution { public:string longestCommonPrefix(vector<string>& strs) {if (!strs.size()) {return "";}string prefix strs[0];int count strs.size();for (int i 1; i < count; i) {prefix…