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

Qt --- 显示相关设置 窗口属性等

主界面,窗口 最小化 最大化 关闭按钮、显示状态自定义:

setWindowFlags(Qt::CustomizeWindowHint);
setWindowFlags(Qt::WindowCloseButtonHint); //只要关闭按钮
setWindowFlags(Qt::WindowFlags type)
Qt::FrameWindowHint:没有边框的窗口
Qt::WindowStaysOnTopHint:  //总在最上面的窗口
Qt::CustomizeWindowHint:  //自定义窗口标题栏,以下标志必须与这个标志一起使用才有效,否则窗口将有默认的标题栏
Qt::WindowTitleHint  //显示窗口标题栏
Qt::WindowSystemMenuHint  //显示系统菜单
Qt::WindowMinimizeButtonHint  //显示最小化按钮
Qt::WindowMaximizeButtonHint  //显示最大化按钮
Qt::WindowMinMaxButtonsHint  //显示最小化按钮和最大化按钮
Qt::WindowCloseButtonHint  //显示关闭按钮

隐藏任务栏显示

setWindowFlags(Qt::Tool | Qt::X11BypassWindowManagerHint)

关闭按钮实现功能:

hide(); //进行界面隐藏,但是显示托盘,可通过点击托盘实现界面的重新显示
quit(); //退出系统

绘制背景图片并且实现圆角效果

void paintEvent(QPaintEvent *)
{QPainter painter(this);QBrush brush;brush.setTextureImage(QImage(background_image)); //背景图片painter.setBrush(brush);painter.setPen(Qt::black);  //边框色painter.drawRoundedRect(this->rect(), 5, 5); //圆角5像素
}

设置应用程序的字体

QFont font("Courier", 10, QFont::Normal, false);
QApplication::setFont(font);

设置字体

QFont font = this->font();
font.setFamily("Courier");  //字体名称
font.setPixelSize(16);  //字体点大小
font.setPointSize(18);  //字体像素大小
font.setBold(true);  //是否加粗
font.setItalic(true);  //是否斜体
font.setUnderline(true);  //是否下划线
this->setFont(font);
//字体风格,包括类型、大小、是否加粗、是否斜体等!
//也可使用:setStyleSheet("text-align:center; font-size:18px; font-weight:bold; font-style:Courier; color:white; ");
setAlignment(Qt::AlignCenter);  //设置对齐方式

超链接

    QLabel *pLabel = new QLabel(this);pLabel->setText(QStringLiteral("超链接"));pLabel->setFixedSize(200,100);connect(pLabel,SIGNAL(linkActivated(QString)),this,SLOT(openUrl(QString)));QDesktopServices::openUrl(QUrl(url));  //openUrl槽里面实现pLabel->setOpenExternalLinks(true);pLabel->setText("新浪");

打开本地文件(夹)

QDesktopServices::openUrl(QUrl::fromLocalFile(local_file));

显示窗口并激活/提升

showNormal();
raise();
activateWindow();

设置滚动条值

pTextEdit->verticalScrollBar()->setValue(0);  //滚动到最顶层
pTextEdit->verticalScrollBar()->setValue(pTextEdit->verticalScrollBar()->maximum());  //滚动到最底层

QToolBar添加拉伸(弹簧)原以为QToolBar可以通过addStretch()来实现,不想没有此接口,则可通过下来方式实现:

QWidget *pWidget = new QWidget(this);
pWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); 
pToolBar->addWidget(pWidget);

QProgressBar进度条设置文本、样式

QProgressBar *pProgressBar = new QProgressBar(this);
pProgressBar->setFixedSize(150, 10);
pProgressBar->setToolTip(QStringLiteral("离下一等级还需要1500经验"));
pProgressBar->setFormat("12345/50000");
pProgressBar->setMaximum(100);
pProgressBar->setValue(10);QString strQSS = "QProgressBar {color: white;} \QProgressBar:horizontal { \text-align: center; \border: 1px solid rgb(115, 200, 60); \background: rgb(145, 210, 75, 150); \} \
QProgressBar::chunk:horizontal { \background: rgb(145, 210, 75); \
}";pProgressBar->setStyleSheet(strQSS);

全屏显示与还原

showFullScreen()
showMaximized() 这两个都可以!

不遮挡任务栏

