Qt-统一样式爬的坑(参考统一样式的思路)

写在前面

嗯…在后后面项目经验中,这是一份已经落后的文档了。
因为如果在一开始就持有保持统一的思想跟良好的设计原则,这些问题并不会出现。但也是一份经验教训吧。

样式标准(参考)

统一标准:
字体全部设为微软雅黑,11号
按钮统一大小93,28.
对话框统一:
标题栏需添加自定义标题栏(自定义标题栏的接口会给出,可能如MAP_GUI_MainWindowTitleBar或MAP_GUI_CustomTitleBar)(参加下图例子)设置icon和标题,同时要设置无边框;
对话框要设置边界,样式同下图,把界面里定义的Frame添加到QSS(TotalQSS.qss)中,同时界面都添加该QSS文件着色。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
用一个例子详细说明:
如我们需要一个对话框Dialog(绝大多数我们只需要QMainWindow和Qdialog),那这个ui文件的组织形式应如下同:
在这里插入图片描述
第一级是新建的QDialog: SE_NZ_Dialog
第二级是一个Qframe用来装要使用的控件,目的是统一最后的界面样式。
第三级包括一个Layout布局和一个TitleBarWidget(这个即上面说的自定义标题栏,先拖一个Widget到顶部,然后提升为自定义标题栏的类即可)。
所有界面设计放到Layout布局中即可。

成品图:
在这里插入图片描述
其中各部分的布局的样式如下:
SE_NZ_Dialog的布局:
在这里插入图片描述
QFrame的布局:
在这里插入图片描述
自己的Layout的布局:
在这里插入图片描述

此外大部分界面通用的底部按钮:
在这里插入图片描述
由于标题栏都是统一的自定义风格,所以还要针对这个进行一些设置(自定义标题栏这里就不展示了)
说完ui文件的操作流程,说说cpp里面的通用操作:
在这里插入图片描述
ui->m_titleBar三个函数见自定义标题栏的接口,主要是调整样式跟设置icon,text。
然后还要额外设置FrameLess(这样才能使用自定义标题栏)。
由于设置了FrameLess的界面是不能伸缩大小的了,所以如有这个需求可在ui里面勾选一个属性:
在这里插入图片描述
所有需要用的样式设计(如颜色,大小调整,背景等),都通过同一个(或者同一类)qss文件进行调整,然后加载设置。QSS会给与一份较为完整的,需要调整什么控件在里面找即可,语法同CSS。
通用,必须的添加则有:
在这里插入图片描述
如上面例子,添加的控件即m_normalFrame, 第二级的Qframe。

最后,除了标准通用的模板,要做出一个好看的界面还是需要耐心一遍遍的调整:)
希望有了这个通用的框架,能帮助更好的开发出非常好看的界面_.

下面是附赠的一份QSS 汇总(CSDN的资源附带是枕芯坑…(审核通过了,附带传送门,免费的))

/**********按钮**********/
QPushButton{
   
   
        border-radius: 4px;
        border: none;
        height: 30px;
}
QPushButton:enabled {
   
   
        background: rgb(0, 86, 135);
        color: white;
}
QPushButton:!enabled {
   
   
        background: rgb(120, 120, 120);
        color: rgb(200, 200, 200);
}

QPushButton:enabled:hover{
   
   
        background: rgb(76, 141, 174);
}

QPushButton:enabled:pressed{
   
   
        background: rgb(0, 51, 113);
}

