首页 > 其他分享 >Qt5.9 UI设计(七)——统一样式设计

Qt5.9 UI设计(七)——统一样式设计

时间:2023-04-16 15:56:49浏览次数:46  
标签:none Qt5.9 color image UI background 设计 border 255

前言

前面已经将UI设计部分实现,各页面也做了最简单的设计,本章介绍一下qss样式的使用。样式设计最终的显示效果如下图:

操作步骤

  1. 将stylesheet.qss 样式文件添加进工程
    stylesheet.qss 内容如下:
/********************** MainWindow Style Sheet  *******************/
QMainWindow
{
background-color:#1A1A1A;
color:white;
border:none;
}
QFrame#frameDot
{
border:none;
}

QFrame#frameBackground
{
background-color: #1A1A1A;
border:none;
}

QFrame#frameBorder,#frameBackground
{
background-color:#1F1F1F;
color:white;
border:none;
}

QLabel
{
color: #FFFFFF;
}

/********************** MainTitleBar Style Sheet  *******************/
QPushButton#pushButtonClose
{
border:none;
background:rgba(255, 255, 255, 0);
image: url(:/image/close_normal.png);
}

QPushButton#pushButtonClose:hover
{
border:none;
background:rgba(255, 255, 255, 0);
image: url(:/image/close_hover.png);
}

QPushButton#pushButtonMin
{
border:none;
background:rgba(255, 255, 255, 0);
image: url(:/image/min_normal.png);
}

QPushButton#pushButtonMin:hover
{
border:none;
background:rgba(255, 255, 255, 0);
image: url(:/image/min_hover.png);
}


QPushButton#pushButtonMax
{
border:none;
background:rgba(255, 255, 255, 0);
image: url(:/image/max_normal.png);
}

QPushButton#pushButtonMax:hover
{
border:none;
background:rgba(255, 255, 255, 0);
image: url(:/image/max_hover.png);
}

QPushButton#pushButtonNormal
{
border:none;
background:rgba(255, 255, 255, 0);
image: url(:/image/normal_normal.png);
}

QPushButton#pushButtonNormal:hover
{
border:none;
background:rgba(255, 255, 255, 0);
image: url(:/image/normal_hover.png);
}

QPushButton#pushButtonSave:hover,#pushButtonAdd:hover
{
background-color: rgb(180, 85, 100);
color:white;
}

QPushButton#pushButtonSave,#pushButtonAdd
{
background-color:rgb(84, 115, 135);
color:white;
font-size:12px;
width: 150px;
border-radius:2px;
spacing:2px;
padding: 0px 0px;
}

QScrollBar:vertical
{
background:#1A1A1A;
padding-top:20px;
padding-bottom:20px;
padding-left:3px;
padding-right:3px;
border-left:1px solid #1A1A1A;;
}
QScrollBar::handle:vertical
{
background:#3F3F3F;
border-radius:6px;
min-height:80px;
border-radius:4px;
}
QScrollBar::handle:vertical:hover
{
background:#3F3F3F;
border-radius:4px;
}

QScrollBar::add-page
{
background:#1A1A1A;
}
QScrollBar::sub-page
{
background:#1A1A1A;
}
QScrollBar::add-line:vertical
{
background:url(none) center no-repeat;
}
QScrollBar::sub-line:vertical
{
background:url(none) center no-repeat;
}

/********************** ControlFoldWidget Style Sheet  *******************/
QTreeWidget, QTabWidget > QWidget
{
background:transparent;
color:white;
border:none;
background-color: #1A1A1A;

}

QTreeWidget::item:selected
{
background-color: #123456;
color:white;
}

QTreeWidget::item
{
height:50px;
}

QTreeWidget::item:!selected:hover
{
background:transparent;
}

QTreeWidget::branch:selected
{
background-color: #123456;
}

/********************** ControlTabWidget Style Sheet  *******************/
QTabBar::tab
{
min-width:100px;
color: white;
background-color:#1F1F1F;
border: 0px solid;
padding:6px;
}

QTabBar::tab:!selected
{
margin-top: 5px;
}

QTabBar::tab:selected
{
background-color:#2F2F2F;
color: white;
font-size:14px;
font-weight:bold;
border-bottom: 1px solid;
border-bottom-color:darkred;
}

