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

标签 c++ qt

在基于 Qt (5.2) 构建的应用程序中,我使用 QComboBoxes 来显示用户可以从中选择的一些值。

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

默认情况下,它们似乎有一些奇怪的截断或左侧所选文本与右侧“向下”箭头之间所需的“空白”。当我使用最大宽度缩小 QComboBox 的大小时,所选文本将被截断(即使有足够的空间来显示全文)。它看起来像这样:

enter image description here

所选文本 (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/

相关文章:

c++ - 如何在 Qt Creator 项目向导中添加自定义构建步骤?

c++ - 将值 append 到嵌套的 QList

c++ - 在不丢失数据的情况下将子类对象存储在同一个容器中?

c++ - 如何设置QPlainTextEdit的水平溢出?

c++ - Qt camera 例子没有找到笔记本电脑的网络摄像头

c++ - WinAPI 中的 Windows 10 用户界面

c++ - 将信号连接到 Qt 中的插槽时出现问题

c++ - QScrollBar QPlaintextEdit setValue不起作用

c++ - 从二进制文件按位对齐的读写

c++ - 灰度中的 glDrawPixels?