QFrame类学习笔记

1、QFrame的作用

       QFrame类继承于QWidget类,被QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget, and QToolBox等类继承。 QFrame作为许多基础控件的基类,提供许多成员方法给子类,实现子类的框架样式的设计。框架样式主要由框架形状和用于从视觉上将框架与周围的小部件分开的阴影样式组成。即

  1. QFrame为子类提供了设计框架风格的成员函数,帮助子类设计特有的风格:或边框突起、或边框凹陷、或内容突起、或内容凹陷等效果。
  2. QFrame还可以直接用于创建不包含任何内容的简单占位符框架。

2、QFrame的成员类型文档

     2.1 enum QFrame::Shadow   

         此枚举类型定义了用于给帧提供3D效果的阴影类型。

QFrame::Plain0x0010边框或内容与周围控件看起来一样高
QFrame::Raised0x0020边框或内容比周围控件看起来突起
QFrame::Sunken0x0030边框或内容比周围控件看起来凹陷

     2.2 enum QFrame::Shape

                这个enum类型定义了可用帧的形状。

QFrame::NoFrame不画任何内容
QFrame::Box0x0001画一个边框将内容包起来,凸显边框的阴影效果
QFrame::Panel0x0002画一个内容平面,凸显内容的阴影效果
QFrame::StyledPanel0x0006绘制一个外观取决于当前GUI样式的矩形面板。它可以突起也可以凹陷。
QFrame::HLine0x0004绘制一条水平线,起分隔作用,凸显线的阴影效果
QFrame::VLine0x0005绘制一条竖线,起分隔作用,凸显线的阴影效果
QFrame::WinPanel0x0003绘制一个矩形面板,可以像Windows 2000那样向上或向下移动。指定此形状将线宽设置为2像素。WinPanel是为了兼容而提供的。

 对 于GUI风格的独立性,我们建议使用StyledPanel代替。

   2.3 enum QFrame::StyleMask

          该枚举定义了两个常量,可用于提取frameStyle()的两个组件。

QFrame::Shadow_Mask0x00f0控件的framStyle()返回值的shadow部分
QFrame::Shape_Mask0x000f控件的framStyle()返回值的shape部分

   2.4 使用QFrame可实现的样式组合

3、QFrame常用成员函数

     3.1 成员函数原型介绍

 

成员函数原型 描述
QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())构造函数
virtual   ~QFrame()     析构函数
 QRect frameRect() const       获取QFrame的框架大小
void setFrameRect(const QRect &)设置QFrame的框架大小
QFrame::Shadow  frameShadow() const获取阴影样式,
void setFrameShadow(QFrame::Shadow)设置阴影样式,
QFrame::Shape  frameShape() const获取框架的形状
void setFrameShape(QFrame::Shape)设置框架的形状
int  frameStyle() const获取框架的形状和阴影样式
void setFrameStyle(int style)设置框架的形状和阴影样式
int lineWidth() const获取框架线的宽度
 void setLineWidth(int)设置框架线的宽度
int midLineWidth() const获取框架中线的宽度
void setMidLineWidth(int)设置框架中线的宽度

   3.2 简单示例

       使用QFrame的子类QLabel完成简易登陆界面的设计,通过对QLabel框架样式的改变使其更符合QLineEdit、QPushButton等控件的风格。

 

