c++小学期大作业攻略(五)基于QSS的样式美化
这回真的是最后一篇了。
前面说过,我们开发过程中暂时不搭理样式问题,等最后再一起处理,那么现在就是最后处理时刻了!看到网上说QSS跟CSS差不多,我还觉得自己可以干回老本行了,结果用起来发现,QSS是要啥啥没有吧???
不管怎么说还是跌跌撞撞地假装完成了美化。最新,估计也是最后版本的exe也上传到了云盘(开启可能有点慢因为是连线上数据库):https://cloud.tsinghua.edu.cn/d/059ef6b1f9a149ce879b/files/?p=/translation.rar
这部分还是得依赖大家自学,核心思想无非就是写个控件名字之类的定位一下控件,然后把它的相关属性丢上去。需要注意一下选择器和盒子模型,其他细节有需要即查就行,毕竟我是不可能在博客里把所有知识点给你列一遍的,以下是一些主要参考教程:
选择器:https://qtdebug.com/qtbook-qss-selector/
盒子模型:https://www.runoob.com/css/css-boxmodel.html
CSS:https://www.w3school.com.cn/css/index.asp
官方属性表:https://doc.qt.io/qt-5/stylesheet-reference.html
官方样例:https://doc.qt.io/qt-5/stylesheet-examples.html
如果你觉得,我可能不想(懒)或者没时间把上面这些东西学起来,你可以选择直接在网上借鉴(bushi)一份已有的QSS模板,然后把颜色、图片、或者其他细节修改一下就行(我博客园的界面就是这么来的)。或者你可以选择我的QSS(反正就当你看到之后了解了这个属性是怎么工作的然后应用到了自己的程序上这种程度吧):
/*设置主体内容*/
QWidget{
font-size : 30px;
font : large "Times New Roman";
background: transparent;
border : none;
color : #D3D3D3;
margin : 0px;
} /*设置主窗口背景图片*/
Translation{
border-image : url("Images/background-2.jpg");
} /*按钮样式*/
QPushButton{
background : rgba(72, 61, 139, 0.7);
color : #FFF5EE;
border: 10px solid #483D8B;
border-radius : 30px;
max-width : 200px;
min-width : 100px;
max-height : 50px;
min-height : 40px;
margin-left : auto;
margin-right : auto;
} /*各类输入框*/
QLineEdit, QTextEdit, QDateEdit, QComboBox{
border: 10px solid #000000;
border-radius : 20px;
min-height : 40px;
background : rgb(0,0,0,0.5);
margin-top : 20px;
selection-background-color : #36480e;
} /*滚动区*/
QScrollArea{
border-radius : 20px;
background : rgb(0,0,0,0.5);
}
QScrollBar{
width : 10px;
color : gray;
}
QScrollBar::sub-line{
background : gray;
} /*标签页*/
QTabWidget::tab-bar {
left:40px;
}
QTabBar::tab{
background : rgb(0,0,0,0.8);
margin-left: 5px;
padding: 5px;
border : 10px solid #000000;
border-top-left-radius : 20px;
border-top-right-radius : 20px;
}
QTabBar::tab:hover{
background : rgb(100,100,100,0.8);
color : black;
}
QTabBar::tab:!selected {
margin-top : 5px;
}
QTabWidget{
background : transparent;
}
QTabWidget::pane{
border : 10px solid black;
border-radius : 40px;
}
QStackedWidget{
background : rgb(0,0,0,0.5);
} /*菜单栏*/
QMenuBar{
background : transparent;
}
QMenuBar::item{
margin-top : 10px;
margin-right : 30px;
border: 10px solid #101010;
background : #101010;
border : 10px solid black;
padding : 10px;
border-radius : 20px;
} /*菜单列表*/
QMenu::item{
background : qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0 #101010, stop:1 #000000);
padding : 15px;
}
QMenu::item:selected{
font-weight : bold;
padding : 15px;
}
QLabelCenter{
font-weight : bold;
} /*弹出对话框*/
QInputDialog, QMessageBox{
border-image : url("Images/background-4.jpg");
} /*下拉选择框,去除三角标记*/
QComboBox::drop-down{
background : transparent;
} /*个别单独控件:主标题、主介绍、对话界面用户名*/
Index > QLabelCenter, TaskList > QLabelCenter, Leaderboard > QLabelCenter, Login > QLabelCenter, Register > QLabelCenter{
font-weight :;
font-family : STCaiyun;
font-size : 80px;
color : white;
}
Index QTextEdit{
font-size : 40px;
text-align : center;
}
MessageView > QWidget > QLabelCenter{
font-size : 50px;
color : #4682B4;
}
结合上面放的exe食用效果更佳。
另外代码上现在有一个无法解决的Bug,就是在聊天界面发送消息会一闪一闪的,大致原因是把滚动条拉到底部之前需要先把已有画面绘制出来才能获取滚动条的最大长度……暂时没能解决回头再说趴,如果有大佬会请务必教教我啊T_T
如果你发现我的程序样式那里崩了请务必务必务必告诉我。
静态编译不想搞了(因为可能没多少时间耗在上边了),如果有大佬完成了静态编译我就坐等攻略了(可爱脸)。
8说了,我去写注释和项目报告了。
c++小学期大作业攻略(五)基于QSS的样式美化的更多相关文章
- c++小学期大作业攻略(一)环境配置
UPDATE at 2019/07/20 20:21 更新了Qt连接mysql的方法,但是是自己仿照连VS的方法摸索出来的,简单测试了一下能work但是不保证后期不会出问题.如果你在尝试过程中出现了任 ...
- c++小学期大作业攻略(二)整体思路+主界面
写在前面:如果我曾经说过要在第一周之内写完大作业,那……肯定是你听错了.不过如果我在写的时候有攻略看的话应该可以轻松地在4~5天内做完,然后觉得写攻略的人是个小天使吧(疯狂暗示).出于给大家自由发挥的 ...
- c++小学期大作业攻略(三)用户系统
Update at 2019/07/22 14:16 发现一个大坑,我们后期是打算用QSS统一堆样式进行美化的,于是我把之前对QLabel进行的setAlignment全部去掉了,打算统一丢进Qss里 ...
- c++小学期大作业攻略(零)建议+代码结构(持续更新)
当前已经做好的exe,数据库是连服务器的,但是头像是存在本地的文件系统里面: https://cloud.tsinghua.edu.cn/d/059ef6b1f9a149ce879b/files/?p ...
- c++小学期大作业攻略(四)任务系统+站内信
虽然比最早的预定晚了整整一个星期但这核心功能最后一篇终于还是来了. 如果你已经经历了用户系统的洗礼,相信代码实现应该已经没有太大的难度,所以我们重点关注一下设计好的流程. 一.任务系统 首先是新建任务 ...
- 内连接、左外连接、右外连接、全外连接、交叉连接(CROSS JOIN)-----小知识解决大数据攻略
早就听说了内连接与外连接,以前视图中使用过.这次自考也学习了,只是简单理解,现在深入探究学习(由于上篇博客的出现)与实践: 概念 关键字: 左右连接 数据表的连接有: 1.内连接(自然连接): 只有两 ...
- mac攻略(五) -- 使用brew配置php7开发环境(mac+php+apache+mysql+redis)
前面介绍过基本的配置,后来我又从网上查找了很多资料,经过不断的摸索,下面做了一个总结,希望能对大家提供些许帮助(Mac版本是sierra) 一.mac系统会自带git,而我们要做的是自己安装git ...
- 小编接地气——第六届中国云计算大会攻略Q&A
2014年5月20-23日,第六届中国云计算大会在北京召开. 花个1000多元,在工作日请假来參加大会,不能让大家白跑一趟而是物有所值. 小编写了大会攻略Q&A,分享给各位 Q:为什么要參加关 ...
- 超时空英雄传说2复仇魔神完全攻略&秘技
╓─╥───────────────────────────────────────────────────╥─╖ ║ ║ 超 時 空 英 雄 傳 說 2 ║ ║ ║ ║ --復 仇 魔 神-- ║ ...
随机推荐
- laravel npm run dev 错误 npm run dev error [npm ERR! code ELIFECYCLE]
出现此问题是node_modules出现错误,需要执行: 1 rm -rf node_modules 2 rm package-lock.json 3 npm cache clear --force ...
- 50本.NTE、C#相关技术书籍免费下载
场景 近期囤积了一大批编程教程和电子书资料.至于视频教程,我一般是看完之后整理成相应的博客进行记录,一般不会再云盘中进行存取,因为很占空间. 至于电子书资料,很多,就是得一点点整理归纳. 近期我的公众 ...
- win10自动休眠解决方法
win10使用外接显示器时,总是过2分钟自动睡眠. 这是系统无人值守时睡眠时间的设定,默认是两分钟. 解决方法: 1.运行注册表管理器,win+r ,输入regedit.exe 2.定位到HKEY_L ...
- 让你的项目使用Ts吧
推荐在这里阅读 9012年都过半了,还不会用ts你就out了 why ? 三大框架angular2以后的版本完全是用ts开发的, vue对ts的支持也越来越好, React也有TSX组件 还在犹豫什么 ...
- python3装饰器
由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数. >>> def now(): ... print('2015-3-25') ... >> ...
- 汇编指令之JMP,CALL,RET(修改EIP的值!!!)
简单介绍了,JMP指令按市面上的意思来说是跳转到指定地址,但我这里不这么说,JMP, CALL, RET三个指令均为修改EIP值的指令,EAX, ECX, EBX, EDX, ESP, EBP, ES ...
- linux 网站目录权限设置
Linux下Apache网站目录读写权限的设置 网站目录文件权限的设置对网站的安全至关重要,下面简单介绍网站目录文件权限的基本设定. 我们假设http服务器运行的用户和用户组是www,网站用户为cen ...
- 其他综合-CentOS 7 搭建模板机
CentOS 7 搭建模板机 [基于此文章的环境]点我快速打开文章 1.修改静态地址 ip a|awk -F '[ /]+' '$NF~/eth0/ {print $3}' cat >/etc/ ...
- APPIUM 常用API介绍(3)
1.send_keys send_keys(self, *value): Simulates typing into the element[在元素中模拟输入(开启appium自带的输入法并配置了ap ...
- linux命令行常用光标移动快捷键(转)
转自:https://www.cnblogs.com/aslongas/p/5899586.html Linux 命令行快捷键 涉及在linux命令行下进行快速移动光标.命令编辑.编辑后执行历史命令. ...