QComboBox下拉列表样式

QComboBox下拉列表样式

效果图

在这里插入图片描述

qss样式

QComboBox {background: #31355B; border:0;color: #FFFFFF;} 
/*下拉框样式。selection-color 选中字体颜色;selection-background-color选中背景色;
outline:0px 去掉虚线框;margin-top 下拉列表与编辑框外边距*/
QComboBox QAbstractItemView{background:#4E5387;color:#FFFFFF;border:0;outline: 0px; selection-color:#FFC400;selection-background-color:#4E5387;margin-top:5px;} 
/*下拉按钮样式*/
QComboBox::drop-down {width:20px; border:0;} 
/*下拉箭头样式*/
QComboBox::down-arrow { width: 20px; image: url(:/Resources/icom_drop_down.svg);}

代码添加

设置下拉列表与编辑框外边距还需将QAbstractItemView的父窗口设置成透明的

comboBox->view()->window()->setAttribute(Qt::WA_TranslucentBackground);

去掉下拉框阴影

comboBox->view()->window()->setWindowFlags(Qt::Popup | Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以通过设置QComboBox样式表来隐藏下拉箭头。具体方法如下: 1. 打开Qt Designer,选中需要隐藏下拉箭头的QComboBox控件。 2. 在属性编辑器中找到“styleSheet”属性,点击右侧的编辑按钮。 3. 在弹出的样式表编辑器中,输入以下代码: QComboBox::drop-down { width: px; } 4. 点击“确定”保存样式表,然后重新运行程序即可看到QComboBox的下拉箭头已经被隐藏了。 注意:这种方法只是隐藏了下拉箭头,但是QComboBox仍然可以正常使用。如果需要完全禁用QComboBox的下拉功能,可以通过设置setEnabled(false)来实现。 ### 回答2: Qt中的QComboBox下拉框控件默认显示一个下拉箭头,但是有时候我们想要隐藏这个箭头,此时可以通过设置QComboBox样式表来实现。 首先,在QComboBox对象的样式表中,使用“QComboBox::drop-down”选择器来选择下拉箭头,然后将其visibility属性设置为hidden,即可隐藏下拉箭头。 下面是一个简单的示例代码: ```cpp QComboBox *comboBox = new QComboBox(this); comboBox->setStyleSheet("QComboBox::drop-down{width: 0px;}"); ``` 上面的代码将下拉箭头的宽度设置为0,从而实现了隐藏下拉箭头的效果。如果需要将箭头换成其它的图标,也可以通过设置background-image属性来实现。 需要注意的是,样式表对QComboBox下拉框内部的QAbstractItemView(即选项列表)也生效,因此需要将“QComboBox::drop-down”选择器限制在QComboBox对象内部,避免影响到选项列表。可以使用“QComboBox#comboBoxName::drop-down”选择器来实现。 ```cpp QComboBox#comboBoxName::drop-down{width: 0px;} ``` 最后需要提醒的是,样式表虽然提供了很大的灵活性,但是对性能会有一定的影响,并且使用不当也可能导致一些副作用。因此,在使用样式表时,需要谨慎考虑是否真的需要使用,并且合理使用样式表。 ### 回答3: Qt提供了各种控件供我们使用,其中一个非常常用的控件就是QComboBox。但是有些时候,我们希望隐藏QComboBox中的下拉箭头,这样就可以自定义下拉按钮,让这个控件更加与自身风格相符。 我们可以通过一些简单的代码来实现这个目的。在设置QComboBox样式之前,我们应该首先确定我们要隐藏哪个箭头。通常情况下,我们希望隐藏下拉箭头,所以我们可以将其ID设置QComboBox::down-arrow。 接下来,我们就可以使用QSS(Qt Style Sheet)来设置QComboBox样式。具体的实现方法如下: ``` QComboBox QAbstractItemView { border: 1px solid gray; selection-background-color: lightgray; } QComboBox::drop-down { border-width: 0px; subcontrol-origin: padding; subcontrol-position: top right; width: 15px; height: 15px; } QComboBox::down-arrow { image: none; } ``` 以上QSS代码中,第一个块是设置下拉列表选项框的样式,第二个块是设置下拉按钮样式,第三个块就是隐藏了下拉箭头。 具体地讲,我们将下拉列表选项框的边框设置为1px的灰色实线,选择项的背景颜色设置为浅灰色。对于QComboBox的下拉按钮,我们将其边框宽度设置为0,将其相对于QComboBox的边框以及左侧内边距(padding)的位置设置为右上角,将下拉按钮的宽度和高度设置为15px。最后,通过将QComboBox::down-arrow的背景图像属性设置为none,来隐藏下拉箭头。 当然,在实现时,我们可以根据自己的需要,更改上述代码中的属性值,以样式来满足自己的要求。 总之,通过这种方法,我们就可以很轻松地隐藏QComboBox的下拉箭头,而不影响该控件的其他样式和功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值