void showMaximize()
{//若已经最大化if(is_max){//恢复界面位置,并设置按钮图标为最大化图标,提示“最大化”this->setGeometry(location);max_button->setIcon(QIcon("maxbtn"));max_button->setToolTip(tr("max"));} else {//设定当前界面的位置,还原时使用location = this->geometry();//获取桌面位置,设置为最大化,并设置按钮图标为还原图标,提示“还原”QDesktopWidget *desk = QApplication::desktop();this->setGeometry(desk->availableGeometry());max_button->setIcon(QIcon("restorbtn"));max_button->setToolTip(tr("restor"));}is_max = !is_max;
}

注:窗口既然可以最大化,当然还要进行还原,is_max为一个bool值变量,表示窗口是否最大化,初始值为false。location为桌面的位置,每次最大化开始先记录当前的位置,等待还原时候使用。

QSS样式

QComboBox:

    comboBox->setStyleSheet("QComboBox{border:1px solid gray;}""QComboBox QAbstractItemView::item{height:25px;}""QComboBox::down-arrow{image:url(:/icon/arrowdown);}""QComboBox::drop-down{border:0px;}");comboBox->setView(new QListView());

QSpinBox

    pSpinBox->setStyleSheet("QSpinBox{border:1px solid gray;}""QSpinBox::up-button{image:url(:/icon/arrow_up);}""QSpinBox::down-button{image:url(:/icon/arrow_down);}");

  

QMenu

QMenu{padding:5px;background:white;border:1px solid gray;}
QMenu::item{padding:0px 40px 0px 30px;height:25px;
}
QMenu::item:selected:enabled{background:lightgray;color:white;
}
QMenu::item:selected:!enabled{background:transparent;
}
QMenu::separator{height:1px;background:lightgray;margin:5px 0px 5px 0px;
}

 

 QSlider

QSlider::groove:horizontal{border:0px;height:4px;
}  
QSlider::sub-page:horizontal{background:white;
}  
QSlider::add-page:horizontal{background:lightgray;
} 
QSlider::handle:horizontal{background:white;width:10px;border-radius:5px;margin:-3px 0px -3px 0px;
}

QCheckBox

QCheckBox{spacing: 2px; 
}
QCheckBox::indicator {width: 20px;height: 20px;
}
QCheckBox::indicator:unchecked {image: url(:/login/checkbox);
}
QCheckBox::indicator:unchecked:hover {image: url(:/login/checkbox_hover);
}
QCheckBox::indicator:unchecked:pressed {image: url(:/login/checkbox_press);
}
QCheckBox::indicator:checked {image: url(:/login/checkbox_selected);
}
QCheckBox::indicator:checked:hover {image: url(:/login/checkbox_selected_hover);
}
QCheckBox::indicator:checked:pressed {image: url(:/login/checkbox_selected_press);
}

 

QScrollBar

水平滚动条 
QScrollBar:horizontal { max-height: 9px;background: transparent;padding-left: 9px;padding-right: 9px;
}
QScrollBar::handle:horizontal {height: 9px;min-width: 20px;background: rgb(190, 190, 190);
}
QScrollBar::handle:horizontal:hover {background: rgb(170, 170, 170);
}
QScrollBar::sub-line:horizontal {height: 9px;width: 9px;background: rgb(220, 220, 220);border-image: url(:/CalcSetting/ArrowLeft);subcontrol-position: left;
}
QScrollBar::add-line:horizontal {height: 9px;width: 9px;background: rgb(220, 220, 220);border-image: url(:/CalcSetting/ArrowRight);subcontrol-position: right;
}
QScrollBar::sub-line:horizontal:hover {background: rgb(190, 190, 190);border-image: url(:/CalcSetting/ArrowLeftHover);
}
QScrollBar::add-line:horizontal:hover {background: rgb(190, 190, 190);border-image: url(:/CalcSetting/ArrowRightHover);
}
QScrollBar::add-page:horizontal,QScrollBar::sub-page:horizontal {background: rgb(220, 220, 220);
}垂直滚动条 
QScrollBar:vertical {max-width: 9px;background: transparent;padding-top: 9px;padding-bottom: 9px;
}
QScrollBar::handle:vertical {width: 9px;min-height: 20px;background: rgb(190, 190, 190);
} 
QScrollBar::handle:vertical:hover {background: rgb(170, 170, 170);
} 
QScrollBar::sub-line:vertical {height: 9px;width: 9px;background: rgb(220, 220, 220);border-image: url(:/CalcSetting/ArrowTop);subcontrol-position: top;
} 
QScrollBar::add-line:vertical {height: 9px;width: 9px;background: rgb(220, 220, 220);border-image: url(:/CalcSetting/ArrowBottom);subcontrol-position: bottom;
} 
QScrollBar::sub-line:vertical:hover {background: rgb(190, 190, 190);border-image: url(:/CalcSetting/ArrowTopHover);
}
QScrollBar::add-line:vertical:hover {background: rgb(190, 190, 190);border-image: url(:/CalcSetting/ArrowBottomHover);
}
QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical {background: rgb(220, 220, 220);
}

 

