Qt 的几个常用部件 -- QFrame

2023-10-27

基本信息

头文件:

#include <QFrame>

CMake 引用方式:

find_package(Qt6 COMPONENTS Widgets REQUIRED) 
target_link_libraries(mytarget PRIVATE Qt6::Widgets)

qmake 引用方式:

 QT += widgets

QFrame 继承自 QWidget,被 QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget 和 QToolBox 继承

公共类型(可用来设置的):

通过定义不同的阴影类型来显示不同的 3D 效果
enum Shadow { Plain, Raised, Sunken }
定义框架的形状
enum Shape { NoFrame, Box, Panel, StyledPanel, HLine, …, WinPanel }
用来从 frameStyle() 中解析出 shadow 和 shape 两个属性
enum StyleMask { Shadow_Mask, Shape_Mask }

详细描述

QMenu 使用 “raise” 属性来使 menu 高于周围的屏幕. QProgressBar 使用 “sunken” 属性来使 QProgressBar 有下沉样式的外观. QLabel 有一个平滑的外观. 像这些 widget 的 frame 都可以修改.

QFrame类还可以直接用于创建不包含任何内容的简单占位符框架。

框架的样式可以使用 frame shape 和 shadow style 来指定。用来使框架独立于周围的 widgets. 这些属性也可以使用 setFrameStyle 一起设置并且使用 frameStyle 读取出来。

框架形状(frame shape) 是 “NoFrame, Box, Panel, StyledPanel, HLine 和 VLine”; 阴影样式是 “Plain, Raised 和 Sunken”.

框架部件有三个属性来描述边框的厚度: “lineWidth, midLineWidth 和 frameWidth”

lineWidth:  line width 指的是框架边框的宽度。可以通过修改它来自定义框架的外观。
QLabel *label = new QLabel(this);
  label->setFrameStyle(QFrame::Box | QFrame::Raised);
  label->setLineWidth(5);

在这里插入图片描述

midLineWidth: mid line width 指定框架内部线的宽度, 它使用第三种颜色来获得特殊的3D效果。注意 mid-line 只对是 raised 和 sunken 的 Box HLine VLine 框架生效。
QLabel *label = new QLabel(this);
label->setFrameStyle(QFrame::Box | QFrame::Raised);
label->setMidLineWidth(5);

效果如图
在这里插入图片描述

frame width: 由 frame style 来设定, 使用 frameWidth() 来获取设置的 frame width 值.

框架和框架内容之间的边缘可以使用 QWidget::setContentsMargins() 函数来设置。

下面展示几种样式和 line width 组合之后的显示效果:
在这里插入图片描述

可以处理的事件:

在这里插入图片描述

