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  指按钮窗口部件的前景色

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

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

相关文章

WPF基础入门-Class3-WPF数据模板

WPF基础入门 Class3&#xff1a;WPF数据模板 1、先在cs文件中定义一些数据 public partial class Class_4 : Window{public Class_4(){InitializeComponent();List<Color> test new List<Color>();test.Add(new Color() { Code "Yellow", Name &qu…

Spring源码编译-for mac

超详细的spring源码编译 记&#xff1a;编译成功时间&#xff1a;2023.08.19 环境准备&#xff1a; 1.idea 2023.1.1 Community Edition 2.jdk1.8 3.gradlegradle-5.6.4 4.spring源码(版本&#xff1a;spring-framework-v5.2.25.RELEASE) 一.spring源码下载 github 加速网站&…

day-30 代码随想录算法训练营 回溯part06

332.重新安排行程 思路&#xff1a;使用unordered_map记录起点机场对应到达机场&#xff0c;内部使用map记录到达机场的次数&#xff08;因为map会进行排序&#xff0c;可以求出最小路径&#xff09; class Solution { public:vector<string>res;unordered_map<stri…

基于数据湖的多流拼接方案-HUDI概念篇

目录 一、为什么需要HUDI&#xff1f; 1. 传统技术选型存在哪些问题&#xff1f; 2. Hudi有什么优点&#xff1f; 基于 Hudi Payload 机制的多流拼接方案&#xff1a; 二、HUDI的应用场景 1. 什么场景适合使用hudi&#xff1f; 2. 什么场景不适合使用hudi&#xff1f; …

Oracle 查询(当天,月,年)的数据

Trunc 在oracle中&#xff0c;可利用 trunc函数 查询当天数据&#xff0c;该函数可用于截取时间或者数值&#xff0c;将该函数与 select 语句配合使用可查询时间段数据 查询当天数据 --sysdate是获取系统当前时间函数 --TRUNC函数用于截取时间或者数值&#xff0c;返回指定的…

《Go 语言第一课》课程学习笔记(十)

复合数据类型 同构复合类型&#xff1a;从定长数组到变长切片 由多个同构类型&#xff08;相同类型&#xff09;或异构类型&#xff08;不同类型&#xff09;的元素的值组合而成&#xff0c;这类数据类型在 Go 语言中被称为复合类型。 数组有哪些基本特性&#xff1f; Go 语…

Go 语言的实战案例 SOCKS5 代理 | 青训营

Powered by:NEFU AB-IN 文章目录 Go 语言的实战案例 SOCKS5 代理 | 青训营 引入TCP echo serverauth 认证请求阶段relay阶段 Go 语言的实战案例 SOCKS5 代理 | 青训营 GO语言工程实践课后作业&#xff1a;实现思路、代码以及路径记录 引入 代理是指在计算机网络中&#xff…

STL---list

目录 1. list的介绍及使用 1.1 list的介绍 1.2 list的使用注意事项 2.list接口介绍及模拟实现 2.1构造​编辑 2.2容量 2.3修改 3.list迭代器 4.迭代器失效 5.模拟实现 6.vector和list的区别 1. list的介绍及使用 1.1 list的介绍 list的文档介绍 1. list是可以在常…

MySQL下载安装配置

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

电脑文件删除了可以找回吗?分享一种简单恢复删除电脑文件办法!

电脑文件删除了可以找回吗&#xff1f;可以。在原理上讲电脑删除的文件是有希望恢复的&#xff0c;因为操作系统在删除文件的时候并会不会立刻将文件彻底删除。当文件被删除的时候&#xff0c;其文件记录被删除&#xff0c;并且被文件占用的磁盘空间被标记为空闲。 这样对于用户…

成集云 | 旺店通多包裹数据同步钉钉 | 解决方案

源系统成集云目标系统 方案介绍 随着品牌电商兴起&#xff0c;线上线下开始逐渐融为一体&#xff0c;成集云以旺店通ERP系统为例&#xff0c;通过成集云-旺店通连接器&#xff0c;将旺店通ERP系统多包裹数据同步至钉钉实现数据互通&#xff0c;帮助企业解决了电商发货存在的错…

【STM32RT-Thread零基础入门】 7. 线程创建应用(多线程运行机制)

硬件&#xff1a;STM32F103ZET6、ST-LINK、usb转串口工具、4个LED灯、1个蜂鸣器、4个1k电阻、2个按键、面包板、杜邦线 文章目录 前言一、RT-Thread相关接口函数1. 获取当前运行的线程2. 设置调度器钩子函数 二、程序设计1. 头文件包含及宏定义2. 线程入口函数定义3. main函数设…

掌握指针和数组:经典笔试题攻略(万字详解)

&#x1f341;博客主页&#xff1a;江池俊的博客 &#x1f4ab;收录专栏&#xff1a;C语言刷题专栏 &#x1f4a1;代码仓库&#xff1a;江池俊的代码仓库 &#x1f3aa;我的社区&#xff1a;GeekHub &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐ 文章目录 前…

C语言练习2(巩固提升)

C语言练习2 选择题 前言 “志之所趋&#xff0c;无远弗届&#xff0c;穷山距海&#xff0c;不能限也。”对想做爱做的事要敢试敢为&#xff0c;努力从无到有、从小到大&#xff0c;把理想变为现实。要敢于做先锋&#xff0c;而不做过客、当看客&#xff0c;让创新成为青春远航的…

全行业线上商城系统一体化平台,个性化设计-免费更新-亿发

移动互联网成为了现代人生活中不可或缺的一部分。人们已经习惯了通过手机应用完成日常任务&#xff0c;从购物到社交&#xff0c;都能在手指间直接搞定。 随着小程序的兴起&#xff0c;2023年的线上商城系统在不断发展的数字化环境中&#xff0c;如今&#xff0c;线上商城正以…

面试之快速学习STL-迭代适配器

先放一张大图 参考&#xff1a;http://c.biancheng.net/view/7255.html 1. 反向迭代器 例子&#xff1a; std::list<int> values{1,2,3,4,5};auto start_it values.rbegin();const auto end_it values.rend();//start_it end_it std::reverse_iterator<std::lis…

Node.js下载安装及环境配置教程

一、进入官网地址下载安装包 https://nodejs.org/zh-cn/download/ 选择对应你系统的Node.js版本&#xff0c;这里我选择的是Windows系统、64位 Tips&#xff1a;如果想下载指定版本&#xff0c;点击【以往的版本】&#xff0c;即可选择自己想要的版本下载 二、安装程序 &a…

stm32之15.超声波与灯光功能一起实现(进阶)

主函数代码修改 --------------------- 源码 int main(void) {uint32_t t0;uint32_t distance;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);led_init();key_init();/* 初始化串口1波特率为115200bps&#xff0c;若发送/接收数据有乱码&#xff0c;请检查PLL */usart1_ini…

传感网应用开发1+X实训室建方案

一、概述 1.1建设背景 从院校实际教学情况与人才培养计划为出发点&#xff0c;贯彻传感网应用开发1X实训室职业技能等级标准&#xff0c;充分考虑传感网应用开发1X实训室从业人员的职业发展路径与成长路径&#xff0c;以职业素养、职业技能、知识水平为主要框架结构&#xff…

多线程MySQL分页查询-性能优化

MySQL分页查询优化 一、背景二、原因三、解决四、原理探究 https://blog.csdn.net/hollis_chuang/article/details/130570281 总结&#xff1a; 一、背景 业务背景&#xff1a;给C端10万级别的用户&#xff0c;同时发送活动消息&#xff0c;活动消息分为6类。数据背景&#…