【问题标题】:QComboBox drop down button outside combo box frame组合框框架外的 QComboBox 下拉按钮
【发布时间】: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


【解决方案1】:

您应该将 QComboBox 填充更改为负值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多