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

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

我想要这样的东西:

我试过了

QComboBox QAbstractItemView::item {
    margin: 3px;
}

但它不起作用。

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

【问题讨论】:

    标签: qt qt5 qtgui qtstylesheets qabstractitemview


    【解决方案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());
    

    也可以

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      • 2016-01-15
      • 2023-03-20
      • 2016-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多