QStatusBar

QStatusBar::item{border: 0px;
}
//不存在分隔线

 QComboBox

QComboBox {border-image: url(:/OverdraftControl/comboBox);
}
QComboBox:hover {border-image: url(:/OverdraftControl/comboBoxHover);
}
QComboBox:pressed {border-image: url(:/OverdraftControl/comboBoxPressed);
}
QComboBox::down-arrow {image: none;
}
QComboBox::drop-down {width: 15px;border: none;
}
QComboBox QAbstractItemView {border: 1px solid lightgray;outline: 0px;  //去掉item虚线
}
QComboBox QAbstractItemView::item {color: black;height: 22px;border: 1px solid transparent;
}
QComboBox QAbstractItemView::item:selected {border: 1px solid rgb(170, 190, 230);background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 rgb(230, 240, 250), stop: 0.5 rgb(220, 235, 255), stop: 1.0 rgb(210, 230, 255));
}

一般也可以使用QPalette

    QPalette palette;  palette.setBrush(QPalette::WindowText, QBrush(Qt::white));  pCheckBox->setPalette(palette);  pCheckBox->setStyleSheet("color:white");

调色板类QPalette提供了颜色角色(color roles)的概念,指当前界面中颜色的职责,通过枚举变量QPalette::ColorRole来定义,比较常用的角色有:

    QPalette::Window  通常指窗口部件背景色QPalette::WindowText  通常指窗口部件的前景色QPalette::Base  指文本的背景色(QTextEdit、QLineEdit等)QPalette::Text  与QPalette::Base一块使用,指文本输入窗口部件前景色QPalette::Button   指按钮窗口部件的背景色QPalette::ButtonText  指按钮窗口部件的前景色

相关文章:

Qt --- 显示相关设置 窗口属性等

主界面,窗口 最小化 最大化 关闭按钮、显示状态自定义: setWindowFlags(Qt::CustomizeWindowHint); setWindowFlags(Qt::WindowCloseButtonHint); //只要关闭按钮 setWindowFlags(Qt::WindowFlags type) Qt::FrameWindowHint:没有边框的窗口 Qt::Window…...

使用小程序实现左侧菜单,右侧列表双向联动效果

目录 引言理解双向联动效果的重要性scrollview属性介绍实现左侧菜单数据准备渲染菜单列表监听菜单点击事件实现右侧列表数据结构设计初始数据渲染监听列表滚动事件左侧菜单与右侧列表联动获取当前滚动位置计算对应菜单项联动效果优化用户体验考虑平滑滚动效果菜单高亮状态...

selenium中处理验证码问题

