在基于 Qt (5.2) 构建的应用程序中,我使用 QComboBox
es 来显示用户可以从中选择的一些值。
控件已经存在于 .ui 文件中,但是是空的。在我的应用程序中,我以编程方式向它们添加了一些值。因为我想在一行中显示多个 QComboBox 元素,它们不应该占用太多空间,所以我设置了它们的最大宽度。
默认情况下,它们似乎有一些奇怪的截断或左侧所选文本与右侧“向下”箭头之间所需的“空白”。当我使用最大宽度缩小 QComboBox 的大小时,所选文本将被截断(即使有足够的空间来显示全文)。它看起来像这样:
所选文本 (100) 在打开下拉列表之前已经被选中,因此顶部的文本应该显示为 100,但由于这种奇怪的截断效果,它只显示为“10”(我多次验证实际选择的是字符串是“100”——它只是以某种方式被截断的显示)。
这个截断/空白空间从何而来?我可以以某种方式阻止它发生 - 或删除这个空白空间吗?我检查了所有 QComboBox 属性,但找不到任何适用的东西,也尝试在网上搜索这个,但显然我的搜索词有误,因为我还没有发现任何人有这个问题......
最佳答案
我认为您遇到了 Qt 的默认大小问题。我有几个不同的小部件。
Qt 应用了相当慷慨的默认填充。有一种方法可以通过一种风格来解决这个问题。 (IE,让它更紧)。要完全移除 QComboBox
的内部填充,您可以这样做:
// given a QComboBox *myComboBox;
myComboBox->setStyleSheet("padding: 0");
关于c++ - 减少 QComboBox 使用的空间/避免文本截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25789368/