QTabWidget::pane
{
background-color:transparent;
}
*{
outline:0px;
}

/********************** FrameControl Style Sheet  *******************/
QFrame#frameApplication
{
border:1px solid #BBBBBB;
border-radius:5px;
}
QFrame#frameApplication:hover
{
border:1px solid #FFFFFF;
border-radius:5px;
}

QWidget#scrollAreaWidgetContents
{
background-color: #1A1A1A;
border:none;
}


/********************** TableWidget Style Sheet  *******************/
QLabel#labelTableText
{
font-family: Microsoft YaHei;
font-size: 18px;
color: #FFFFFF;
}

QHeaderView
{
background-color:transparent;
}

QHeaderView::section
{
border: none;
background-color: #2B2B2B;
font-family: Microsoft YaHei;
font-size: 12px;
color: #FFFFFF;
text-align: center;
min-height: 36px;
max-height: 36px;
}

QTableWidget
{
border:0px solid;
border-top-width:1px;
border-top-style:solid;
border-top-color:#5C8290;
background-color:transparent;
alternate-background-color: #2A2A2A;
}

QTableWidget::item
{
font-family: Microsoft YaHei;
font-size: 10px;
min-height: 36px;
max-height: 36px;
}

QTableWidget::item:selected
{
out-line:none;
}
/********************** NoveControl Style Sheet  *******************/
QPushButton#pushButtonCloseControl
{
border:none;
background:rgba(255, 255, 255, 0);
image: url(:/image/other/close.png);
}

/********************** SliderWidget Style Sheet  *******************/
QFrame#frameSlider
{
border:none;
background-color:#1A1A1A;
}

QPushButton#pushButtonLeft
{
border-image: url(:/image/left_arrow_normal.png);
}

QPushButton#pushButtonLeft:hover
{
border-image: url(:/image/left_arrow_hover.png);
}

QPushButton#pushButtonLeft:pressed
{
border-image: url(:/image/left_arrow_pressed.png);
}

QPushButton#pushButtonRight
{
border-image: url(:/image/right_arrow_normal.png);
}

QPushButton#pushButtonRight:hover
{
border-image: url(:/image/right_arrow_hover.png);
}

QPushButton#pushButtonRight:pressed
{
border-image: url(:/image/right_arrow_pressed.png);
}

/********************** SystemTray Style Sheet  *******************/
QMenu
{
background-color: white;
border: 1px solid white;
}
QMenu::item
{
background-color: transparent;
padding:8px 32px;
margin:0px 0px;
border-bottom:1px solid #DBDBDB;
}
QMenu::item:selected
{
background-color: #2dabf9;
}

/********************** ProcessControl Style Sheet  *******************/
QFrame#frameProcess
{
background:transparent;
border:1px solid rgb(255, 220, 220);
border-radius: 4px;
}

/********************** ListControl Style Sheet  *******************/
QFrame#frameLine
{
background: rgba(255, 220, 220, 40);
}

QLabel#labelAppName
{
font-family: Microsoft YaHei;
font-size: 16px;
color: #FFFFFF;
}

QLabel#labelAppText
{
font-family: Microsoft YaHei;
font-size: 12px;
color: #AAAAAA;
}


  1. 为应用程序添加LOGO图标
    this->setWindowIcon(QIcon(GlobalSpace::LOGO_PATH));
  1. 加载统一样式
LOADQSS(GlobalSpace::STYLE_QSS_FILE_PATH);

最终设计效果如下图,到这里简单的UI设计部分已经实现,TreeWidget 里每项具体的内容大家可以自己添加去实现自己的内容。

说明

本系列UI介绍的文章,参考的是GitHub上一个QCoolPage的项目,它地址是:https://github.com/YYC572652645/QCoolPage
作为学习交流使用,将QCoolPage的实现拆解出来,以便入门学者可以比较快速的入手。如有侵权,欢迎联系沟通处理。
本章工程代码:page_sample_05.rar
完整工程下载地址,请到 liwen01 微信公众号中回复: QT 获取

---------------------------End---------------------------
长按识别二维码
关注 liwen01 公众号

标签:none,Qt5.9,color,image,UI,background,设计,border,255
From: https://www.cnblogs.com/liwen01/p/17323361.html

