QComboBox 下拉项边距

Posted

技术标签:

【中文标题】QComboBox 下拉项边距【英文标题】:QComboBox drop-down item margin 【发布时间】:2014-10-10 00:56:35 【问题描述】:

我想为我的QComboBox 设置下拉项目的边距。这就是现在的样子:

我想要这样的东西:

我试过了

QComboBox QAbstractItemView::item 
    margin: 3px;

但它不起作用。

你能帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

您想在项目之间设置一些空间。我尝试了不同的样式表,但我无法获得结果。但我找到了这个解决方案。也许有帮助。

    ui->comboBox->setView(new QListView());
ui->comboBox->setStyleSheet("QComboBox QAbstractItemView::item  min-height: 35px; min-width: 50px; QListView::item:selected  color: black; background-color: lightgray");

结果非常相似

【讨论】:

这很奇怪,因为我没有得到你得到的东西。我刚刚创建了一个空项目,在里面拖了一个 QComboBox 并粘贴了您的代码,但它不起作用。这就是我所拥有的:test.pro(pastebin.com/fihj8944)、mainwindow.h(pastebin.com/qMiazMVd)、mainwindow.cpp(pastebin.com/FnHdteZU)、main.cpp(pastebin.com/fsDD1kFr) 和 mainwindow.ui(pastebin.com/NCjMsj43) .我做错了什么? @JacobKrieg ,我仔细看了你的代码,但我没有在你的代码中看到 ui->comboBox->setView(new QListView());在 setStyleSheet() 之前添加这一行。首先 ui->comboBox->setView(new QListView());之后 - setStyleSheet() (我希望你能理解我)。添加此行后,它应该可以工作。 但是我使用设计器添加了元素。这不应该工作吗? 在我的设计师中我也添加了它,但没有这条线它不起作用。只需添加此行,您就会看到它可以正常工作(我敢肯定,因为没有此行,我的应用程序不想添加此空间)此外,有了此行,当我在组合框中添加图标时它可以正常工作。我认为,这是一个解决方案,试试这个 你说得对,确实有效。非常感谢! :)【参考方案2】:
ui->comboBox->setItemDelegate(new QStyledItemDelegate());

也可以

【讨论】:

以上是关于QComboBox 下拉项边距的主要内容,如果未能解决你的问题,请参考以下文章

Qt样式表(QComboBox下拉框)

PyQt5 组件之QComboBox

QT怎么设置QComboBox弹出下拉框的高度

Python Qt GUI设计:QComboBox下拉列表框类(基础篇—14)

Python Qt GUI设计:QComboBox下拉列表框类(基础篇—14)

在QT中怎么隐藏QComboBox的下拉列表并当单击QComboBox的编辑框时,就弹出QListWidget窗口