QComboBox下拉项边距

3
我想要为下拉项设置间距来美化我的QComboBox,现在的样子是这样的:

enter image description here

我希望它看起来像这样:

enter image description here

我尝试了使用

(暂缺内容)。
QComboBox QAbstractItemView::item {
    margin: 3px;
}

但它无法工作。

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

2个回答

12

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

    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}");

结果非常相似 enter image description here


这很奇怪,因为我没有得到你得到的东西。我刚刚创建了一个空项目,在里面拖入了一个QComboBox并粘贴了你的代码,但它不起作用。这是我的代码:test.pro(http://pastebin.com/fihj8944),mainwindow.h(http://pastebin.com/qMiazMVd),mainwindow.cpp(http://pastebin.com/FnHdteZU),main.cpp(http://pastebin.com/fsDD1kFr)和mainwindow.ui(http://pastebin.com/NCjMsj43)。我做错了什么? - Jacob Krieg
@JacobKrieg,我仔细查看了你的代码,但是我没有在你的代码中看到ui->comboBox->setView(new QListView());。请在setStyleSheet()之前添加这行代码:首先是ui->comboBox->setView(new QListView()),然后是setStyleSheet()(希望你理解我的意思)。添加了这行代码之后,应该可以正常工作了。 - Jablonski
但是我使用设计师添加了元素。这不应该有效吗? - Jacob Krieg
在我的设计师中,我也添加了它,但是没有这一行,它就无法正常工作。只需添加此行,您将看到它可以正常工作(我确定,因为如果没有这一行,我的应用程序不会添加此空格)。此外,使用此行,在组合框中添加图标时,它可以正常工作。我认为这是一个解决方案,请尝试。 - Jablonski
你说得对,确实有效。非常感谢! :) - Jacob Krieg
@Chernobyl,你真是个天才! - santahopar

2
ui->comboBox->setItemDelegate(new QStyledItemDelegate());

同样适用


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接