相关文章

  • Qt5.9 UI设计(一)——在win10系统上安装Qt5.9
    安装环境win10系统Qt5.9.0版本官方下载地址可以从官方网站获取:https://www.qt.io/zh-cn/现在的安装包跟以前的有些区别,加上网络比较慢,我这里演示的是Qt5.9.0版本的安装安装步骤直接双击qt-opensource-windows-x86-5.9.0.exe进行安装欢迎界面,直接点下一步登陆Qt账......
  • abp(net core)+easyui+efcore实现仓储管理系统——模块管理升级之上(六十一)
     Abp(netcore)+easyui+efcore实现仓储管理系统目录abp(netcore)+easyui+efcore实现仓储管理系统——ABP总体介绍(一)abp(netcore)+easyui+efcore实现仓储管理系统——解决方案介绍(二)abp(netcore)+easyui+efcore实现仓储管理系统——领域层创建实体(三) abp(netcore)+e......
  • MySQL表设计与优化
    影响MySQL查询性能的因素有很多,我们经常会对查询语句、索引字段做一些优化,而其实在表设计的阶段就可能产生一些问题。对于表设计,可以对表结构进行优化,也可以对表字段进行优化。以下通过一个具体的案例演示一些常用的表设计优化的方法。一、业务需求这里,就以学生-教师-课程业务作......
  • 前端设计,确定按钮正慢慢消失
    不论做什么产品,界面上几乎都少不了「确定」按钮,例如:操作提示时、进行选择时、填写表单数据时……完成、保存、下单……各种代表“确定某一步骤”的按钮,都可以统称为确定按钮。以前的产品设计,大量以来确定按钮,但是现在的产品设计,确定按钮用得越来越少了。倒不是因为不需要确定......
  • [全程建模]一个项目UML设计中的几个问题
    [全程建模]一个项目UML设计中的几个问题广州Sh**nGG(41****586) 2012/11/15 11:04:25各位前辈 针对昨天的那个问题 我做了一些用例图如下广州Sh**nGG(41****586) 2012/11/15 11:05:29针对以上的用例图 做出下面的类图广州Sh**nGG(41****586) 2012/11/15 11:06:52请......
  • 电饭煲主图设计
    #第一步,用快速选择工具进行抠图;利用选择并遮住功能,把图扣的柔和一些    #第二步,实景的背景怎么弄?找地板素材,尽量找一个透视接近的,调精细一点就要用到自由变换选区的斜切慢慢调整;电饭煲偏黄色,那么也找个偏黄色的地板  #第三步,找一个厨房背景素材,颜色也......
  • 基于DSP+FPGA+AD9238的冲击波超压测试系统设计与实现
    对冲击波关键特征参数进行可靠、精确地评估是进行军事行动规划的前提和依据,测试结果可以为战斗部设计提供参考,也可以为武器弹体材料的研发制造提供有效依据。近年来,随着集成电子技术与软件系统取得突破性成果,冲击波测试技术获得了稳定的发展。2.2测试系统的总体框架......
  • 基于DSP+FPGA的机载雷达伺服控制系统的硬件设计与开发(一)总体设计
    2.1功能要求及性能指标2.1.1功能要求(1)具备方位和俯仰两轴运动的能力;(2)方位轴可实现预置、周扫和扇扫功能;(3)俯仰轴可实现预置功能。2.1.2性能指标(1)运动范围:方位转动范围为,俯仰转动范围为;(2)角速度:方位最大角速度为100º/s,俯仰最大角速度为40º/s......
  • 领域驱动设计-软件核心复杂性应对之道:第二章
    第二章语言的交流和使用2.1模式​ 由于语言上存在鸿沟,领域专家们只能模糊地描述他们想要的东西。开发人员虽然努力去理解一个自己不熟悉的领域,但也只能形成模糊的认识。有少数的团队成员会学着同时说这两种语言,但由于这样的人太少了,信息流会遭遇瓶颈问题,而且他们的翻译也不准......
  • uni-app:input的样式调整(hbuilderx 3.7.3)
    一,js代码:<template><view><inputclass="inputText"style="width:700rpx;height:76rpx;"v-model="mobile"placeholder="请输入手机号"></input>&l......