【发布时间】:2012-03-06 06:08:28
【问题描述】:
我正在尝试使用这个 CSS Qt 样式表走出组合框框架:
QComboBox#tab_combo {
margin: 0 26px 0 0; /* make room for the arrow */
padding: 2px 1px 2px 1px;
min-width: 19px;
min-height: 14px;
max-height: 14px;
width: 40px;
height: 14px;
//...strip
}
QComboBox#tab_combo::drop-down {
subcontrol-origin: margin;
subcontrol-position: center right;
width: 19px;
min-width: 19px;
max-width: 19px;
height: 14px;
min-height: 14px;
padding: 0;
margin: 0;
border: 1 solid #515151;
}
QComboBox#tab_combo::down-arrow {
image: url(:/combo_arrow.png);
min-width: 19px;
max-width: 19px;
width: 19px;
min-height: 14px;
max-height: 14px;
height: 14px;
}
除了 padding 以外都成功了,你可以在图片上看到(图 3)。
qcombobox padding http://www.turist.lv/tmp/combo-box-trouble.png
有什么建议吗?
谢谢
附言 如何重现: http://pastebin.com/4ZiYRUmB
编辑: 如何解决: 需要使用此代码更改 QComboBox CSS:
padding: 2 -19px 2 1;
width: 59px;
【问题讨论】:
-
我可以看看你的 QComboBox#tab_combo 部分吗?您是否重置了 QComboBox 本身的填充?
-
糟糕,我忘记添加了,但现在可以了。
-
野拍,但尝试将右边距设置为负值。我记得有时我必须做这样的事情才能在 QComboBox 上实现一些效果。还要确保不要在其他地方设置 QWidget 或 QComboBox 填充。它可能会从其他 CSS 继承一些值
-
是的,你说得对,我把 padding 改成: padding: 2 -19px 2 1;并将宽度增加到 19px 并且似乎可以正常工作。很奇怪的效果,看起来像QT bug :)
-
Qt 正在混合绘画。当您应用 CSS 时,应用程序的一部分(甚至一个小部件)由底层样式绘制,部分由 QtCss 样式绘制。很有可能,当您更改 QComboBox 或其子控件上的某些属性时,填充 -19 会在某处拍摄您的按钮;)
标签: css qt stylesheet qcombobox