写在前面
嗯…在后后面项目经验中,这是一份已经落后的文档了。
因为如果在一开始就持有保持统一的思想跟良好的设计原则,这些问题并不会出现。但也是一份经验教训吧。
样式标准(参考)
统一标准:
字体全部设为微软雅黑,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