//.h文件class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();
private:QLabel *useLabel;QLabel *pwLabel;QLabel *useEdit;QLabel *pwEdit;QLabel *checkBtn;QLabel *cancelBtn;};//.c文件Widget::Widget(QWidget *parent): QWidget(parent)
{this->resize(400,550);useLabel = new QLabel(this);useLabel->setText("用户名:");useLabel->move(70,150);useLabel->resize(50,30);//设置"用户名"标签的框架样式为 无边框+无阴影useLabel->setFrameShape(QFrame::NoFrame);useLabel->setFrameShadow(QFrame::Plain);useEdit = new QLabel(this);useEdit->move(150,150);useEdit->resize(200,30);//设置"用户名"输入框的框架样式为 边框+突起useEdit->setFrameStyle(QFrame::Box|QFrame::Raised);useEdit->setLineWidth(2);pwLabel = new QLabel(this);pwLabel->setText("密码:");pwLabel->move(70,210);pwLabel->resize(50,30);//设置"密码"标签的框架样式为 无边框+无阴影pwLabel->setFrameStyle(QFrame::NoFrame|QFrame::Plain);pwEdit = new QLabel(this);pwEdit->move(150,210);pwEdit->resize(200,30);//设置"用户名"输入框的框架样式为 内容+凹陷pwEdit->setFrameStyle(QFrame::Panel|QFrame::Sunken);pwEdit->setLineWidth(2);checkBtn = new QLabel(this);checkBtn->setText("确认");checkBtn->setAlignment(Qt::AlignCenter);checkBtn->move(100,290);checkBtn->resize(80,30);//设置"确认"按钮的框架样式为 内容+突起checkBtn->setFrameStyle(QFrame::Panel|QFrame::Raised);checkBtn->setLineWidth(3);cancelBtn = new QLabel(this);cancelBtn->setText("取消");cancelBtn->setAlignment(Qt::AlignCenter);cancelBtn->move(240,290);cancelBtn->resize(80,30);//设置"取消"按钮的框架样式为 内容+突起cancelBtn->setFrameStyle(QFrame::Panel|QFrame::Raised);cancelBtn->setLineWidth(3);}

效果图:

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于微信小程序的健身小助手打卡预约教学系统(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能:用户的功能设计为:管理员的功能设计为:健身房的功能设计为:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获…

【数据结构】插入排序:直接插入排序、折半插入排序、希尔排序的学习知识总结

目录 1、排序的基本概念 2、直接插入排序 2.1 算法思想 2.2 代码实现 3、折半插入排序 3.1 算法思想 3.2 代码实现 4、希尔排序 4.1 算法思想 4..2 代码实现 1、排序的基本概念 排序是将一组数据按照预定的顺序排列的过程,排序的基本概念包括以下内容…

electron快速入门

新建electronstu01文件夹 以管理员身份运行powershell,切换到该文件下 npm init -y安装依赖包 npm install --save-dev electron失败 npm install -g cnpm --registryhttps://registry.npm.taobao.org cnpm install --save-dev electron修改 package.json &qu…

正则表达式的应用(前端写法)

文章目录 1、匹配字符串中,a标签的href值2、校验邮箱3、校验手机号码3、待添加... 1、匹配字符串中,a标签的href值 (1) 代码 /*** description 匹配字符串中,a标签的href值* param {string} str 匹配的字符串* return {Array} 返回href值*/…

冒泡排序与选择排序(最low的两兄弟)

个人主页:Lei宝啊 愿所有美好如期而遇 前言: 在我们的生活中,无处不在用到排序,比如说成绩的排名,淘宝,京东等等商品在各个方面的排序,这样看来一个好的算 法很重要,接下来我们要先…

JVM对象创建与内存分配机制

对象的创建 对象创建的主要流程: ​ 1.类加载检查 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应…

Lua学习笔记:debug.sethook函数

前言 本篇在讲什么 使用Lua的debug.setHook函数 本篇需要什么 对Lua语法有简单认知 依赖Sublime Text工具 本篇的特色 具有全流程的图文教学 重实践,轻理论,快速上手 提供全流程的源码内容 ★提高阅读体验★ 👉 ♠ 一级标题 &…

【AI视野·今日NLP 自然语言处理论文速览 第三十八期】Thu, 21 Sep 2023

AI视野今日CS.NLP 自然语言处理论文速览 Thu, 21 Sep 2023 Totally 57 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Chain-of-Verification Reduces Hallucination in Large Language Models Authors Shehzaad Dhuliawala, Mojt…

华为杯数学建模比赛经验分享

再过一周左右,第二十届华为杯数学建模比赛就要开赛了,所以今天分享一下个人数学建模比赛的经验。 今天给大家分享一期关于华为杯数学建模比赛的经验分享,我将从以下三个方面展开说明: (1)如何准备数学建模比赛&#x…

系统集成|第十七章(笔记)

目录 第十七章 变更管理17.1 项目变更的基本概念17.2 变更管理的基本原则17.3 角色职位与工作程序17.4 相关事宜 上篇:第十六章、信息(文档)和配置管理 下篇:第十八章、安全管理 第十七章 变更管理 17.1 项目变更的基本概念 变更…

获取热门电影算法

功能#2:获取热门电影 为我们的“Netflix”项目实现“获取热门电影”功能。 我们将介绍以下内容 描述 解决方案 复杂性措施 时间复杂度 空间复杂度 描述# 现在,我们需要建立一个标准,以便将来自多个国家的顶级电影组合成一个单一的顶级电影…

24. 图论 - 图的表示种类

Hi,你好。我是茶桁。 之前的一节课中,我们了解了图的来由和构成,简单的理解了一下图的一些相关概念。那么这节课,我们要了解一下图的表示,种类。相应的,我们中间需要穿插一些新的知识点用于更好的去理解图,比如说邻接矩阵。 图的表示 我们一般用什么样的形式来表示图…

Linux su sudo命令

1、su命令——切换用户 1.1、切换到root用户(需要密码) su - root 1.2、切换到其他用户,比如jackma(无需密码) su - jackma 2、sudo命令——给普通用户添加root权限 2.1、用法 切换到root用户,执行visudo命令,会自动…

配置pytorchGPU虚拟环境-python3.7

cuda版本的pytorch包下载地址戳这里 winR->输入cmd->输nvcc -V回车 cuda 11.0 输入以下命令来查找 CUDA 的安装路径: Windows: where nvcc 输入以下命令来查找 cuDNN 的版本号: Windows: where cudnn* cuDNN 8.0 本机安装的是cuda 11.0&…

C语言数组和指针笔试题(三)(一定要看)

目录 字符数组四例题1例题2例题3例题4例题5例题6例题7 结果字符数组五例题1例题2例题3例题4例题5例题6例题7结果字符数组六例题1例题2例题3例题4例题5例题6例题7 结果 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒个…

第二证券:迎政策助力,新型工业化爆发,德恩精工3日涨超60%

新式工业化概念26日盘中大幅拉升,到发稿,德恩精工、精伦电子、天永智能等涨停,固高科技涨约8%,亚威股份涨逾6%,金自天正、创世纪涨约5%。 值得注意的是,精伦电子已接连5个交易日涨停,公司昨日晚…

2023-09-21 buildroot linux 查看应用的log打印信息,命令cat /var/log/messages

一、应用会调用syslog 把打印信息输出到串口,debug 串口会打印kernel的log和上层应用的的log。 二、linux 命令cat /var/log/messages查看应用log

Spire.OCR for .NET 1.9.0 Crack

Spire.OCR for .NET 是一个专业的 OCR 库,用于从 JPG、PNG、GIF、BMP 和 TIFF 格式的图像中读取文本。开发人员可以轻松地在 C# 和 VB.NET 的 .NET 应用程序中添加 OCR 功能。它支持常用的图像格式,并提供从图像中​​读取多个字符和字体、粗体和斜体样式…

如何给Nginx配置访问IP白名单

一、Nginx配置访问IP白名单 有时部署的应用需要只允许某些特定的IP能够访问,其他IP不允许访问,这时,就要设置访问白名单; 设置访问白名单有多种方式: 1.通过网络防火墙配置,例如阿里云/华为云管理平台 2.…

Selenium自动化测试 —— 通过cookie绕过验证码的操作!

验证码的处理 对于web应用,很多地方比如登录、发帖都需要输入验证码,类型也多种多样;登录/核心操作过程中,系统会产生随机的验证码图片,进行验证才能进行后续操作 解决验证码的方法如下: 1、开发做个万能…