1、Qt控件的盒子模型
2、QSS语法基础
3、如何使用Qt帮助文档
Qt中如何设置QComboBox的下拉列表的样式_敲定生活-CSDN博客_qcombobox下拉框样式
4、QSS学习-subcontrol-origin
QSS学习-subcontrol-origin_柒树-CSDN博客_subcontrol-origin
5、阿里巴巴普惠体下载、安装。安装之后,直接就在Qt设计器中就可以看到
阿里巴巴普惠体免费下载-阿里巴巴普惠体字体最新绿色下载 - 系统家园
1、安装字体,安装过程中就能看到字体的名称
2、字体载到程序中
在项目中加载第三方字体
//加载QSS
void stylesheetQssFile(QApplication&a)
{
QFile qss(":/qss/SpermMorph.qss"); //从资源中加载
if (qss.open(QFile::ReadOnly))
{
qDebug("open success");
QString style = qss.readAll();
a.setStyleSheet(style);
qss.close();
}
}
//加载第三方字体:我的字体放在fonts文件夹
void applicationLoadFonts()
{
QDir fontDir(QCoreApplication::applicationDirPath() + QString("/fonts/"));
QFileInfoList subFileList = fontDir.entryInfoList(QDir::Files | QDir::CaseSensitive);
for (int i = 0; i < subFileList.size(); i++)
{
QString suffix = subFileList[i].suffix();
if (suffix.compare("otf") == 0 || suffix.compare("ttf") == 0)
{
QString filePath = fontDir.absolutePath() + "/" + subFileList[i].fileName();
QFontDatabase::addApplicationFont(filePath);
}
}
}
3、使用阿里字体遇到的问题:
在Qt的设计器中,出现的字体,选择不同的Alibaba PuHuiTi只有一种效果。不知道是怎么回事
使用过程中遇到的坑:
1、设置控件的QSS无效解决思路
1.1、检测控件是否设置了setObjectName,我就是没有设置控件的这个属性,找了好久
1.2、将样式字符串在设计器中看看是否有效果,避免拼写错误。
1.3、查看帮助助手参考第三点,有可能某些样式的生效依赖其他样式的设置。如background-color生效,得设置border。下面会讲到。
1、有时候设置窗口QWidget背景图无效问题
问题描叙:
在设置登录界面的背景的时候,设置背景background-image无效
解决方案:
在窗口下面再嵌套一个窗口,再在嵌入的窗口中设置样式,如下图右边所示。可能是border的缘故也可能是qt的bug暂时不太明白为什么
2、设置窗口背景色,子控件被影响
问题描叙:在窗口上有很多控件,窗口有自己的背景颜色。
当直接接在窗口上使用QSS设置背景色等样式,会影响子控件的背景色。
原因:指定窗口的objectName,这样设置的背景样式就不会影响子控件的背景
解决方案:如第一行,设置窗口的样式的时候,使用筛选器
QWidget#widget
{
background: #F2F3F7;
border-radius: 8px;
border-radius: 8px;
}
QPushButton#ConnectBtn,
QPushButton#DisconnectBtn,
QPushButton#SaveBtn
{
border: 3px solid #63A9F9;
box-shadow: inset 0 -2px 3px 2px #1760BF;
border-radius: 8px;
font-family: 阿里巴巴普惠体 B;
font-size: 18px;
color: #FFFFFF;
border-image: url(:/image_system_setting/Resources/images_new/system_setting/save button_normal.png);
}
QPushButton#ConnectBtn::pressed,
QPushButton#DisconnectBtn::pressed,
QPushButton#SaveBtn::pressed
{
border-image: url(:/image_system_setting/Resources/images_new/system_setting/save button_selected.png);
}
QLabel,
QCheckBox,
QLineEdit
{
font-family: 阿里巴巴普惠体 M;
font-size: 16px;
color: #16214D;
}
QLineEdit
{
border: 1px solid rgba(22,33,77,0.50);
border-radius: 8px;
border-radius: 8px;
}
QComboBox
{
font-family: 阿里巴巴普惠体 M;
font-size: 16px;
color: #16214D;
border: 1px solid rgba(22,33,77,0.50);
border-radius: 8px;
border-radius: 8px;
}
4、设置控件的background-color无效问题
问题描叙:设置