减少QComboBox使用的空间/避免文本截断

时间:2014-09-11 13:56:41

标签: c++ qt

在Qt(5.2)的应用程序构建中,我使用QComboBox es来显示用户可以选择的某些值。

控件已存在于.ui文件中,但为空。在我的应用程序中,我以编程方式向它们添加了一些值。由于我想在一行中显示多个QComboBox元素,因此它们不应占用太多空间,因此我设置了它们的最大宽度。

默认情况下,它们似乎有一些奇怪的截断或必要的空白空间"在左边的选定文本和" down"之间右边的箭头。当我以最大宽度缩小QComboBox的大小时,所选文本将被截断(即使有足够的空间来显示全文)。它看起来像这样:

enter image description here

在打开下拉列表之前已经选择了所选文本(100),因此顶部的文本应该为100,但由于这种奇怪的截断效应,它只会读取" 10" (我多次验证实际选择的字符串是" 100" - 它只是以某种方式被截断的显示。)

这个截断/空白空间来自哪里?我能否以某种方式阻止它发生 - 或者删除这个空白区域?我检查了所有的QComboBox属性,但是找不到任何可以应用的东西,并且还试图在网上搜索这个,但显然我的搜索条件错了,因为我还没有发现任何人有这个问题...

1 个答案:

答案 0 :(得分:3)

我认为你遇到了Qt的默认尺寸问题。我有一些不同的小部件。 Qt应用了相当宽松的默认填充。有一种方式来解决这个风格。 (IE,让它变得更紧)。要完全删除QComboBox的内部填充,您可以执行以下操作:

// given a QComboBox *myComboBox;
myComboBox->setStyleSheet("padding: 0");