QFrame 部件就说那么多,剩下的函数功能啥的都是照本宣科没啥好说的, 需要的时候看文档就好了.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 的几个常用部件 -- QFrame 的相关文章

  • qt项目如何设置安装路径

    我正在寻找与 qmake configure prefix 等效的内容 基本上 我想覆盖默认的安装 部署目录 这是如何用命令行 qmake 指定的 我还使用 QtCreator 构建了很多 gui 项目 并且我想知道如何在 QtCreato
  • QT 中只获取文件而不获取目录?

    当我这样做时 QDir myDir home some location QStringList filesList myDir entryList 它返回该位置内的文件和目录 但我只想要文件 并且这些文件可以具有任意扩展名 有任何想法吗
  • 从 QML 实例化 C++ 对象会产生巨大的内存使用开销

    实例化一个QObjectC 堆中的派生类为每个对象提供了大约 160 个字节 通过注册相同的对象qmlRegisterType 用于从 QML 创建并通过以下方式动态创建对象createObject 每个对象给我 2000 多个字节 这是完
  • QGraphicsView 和 eventFilter

    这个问题已经困扰我两天多了 所以我想我应该问一下 我在Win7上使用Qt 4 5 3 用VC2008编译 我有 MyGraphicsView 继承 QGraphicsView 和 MyFilter 继承 QObject 类 当我将 MyFi
  • 如何在 Qt-Embedded 中(正确)输出多语言文本?

    我的目标系统是 linux 3 3 7 Qt Embedded 开源版 4 8 Droid 字体 取自 fonts droid 20111207 git 1 all deb Debian 软件包并复制到 usr lib fonts目录 主要
  • QSpinBox 输入 NaN 作为有效值

    我正在尝试扩展 QSpinBox 以能够输入 NaN 或 nan 作为有效值 根据文档 我应该使用 textFromValue valueFromText 和 validate 函数来完成此操作 但我无法让它工作 因为它仍然不允许我输入除数
  • 有没有办法在没有 QApplication::exec() 的情况下使用 Qt?

    有没有一种安全的方法可以在不调用 QApplication exec 的情况下使用 Qt 我有许多不同的对象正在对多个资源执行长期进程 至少其中一个正在与 Web 应用程序服务器进行通信 我正在制作一个 GUI 应用程序 提示用户在正确的时
  • 如何在按下托盘图标菜单操作时执行功能?

    int main int argc char argv QApplication oApp argc argv QAction action1 QMenu menu QSystemTrayIcon TrayIcon QIcon favico
  • Qt:将拖放委托给子级的最佳方式

    我在 QWidget 上使用拖放 我重新实现了 DragEnterEvent dragLeaveEvent dragMoveEvent 和 dropEvent 效果很好 在我的 QWidget 中 我有其他 QWidget 子级 我希望它们
  • QtCreator 调试暂停停在代码而不是汇编处

    如何配置 QtCreator 以便在调试并按下暂停时它会显示当前正在处理的代码 现在显示汇编 无法在任何地方找到有关此问题的答案 我使用的是 Windows 7 我在 Ubuntu 16 04 中使用 Qt Creator 4 2 2 时遇
  • QTextEdit.find() 在 Python 中不起作用

    演示问题的简单代码 usr bin env python import sys from PyQt4 QtCore import QObject SIGNAL from PyQt4 QtGui import QApplication QTe
  • 禁用 QML Slider 的鼠标滚轮

    我希望能够滚动Flickable使用鼠标滚轮 或触摸板上的两根手指 不改变Sliders它可能包含 示例代码及结果应用 import QtQuick 2 7 import QtQuick Window 2 2 import QtQuick
  • 加权 Voronoi 的 CGAL 2D APOLLONIUS 图 - 如何生成和获取面和顶点?

    我正在尝试根据阿波罗尼乌斯图生成加权沃罗诺伊 我正在使用 CGAL 库 我找不到如何从 apollonius 获取面和顶点的好例子 我有以下类型定义 typedef double NT typedef CGAL Cartesian lt N
  • 在 Qt5 中,是否需要 Q_INVOKABLE 来从 QML 调用公共 QObject 函数?

    我刚刚意识到我可以调用暴露于 QML 的对象的几乎任何函数 现在我对 Q INVOKABLE 很好奇 Qt5docs http doc qt io qt 5 qtqml cppintegration exposecppattributes
  • 使用 Visual Studio 2013 构建 Qt 5.2.1 的静态版本

    几天来我一直在尝试使用 Visual Studio 2013 构建 Qt 的静态版本 我就是不明白我做错了什么 System Windows 7 64 位 Visual Studio 2013 仍安装 Visual Studio 2012
  • 为 Windows 98 编译 Qt

    我需要支持 Windows 98 Qt 文档声称这是可能的 但没有说明 Qt 4 6 的分布式二进制文件不能在 Win98 上运行 而且我采样的大多数 Qt 应用程序也不能在 Win98 上运行 对于几个确实在 98 上运行的应用程序 我询
  • PyQt5:如何使QThread返回数据到主线程

    I am a PyQt 5 4 1 1初学者 我的Python是3 4 3 这是我尝试遵循的many https mayaposch wordpress com 2011 11 01 how to really truly use qthr
  • QT从QTableWidgetItem继承到Widget并覆盖'<'运算符

    我想要一个QTableWidget具有定制的某些单元QProgressBars 并且我希望能够对包含这些的列进行排序 我的定制QProgressBar继承自两者QProgressBar and QTableWidgetItem 并且我正在覆
  • 从 Qt4 中的文本文件中逐字读取

    我想在 Qt4 中逐字读取一个文本文件 说实话我对它很陌生 我想在另一个文件中每行一个字写入 我可以在 C 中做到这一点 没有任何问题 但是当我尝试在 Qt4 中使用 ifstream 和 ofstream 时 我遇到了错误 这是我的 Qt
  • 如何在 QtQuick 2 中对 QML TableView 进行排序?

    我想使用 Qt 5 1 实现具有自定义角色的可排序 TableView 但我不知道当用户单击标题时该怎么做才能对其进行排序 在我的 Qt pro 文件中 我添加了 android ios blackberry qtHaveModule wi

