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

news2025/1/13 19:50:00

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

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.coloradmin.cn/o/927113.html

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

相关文章

8年测试经验之谈 —— 接口自动化测试requests

1.什么是requests? requests是一个Python第三方库,处理URL资源特别方便 2.安装requests pip3 install requests 如果遇到Permission denied安装失败,请加上sudo重试 3.使用requests 3.1get请求方法 3.1.1基本的get请求 import reques…

RFID读写头在工业产线中的应用有哪些

现如今,随着RFID技术的发展,成本的降低,RFID技术在工业上的应用已经是一件很常见的事情了,越来越多的企业、工厂选择将RFID技术应用在工业生产中,助力企业/工厂加速迈步走向信息化、自动化。 在工业产线中&#xff0c…

向量数据库(第 2 部分):了解其内部结构

这是关于向量数据库的系列文章中的第二篇。正如本系列的第一篇所提到的,2023年上半年关于向量数据库的营销(不幸的是,有些是炒作)非常多,如果你正在阅读这篇文章,你可能对向量数据库在底层是如何工作的&…

gitee创建仓库并上传代码实操记录

1、创建demo库 2、复制地址 3、下载到本地 4、复制文件至demo文件夹下 5、设置忽略文件 编辑文件.gitignore 替换为: # Created by .ignore support plugin (hsz.mobi) /target/* !.mvn/wrapper/maven-wrapper.jar src/test/ ### STS ### .apt_generated .clas…

决策树算法:它们无处不在【01/2】

一、说明 本文首先叙述决策树的概念,进而展开决策树的原理,以及支持理论信息熵,对决策树进行全面描述,如果 您想知道的有关决策树、理论和实施的所有信息,请看此文。 二、介绍 “两条路在一片树林里分道扬镳&#xff0…

k8s之工作负载、Deployment、DaemonSet、StatefulSet、Job、CronJob及GC

文章目录 1、工作负载1.1、定义1.2、分类 2、Deployment2.1、定义2.2、Deployment创建2.3、Deployment 更新机制2.3.1、比例缩放(Proportional Scaling)2.3.2、HPA(动态扩缩容)2.3.2.1、需要先安装metrics-server2.3.2.2、配置hpa…

【LeetCode】1448.统计二叉树中好节点的数目

题目 给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。 「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。 示例 1: 输入:root [3,1,4,3,null,1,5] 输出:4 …

java开发之fastjson

依赖 <!-- fastjson依赖 --> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> <…

php_webshell免杀--从0改造你的AntSword

0x00 前言&#xff1a; 为什么会有改造蚁剑的想法&#xff0c;之前看到有做冰蝎的流量加密&#xff0c;来看到绕过waf&#xff0c;改造一些弱特征&#xff0c;通过流量转换&#xff0c;跳过密钥交互。 但是&#xff0c;冰蝎需要反编译去改造源码&#xff0c;再进行修复bug&am…

CSS3盒模型+flex

1.盒模型 标准盒模型: wwidthpaddingborderhheightpaddingborder 怪异盒模型(ie盒模型) wwidth包含了(paddingborder)hheight包含了(paddingborder) 2.CSS3弹性盒(重点新版弹性盒) 弹性盒: 设置为弹性盒后,父元素为容器,子元素为项目弹性盒中存在两根轴,默认水平为主轴,垂…

.netcore grpc截止时间和取消详解

一、截止时间概述 截止时间功能让 gRPC 客户端可以指定等待调用完成的时间。 超过截止时间时&#xff0c;将取消调用。 设定一个截止时间非常重要&#xff0c;因为它将提供调用可运行的最长时间。它能阻止异常运行的服务持续运行并耗尽服务器资源。截止时间对于构建可靠应用非…

Qt跨平台无边框窗口探索记录

一、前言 实现的效果为&#xff1a;通过黑色矩形框预操作&#xff0c;鼠标释放时更新窗口。效果图如下&#xff1a; 1.功能 1.1 已实现功能 8个方向的缩放标题栏拖动标题栏双击最大化/正常窗口窗口最小尺寸预操作框颜色与背景色互补多屏幕默认标题栏 1.2 待开发功能 拖动到…

张驰咨询:六西格玛培训哪家好?2024年最新推荐榜单来了!

随着2024年的到来&#xff0c;越来越多的企业和个人开始关注六西格玛&#xff08;6σ&#xff09;管理&#xff0c;以提高工作效率和质量。那么&#xff0c;在众多提供六西格玛培训的机构中&#xff0c;哪家好呢&#xff1f;张驰咨询将为您详细解析。 一、六西格玛培训背景 六…

vue项目引入svg组件全过程

文件格式 svg下方对应 .svg index.vue svg-icon 组件 <template><svg:viewBox"viewBox"xmlns"http://www.w3.org/2000/svg"xmlns:xlink"http://www.w3.org/1999/xlink"ref"svg"class"svg-icon":class"class…

Java 小白也能学会OOM内存溢出问题 排查分析

前言 最近在学习群里面&#xff0c;有聊到近几天排查生产问题上面的OOM事故。 有兄弟私聊问到怎么看。 其实非常简单&#xff0c;但是我想了下是不是有很多人没接触过&#xff1f;或者是望而生畏&#xff1f; 那么&#xff0c;就来做个简单的小教程示例吧。 正文 简单写个Us…

深层次分析字符数组和字符串的区别是什么?

前言 &#xff08;1&#xff09;休闲时刻刷B站&#xff0c;看到一个卖课的&#xff0c;发视频问&#xff0c;char arr1[]{‘H’,‘E’,‘L’,‘L’,‘O’};和char arr2[]“HELLO”;区别是什么。 &#xff08;2&#xff09;看那个卖课博主一顿分析&#xff0c;最后成功得出&…

2.linux字符设备

目录 设计字符设备 文件系统调用系统IO的内核处理过程 硬件层原理 驱动层原理 文件系统层原理 设备号的组成与哈希表 Hash Table&#xff08;哈希表、散列表&#xff0c;数组和链表的混合使用&#xff09; 设备号管理 关键的数据结构&#xff1a;char_device_struct&a…

每日一题:leetcode 1448 统计二叉树中好节点的数目

给你一棵根为 root 的二叉树&#xff0c;请你返回二叉树中好节点的数目。 「好节点」X 定义为&#xff1a;从根到该节点 X 所经过的节点中&#xff0c;没有任何节点的值大于 X 的值。 示例 1&#xff1a; 输入&#xff1a;root [3,1,4,3,null,1,5] 输出&#xff1a;4 解释&a…

kafak消费数据,webSocket实时推送数据到前端

1.导入webSocket依赖 <!--websocket依赖包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency> 2.编写webSocket类 package com.skyable.device.co…

远程连接虚拟机中ubuntu报错:Network error:Connection refused

ping检测一下虚拟机 可以ping通&#xff0c;说明主机是没问题 #检查ssh是否安装&#xff1a; ps -e |grep ssh发现ssh没有安装 #安装openssh-server sudo apt-get install openssh-server#启动ssh service ssh startps -e |grep ssh检查一下防火墙 #防火墙状态查看 sudo ufw…