QPushButton#m_MainWindowPropertyShowPtn,  
QPushButton#m_MainWindowSelectionShowPtn, 
QPushButton#m_MainWindowStructureShowPtn,
QPushButton#m_MainWindowCalculateShowPtn,
QPushButton#m_MainWindowDesignShowPtn,
QPushButton#m_MainWindowTopCalculateShowPtn,
QPushButton#m_MainWindowResultShowPtn,
QPushButton#m_MainWindowChartShowPtn,
QPushButton#m_MainWindowGeometryPropertyShowPtn,
QPushButton#m_MainWindowPropertyHelpPtn,  
QPushButton#m_MainWindowSelectionHelpPtn, 
QPushButton#m_MainWindowStructureHelpPtn,
QPushButton#m_MainWindowCalculateHelpPtn,
QPushButton#m_MainWindowDesignHelpPtn,
QPushButton#m_MainWindowTopCalculateHelpPtn,
QPushButton#m_MainWindowResultHelpPtn,
QPushButton#m_MainWindowChartHelpPtn,
QPushButton#m_MainWindowGeometryPropertyHelpPtn,
QPushButton#m_MainWindowPropertySettingPtn,  
QPushButton#m_MainWindowSelectionSettingPtn, 
QPushButton#m_MainWindowStructureSettingPtn,
QPushButton#m_MainWindowCalculateSettingPtn,
QPushButton#m_MainWindowDesignSettingPtn,
QPushButton#m_MainWindowTopCalculateSettingPtn,
QPushButton#m_MainWindowResultSettingPtn,
QPushButton#m_MainWindowChartSettingPtn,
QPushButton#m_MainWindowGeometryPropertySettingPtn,
QPushButton#m_SubWindowPropertyHelpPtn,
QPushButton#m_SubWindowSelectionHelpPtn,
QPushButton#m_SubWindowStructureHelpPtn,
QPushButton#m_SubWindowWeightHelpPtn,
QPushButton#m_weightRecommendPtn,
QPushButton#m_CalculateBottomNodeHelpPtn,
QPushButton#m_CalculateTopCalculateHelpPtn,
QPushButton#m_CalculateResultHelpPtn,
QPushButton#m_SubWindowGeometryHelpPtn,
QPushButton#m_synthesizeRecommendPtn,
QPushButton#m_CalculateHighValueHelpPtn,
QPushButton#m_SubWindowPropertyShowPtn,
QPushButton#m_SubWindowSelectionShowPtn,
QPushButton#m_SubWindowStructureShowPtn,
QPushButton#m_SubWindowWeightShowPtn,
QPushButton#m_CalculateBottomNodeShowPtn,
QPushButton#m_CalculateTopCalculateShowPtn,
QPushButton#m_CalculateResultShowPtn,
QPushButton#m_SubWindowGeometryShowPtn,
QPushButton#m_CalculateHighValueShowPtn,
QPushButton#m_CalculateTopStandardValuePtn,
QPushButton#m_CalculateTopLevelValuePtn,
QPushButton#m_CalculateBottomValuePtn,
QPushButton#m_CalculateBottomNodeNamePtn,
QPushButton#m_CalculateTopADCShowPtn,
QPushButton#m_CalculateVagueShowPtn,
QPushButton#m_CalculateSEAShowPtn,
QPushButton#m_CalculateTopADCValuePtn,
QPushButton#m_CalculateVagueValuePtn,
QPushButton#m_CalculateVagueHelpPtn,
QPushButton#m_CalculateSEAHelpPtn,
QPushButton#m_CalculateTopStandardShowLevelsPtn,
QPushButton#m_CalculateTopShowLevelsPtn,
QPushButton#m_CalculateTopsisSortPtn,
QPushButton#m_CalculateTopADCHelpPtn,
QPushButton#m_ModelInputShowBtn,
QPushButton#m_LearningShowBtn,
QPushButton#m_ParameterBtn,
QPushButton#m_ModelOutputShowBtn,
QPushButton#m_TestChoiceShowBtn,
QPushButton#m_VARecommendPtn,
QPushButton#m_ModelSaveShowBtn,
QPushButton#m_SetMatrixDialogAddButton,
QPushButton#m_SetMatrixDialogDeleteButton
QPushButton#pushButton_filePath {
   
   
        min-width: 0px;  
        min-height: 0px;  
        background-color: transparent;
}

QPushButton#m_FilePathBtn {
   
   
        background: rgb(180, 180, 180);
        border-radius: 0px;
        border: 2px;
}
QPushButton#m_FilePathBtn:hover {
   
   
        background: rgb(220, 220, 220);
        border-top: 2px solid rgb(76, 141, 174);
        border-left: 2px solid rgb(76, 141, 174);
        border-right: 2px solid rgb(76, 141, 174);
        border-bottom: 2px 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值