验证码 基本作用:可以实现当前访问页面的数据安全性、还可以减少用户的并发数; 类型:1、纯数字、纯字母;2、汉字组合;3、数学运算题;4、滑动;5、图片(选不同的、选相同、成语顺序&…...

EMR电子病历系统 SaaS电子病历编辑器源码 电子病历模板编辑器

EMR(Electronic Medical Record)指的是电子病历。它是一种基于电子文档的个人医疗记录,可以包括病人的病史、诊断、治疗方案、药物处方、检查报告和护理计划等信息。EMR采用计算机化的方式来存储、管理和共享这些信息,以便医生和医…...

一些自定义hooks

文章目录 1、点击框外隐藏弹窗hook 1、点击框外隐藏弹窗hook **描述:**有一个需要自己封装弹窗的组件,实现点击弹窗框外时隐藏弹窗 代码: import { useEffect } from “react”; // 点击框外hooks import { useEffect } from "react&q…...

基于Citespace、vosviewer、R语言的文献计量学可视化分析技术及全流程文献可视化SCI论文高效写作方法

文献计量学是指用数学和统计学的方法,定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体,注重量化的综合性知识体系。特别是,信息可视化技术手段和方法的运用,可直观的展示主题的研究发展历程、研究现状、研究…...

lEC 61068-2-14_2023环境试验.第2-14部分:试验.试验N:温度变化, 最新版发布

https://download.csdn.net/download/m0_67373485/88251313 lEC 61068-2-14_2023环境试验.第2-14部分:试验.试验N:温度变化 A change of temperature test is intended to determine the effect on the specimen of a changeof temperature or a succession of changes of tem…...

CFDEM学习笔记

本文用来记录自己学习CFDEM的笔记。 资料总结 虚拟机:链接:https://pan.baidu.com/s/1MPMTJQfl76mW0H5bbT_rAg 提取码:rqli 开机密码:530944988 知乎博客:作者说明了如何关闭颗粒碰撞计算来达到提升计算速度。 Githu…...

SpringBoot入门篇1 - 简介和工程创建

目录 SpringBoot是由Pivotal团队提供的全新框架, 其设计目的是用来简化Spring应用的初始搭建以及开发过程。 1.创建入门工程案例 ①创建新模块,选择Spring初始化,并配置模块相关基础信息 ②开发控制器类 controller/BookController.jav…...

MyBatis-Plus updateById不更新null值

文章目录 前言方式一 调整全局的验证策略方式二 调整字段验证注解方式三 使用 UpdateWrapper 前言 在 MyBatis-Plus 中,使用updateById,null字段并不会更新,其实是和更新的策略有关,当然,也有插入策略,本文…...

用pytorch实现AlexNet

AlexNet经典网络由Alex Krizhevsky、Hinton等人在2012年提出,发表在NIPS,论文名为《ImageNet Classification with Deep Convolutional Neural Networks》,论文见:http://www.cs.toronto.edu/~hinton/absps/imagenet.pdf &#xf…...

LeetCode560.和为k的子数组

这道题我用的是暴力法,当然也是不断的提交不断发现问题改出来的,比如我之前是算到和大于目标值就break,其实不行因为后面还可以有负数,我把break删了。后面和为目标之后就答案1然后break然后下一次遍历,测试用例中就出…...

echarts 的dataZoom滑块两端文字被遮挡

问题: 期望: 解决方案: 1:调整宽度(4版本的没有width属性) 2. 参考:echarts图标设置dataZoom拖拽时间轴时自动调整两侧文字的位置_datazoom 位置_乌栖曲的博客-CSDN博客 设置文字的定位 cons…...

MongoDB基本使用

在 MongoDB 中我们可以使用use命令来创建数据库,如果该数据库不存在,则会创建一个新的数据库,如果该数据库已经存在,则将切换到该数据库。使用use命令创建数据库的语法格式如下: --use database_name use my_db1;数据…...

C++ 中的左值(Lvalues)和右值(Rvalues)

C 中有两种类型的表达式: 左值(lvalue):左值参数是可被引用的数据对象,例如,变量、数组元素、结构成员、引用和解除引用的指针都是左值。非左值包括字面常量(用引号起的字符串除外,…...

html流光按钮

出处bilibili猫咪爱狗 <!DOCTYPE html> <html><head><style>body {/*内容居中&#xff0c;背景色*/height: 100vh;display: flex;justify-content: center; align-items: center;background-color: #000;}a { /*水平垂直居中*/position: re…...

HAProxy+nginx搭建负载均衡群集

目录 一、常见的Web集群调度器 二、HAProxy群集介绍 1、Haproxy的特性 : 2、Haproxy常用的调度算法 ① 轮询调度&#xff08;Round Robin&#xff09; ② 最小连接数&#xff08;Least Connections&#xff09; ③ 基于来源访问调度算法&#xff08;Source Hashing&am…...

logback-spring.xml 的配置及详解(直接复制粘贴可用)

logback-spring.xml 的配置及详解 一、注意实现二、配置及详解 一、注意实现 logback-spring.xml 中有三处需要根据实际业务进行修改&#xff0c;直接查找“&#xff08;根据业务修改&#xff09;”即可进行定位。 如果不想修改&#xff0c;直接复制粘贴到自己系统运行也可以&…...

C语言易错点整理

前言&#xff1a; 本文涵盖了博主在平常写C语言题目时经常犯的一些错误&#xff0c;在这里帮大家整理出来&#xff0c;一些易错点会帮大家标识出来&#xff0c;希望大家看完这篇文章后有所得&#xff0c;引以为戒~ 一、 题目&#xff1a; 解答&#xff1a; 首先在这个程序中…...

60.每日一练:回文数(力扣)

目录 问题描述 代码解决以及思想 解法&#xff08;一&#xff09; 知识点 解法&#xff08;二&#xff09; 问题描述 代码解决以及思想 解法&#xff08;一&#xff09; class Solution { public:bool isPalindrome(int x) {string arr to_string(x); // 将整数转换为…...

开发者跨界金融科技:机遇与技能图谱

一、金融科技浪潮下的测试新机遇1.1 行业爆发式增长催生人才缺口全球金融数智化进程加速&#xff0c;银行业持续加码科技投入。据公开数据显示&#xff0c;2024年仅国有六大行金融科技投入超1250亿元&#xff0c;同比增长约2%。业务快速迭代与用户体验升级需求&#xff0c;推动…...

GSE-Advanced-Macro-Compiler:重新定义魔兽世界技能自动化的开发实践

GSE-Advanced-Macro-Compiler&#xff1a;重新定义魔兽世界技能自动化的开发实践 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. It uses Travis for UnitTests, Coveralls to report on test …...

从权重计分到算杀引擎:五子棋AI核心算法实战解析

1. 五子棋AI的算法演进&#xff1a;从基础评分到算杀引擎 五子棋作为一款经典策略游戏&#xff0c;其AI算法的核心在于如何评估棋盘局势并做出最优决策。早期AI主要依赖简单的评分机制&#xff0c;比如给不同的棋形&#xff08;活二、活三、冲四等&#xff09;赋予固定分值&…...

图像处理中的频域魔法:用傅里叶变换消除噪点与增强细节的3种技巧

图像处理中的频域魔法&#xff1a;用傅里叶变换消除噪点与增强细节的3种技巧 当你在处理一张模糊的医学影像或卫星图片时&#xff0c;是否想过那些隐藏在像素背后的频率秘密&#xff1f;傅里叶变换就像一台精密的频谱分析仪&#xff0c;能将图像从空间域转换到频域&#xff0c…...

BiliBili-UWP:打造Windows平台高效B站观影体验深度指南

BiliBili-UWP&#xff1a;打造Windows平台高效B站观影体验深度指南 【免费下载链接】BiliBili-UWP BiliBili的UWP客户端&#xff0c;当然&#xff0c;是第三方的了 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBili-UWP BiliBili-UWP作为一款专为Windows平台设计的…...

如何快速上手BepInEx:3个高效秘诀解锁Unity游戏插件开发

如何快速上手BepInEx&#xff1a;3个高效秘诀解锁Unity游戏插件开发 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 想象一下&#xff0c;你心爱的Unity游戏缺少某个功能&#xff…...

3个步骤打造全方位网络电台体验:foobox-cn配置指南

3个步骤打造全方位网络电台体验&#xff1a;foobox-cn配置指南 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 在数字音乐时代&#xff0c;如何高效管理和收听网络电台成为音乐爱好者的核心诉求。网络…...

PROJECT MOGFACE开源社区贡献指南:从代码阅读到提交PR的全流程

PROJECT MOGFACE开源社区贡献指南&#xff1a;从代码阅读到提交PR的全流程 你是不是也遇到过这样的情况&#xff1a;在GitHub上看到一个很酷的开源项目&#xff0c;比如最近挺火的PROJECT MOGFACE&#xff0c;心里痒痒的&#xff0c;也想贡献点代码&#xff0c;但一打开那庞大…...

Modules 模块化:头文件地狱真的要终结了吗?我持怀疑态度

各位来宾&#xff0c;各位技术同仁&#xff0c;大家好&#xff01;今天我们齐聚一堂&#xff0c;探讨一个在C社区引发广泛讨论、充满期待又饱含争议的话题&#xff1a;C模块化。特别是关于“头文件地狱真的要终结了吗&#xff1f;”这个问题&#xff0c;我深知在座的许多人&…...

别再为Allegro导图发愁了!手把手教你用RATA工具搞定BMP单色图转换(附像素调整避坑指南)

Allegro图片导入难题终极指南&#xff1a;从原理到实战的完整解决方案 在PCB设计领域&#xff0c;Allegro作为行业标杆工具&#xff0c;却有一个让无数工程师头疼的"阿喀琉斯之踵"——图片导入功能。无论是公司Logo、结构示意图还是特殊标识&#xff0c;当我们需要将…...