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.hqwc.cn/news/86491.html

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

相关文章

无涯教程-分类算法 - Python实现函数

为了在Python中实现SVM,无涯教程将从标准库导入开始,如下所示- import numpy as np import matplotlib.pyplot as plt from scipy import stats import seaborn as sns; sns.set() 接下来,从sklearn.dataset.sample_generator创建具有线性可…

微信小程序 基于Android的美容理发师预约管理系统

,本系统主要根据管理员、用户及理发师的实际需要,方便用户利用互联网实现对商品信息进行立即订购,同时让管理者可以通过这个系统对用户实际需求以及各信息进行管理。设计该系统主要目的是为了方便用户、理发师可以有一个非常好的平台体验&…

SpringBoot与前端交互遇到的一些问题

一、XXX.jar中没有主清单属性 场景: SpringBoot打的jar包在Linux运行报错 解决方案: 百度找了很多都是一样的答案,但是解决不了我的问题,于是我新建了一个springboot项目发现打的jar包可以在Linux上运行。检查了下只要把下面这2个…

2.神经网络的实现

创建神经网络类 import numpy # scipy.special包含S函数expit(x) import scipy.special # 打包模块 import pickle# 激活函数 def activation_func(x):return scipy.special.expit(x)# 用于创建、 训练和查询3层神经网络 class neuralNetwork:# 初始化神经网络def __init__(se…

vue实现富文本

效果图展示 一、安装依赖 npm install vue-quill-editor --save二、具体使用 html <template><!-- 富文本 --><quill-editorref"myQuillEditor"v-model"content":options"editorOption"blur"onEditorBlur($event)"…

MES管理系统如何让传统汽车行业从“制造”走向“智造”

在传统制造业中&#xff0c;“数字化转型”是一个老生常谈的话题&#xff0c;然而&#xff0c;许多传统制造业仍处于“信息化”的阶段&#xff0c;距离真正的数字化还有很长的路要走。如果要在所有传统制造行业中寻找那些可以成为转型“先行者”的领域&#xff0c;那么深度与广…

5G NR:PRACH频域资源

PRACH在频域位置由IE RACH-ConfigGeneric中参数msg1-FrequencyStart和msg1-FDM所指示&#xff0c;其中&#xff0c; msg1-FrequencyStart确定PRACH occasion 0的RB其实位置相对于上行公共BWP的频域其实位置(即BWP 0)的偏移&#xff0c;即确定PRACH的频域起始位置msg1-FDM的取值…

Java注解与反射

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Java注解与反射 Java注解和反射是Java语言中两个强大的特性&#xff0c;它们可以一起使用以实现动态的、灵活的编程和元数据处理 注解 Java注解&#xff08;Annotatio…

【力扣周赛】第 111 场双周赛(状态机数位DP)⭐

文章目录 比赛链接Q1&#xff1a;6954. 统计和小于目标的下标对数目解法1—— O ( n 2 ) O(n^2) O(n2)暴力解法2——排序双指针 O ( n log ⁡ n ) O(n\log{n}) O(nlogn) Q2&#xff1a;8014. 循环增长使字符串子序列等于另一个字符串双指针相似题目——392. 判断子序列 Q3&…

Linux下jenkins全量迁移到新服务器

文章目录 1、目的2、迁移1&#xff09;查看jenkins的主目录2&#xff09;登录要迁出的服务器打包3&#xff09;找到对应的war包4&#xff09;登录对应迁入服务&#xff0c;上传war包和打包的jenkins数据等5&#xff09;在新的服务器解压迁入的数据等&#xff0c;并查看端口是否…

AUTOSAR系列专题--诊断模块(下)

往期小怿向各位小伙伴介绍了&#xff0c;文章内容过多分为了两期&#xff0c;本期为大家介绍《AUTOSAR模块之诊断篇&#xff08;下&#xff09;》。 目录 1.概述 2.DCM 3.DEM 4.FIM 5.结语 点击查看前文&#xff1a;AUTOSAR系列专题--诊断模块&#xff08;上&#xff09;…

【Java 中级】一文精通 Spring MVC - 数据格式化器(六)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…