随机推荐

  • mac运行cocos2dx加载新资源的步骤

    如果不懂如何在mac下运行cocos2dx程序 可以参考以下的文章 http blog csdn net leansmall article details 50310343 文章中所说的 XCODE下拉列表 为 接下来 如果有新的图片或者
  • 舍友仅仅打了一把游戏,我就学会了如何实现用中断控制数码管各位的显示

    一 电路图 点击下载 二 代码 include
  • OpenMP和MPI比较

    OpenMP和MPI是并行编程的两个手段 对比如下 OpenMP 线程级 并行粒度 共享存储 隐式 数据分配方式 可扩展性差 MPI 进程级 分布式存储 显式 可扩展性好 OpenMP采用共享存储 意味着它只适应于SMP DSM机器 不适合
  • Postman如何导出接口的几种方法

    本文主要介绍了Postman如何导出接口的几种方法 文中通过示例代码介绍的非常详细 具有一定的参考价值 感兴趣的小伙伴们可以参考一下 前言 我的文章还是一贯的作风 简确用风格 简单确实有用 你们可叫我职场新人救星 好的废话不多说 今天这篇文
  • Flask框架五:高级视图

    1 类视图 1 1映射转换方式 除了 route 给函数添加装饰器映射路由外 还可以通过app add url rule view func func 来映射 类视图就要用add url rule来注册映射 from flask impor
  • 宋浩《概率论与数理统计》自用笔记

    文章目录 第一章 概率论的基本概念 古典概型 几何概型 公理化 条件概率 独立性 第二章 随机变量及其分布 离散型随机变量及其概率分布 连续型随机变量及其概率密度函数 分布函数 离散型的分布函数 连续型的分布函数 离散型分布 0 1分布 几
  • oracle误执行update提交事务后,回滚数据

    今天在公司服务器上执行了一句update SQL 并且提交了事务 忘记加筛选条件 导致整表字段被改 一下就来记录下回滚过程 1 找到自己执行update语句的时间 select r FIRST LOAD TIME r from v sqla
  • windows使用虚拟机安装mac系统

    windows使用虚拟机安装mac系统 iso链接 macOS Monterey 12 3 1 iso RTF https www aliyundrive com s s9gYRJcbtRv 点击链接保存 或者复制本段内容 打开 阿里云盘
  • 什么是集群、分布式、集中式、伪分布式

    1 集中式 将项目等部署到同一台机器上 对机器性能要求比较高 一般会用多台机器备份 否则 如果机器出现死机等状况 整个项目将不能运行 eg 就好比你要盖一座房子 你房子就给一个人盖 如果这个人生病或者有事 你还没有合适的人来代替这个人 你的
  • 什么是TCP/IP协议?

    点击上方 程序员小灰 选择 置顶公众号 有趣有内涵的文章第一时间送达 本文转载自公众号 技术特工队 作者整理了一些TCP IP协议簇中需要必知必会的十大问题 既是面试高频问题 又是程序员必备基础素养 一 TCP IP模型 TCP IP协议模
  • vue2+bootstrapvue+Koa2+nodejs实现分页

    1 实现分页思路 1 后端需要接收两个数据 当前页 currentPage 每一页的大小 即每一页要展示多少条数据 pageSize 2 注意 前端每点击一次页码儿都要发送一次请求 2 实现案例 vue2 bootstrapvue前端 Ko
  • 内网安全:WMI协议与SMB协议横向移动

    目录 网络拓扑图 网络环境说明 WMI协议 SMB协议 域内信息收集 WMI协议 横向移动 利用方式一 wmic命令 利用方式一 cscript 利用方式一 impacket SMB协议 横向移动 利用方式一 psexec 利用方式二 ps
  • 1年多经验的 Java 开发,该如何提升自己比较好?

    中级Java开发岗位职责 负责研发公司应用软件的模块设计 开发和交付 负责编码 单元测试 按照功能组件的详细设计 对其他软件工程师的代码进行审核 参与新知识的学习和培训 参与业务相关的需求评审 编写技术文档设计 中级Java开发的岗位要求
  • Vue中的绑定样式

    绑定样式 1 class样式 写法 class xxx xxx可以是字符串 对象 数组 字符串写法适用于 类名不确定 要动态获取 对象写法适用于 要绑定多个样式 个数不确定 名字也不确定 数组写法适用于 要绑定多个样式 个数确定 名字也确定
  • 测试网络连通性

    测试网络连通性的方式 ssh v p 端口 root IP curl ip 端口 nc v IP 端口
  • SQL Server 数据库之变量

    变量 1 变量概述 1 1 常规标识符 1 2 分隔标识符 2 局部变量 2 1 局部变量声明 2 2 局部变量赋值 2 3 变量显示 3 全局变量 3 1 全局变量注意事项 3 2 常用的全局变量 4 注释符 5 运算符 5 1 算术运算
  • 【CV】从 YOLO 到 YOLOv8:追踪目标检测算法的演变

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 使用Flutter和Arduino控制设备

    硬件 配置Arduino IDE Arduino服务器 首先 让TCP服务器运行并测试其是否正常运行 创建一个WiFi服务器对象 现在让我们填写setup 函数 将串行连接配置为115 200 bps的速度 等待一秒钟以确保串行连接已初始化
  • JMeter压力测试实例操作

    1 脚本录制 脚本录制 JMeter启用WEB代理 浏览器把代理上网设置为JMeter所在的IP地址 自己电脑就是127 0 0 1代理端口默认8080 至于浏览器修改代理上网服务器 不做截图 Jmeter 运行在目录 apache jme
  • Qt 的几个常用部件 -- QFrame

    文章目录 基本信息 公共类型 可用来设置的 详细描述 可以处理的事件 基本信息 头文件 include