//菜单背景透明
pMenu->setWindowFlags(pMenu->windowFlags() | Qt::FramelessWindowHint);
pMenu->setAttribute(Qt::WA_TranslucentBackground);
//菜单去掉阴影(因为在设置圆角时如果自带阴影还是会变为直角)
pMenu->setWindowFlag(Qt::NoDropShadowWindowHint);
//菜单QSS
QString menuQss = "QMenu{color:rgb(255, 255, 255);background:rgba(255,255,255,16);border:none;font:16px \"SimHei\";"
"border-radius: 10px;"
"border-image: url(:/png/86.png);"
"padding-top:10px;}";//菜单背景为圆角图片
menuQss.append("QMenu::item{color:rgb(123,123,123);background:rgba(0, 0, 0,0);height:26px;padding-left:10px;padding-right:10px;"
"border-image: url(:/png/86.png);} ");//因为背景透明,所以需要加一个背景才能显示后面的悬浮图片
menuQss.append("QMenu::Item:selected{color:rgb(255, 255, 255);border-image: url(:/png/85.png);}");//鼠标悬浮
pMenu->setStyleSheet(menuQss);
2、QComboBox
ui->comboBox_language->setView(new QListView());//必须有这句,后面设置itme才有效
ui->comboBox_language->setFont(font);//设置字体
//去掉下拉框阴影
ui->comboBox_language->view()->window()->setWindowFlags(Qt::Popup | Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint);
ui->comboBox_language->view()->window()->setAttribute(Qt::WA_TranslucentBackground);
border: 1px solid gray; /* 边框 */
border-radius:2px; /* 圆角 */
padding: 0px 0px 0px 10px; /* 上内边距、右内边距、下内边距、左内边距 */
color: rgba(51,51,51,1);
/*font: normal normal 15px "Microsoft YaHei";*/
background: transparent;
text-align: AlignHCenter;
color:rgb(123,123,123);/*字体颜色*/
background-color: transparent;
border-image: url(:/png/60.png);/*背景图片,圆角*/
/* 下拉后,整个下拉窗体样式 */
QComboBox QAbstractItemView {
outline: 0px solid gray; /* 选定项的虚框 */
border-radius:10px; /* 圆角 */
padding-top:10px; /*上下都留10px,是因为选中项是矩形,如果不留,移动到第一项和最后一项会变为直角,不好看*/
padding-bottom:10px;
color:rgb(123,123,123);
border-image: url(:/png/84.png);/*下拉框背景,圆角图片*/
/* 下拉后,整个下拉窗体每项的样式 */
QComboBox QAbstractItemView::item {
min-height: 26px;/*每项高度*/
/* 下拉后,整个下拉窗体越过每项的样式 */
QComboBox QAbstractItemView::item:hover {
color:rgb(255,255,255);
/* 下拉后,整个下拉窗体被选择的每项的样式 */
QComboBox QAbstractItemView::item:selected {
color:rgb(255,255,255);
border-image: url(:/png/85.png);/*鼠标悬浮时背景图片*/
qApp->setEffectEnabled(Qt::UI_AnimateCombo, false);//去掉弹窗动画
PS:还有一点小问题,就是在弹出时(没有完全弹出时)下拉框会带直角,我的解决办法是直接去掉弹窗动画,就可以了
1、QPushButtonQMenu *pMenu = new QMenu(this); QAction *action1[2]; QString add[2] = {"Firmware Updates","Software Updates"}; for(int i = 0; i < 2; i++) { action1[i] = pMenu->addAction(add[i]); action1[i]->setCh
在使用Qt开发界面程序时,常用控件的美化是一件繁琐的事情,收藏一些基本控件的美化样式,可以在项目开发时节省大量时间,本篇文章由此而出,收集常用的控件美化样式。
一.编辑框
二.下拉框
border-color: rgb(22,63,23);
background-color: rgb(5, 35, 55);
selection-background-color:#484848;
selection-color:#DCDCDC;
QComboBox::down-arrow{
image: u..