在QComboBox中设置listView项的几何

时间:2017-07-18 09:21:53

标签: css macos qt

我遇到了这个问题,我有两个QComboBox。一个是可编辑的。另一个是不可编辑的。

我想为它们设置相同的样式表。优选地,与可编辑的一样。如何设置位置使项目位于箭头下方。

CSS只是一种方法。实际上它是默认的可编辑和不可编辑的QComboBox的内部属性。显然,可编辑框中的第一行是用于添加新项目(QLineEdit),我们在不可编辑的(当然!)中没有改变视图。我有这种方法,如果,不知何故,我发现内部QComboBox构造函数和Qt用于其默认QComboBox的属性,我可以自定义它。如果我能找到相同的

,请帮助我

使用的样式表如下:

ui->editable->setStyleSheet("QComboBox:editable{height : 30px; background-color:white; color:black; border-radius: 2px;padding-left:1px; }QListView{background-color:white; selection-background-color:#3C8C3F; height : 30px;padding-bottom:7px;padding-top:7px;}");

- >不可编辑

 QListView * listView = new QListView(ui->demoEdit);
         ui->demoEdit->addItem("foo");
         ui->demoEdit->addItem("bar");
         ui->demoEdit->addItem("foobar");
         ui->demoEdit->addItem("fooooo");




         listView->setStyleSheet("QListView{background-color:white; selection-background-color:#3C8C3F;border-radius:0px;height :30px;padding-bottom:10px;padding-top:10px;padding-left:40pt;margin-top:30px;}");

        ui->demoEdit->setView(listView);

 ui->demoEdit->setStyleSheet("QComboBox{background-color:white; color:black;height:30px;width:20px;border:0px;}");

可编辑的组合框: - 第一项从箭头下方开始。

Non-Editable ComboBox: - 第1项以箭头开头。

THIS IS EDITABLE

THIS IS NON-EDITABLE

我在Mac上工作。

2 个答案:

答案 0 :(得分:0)

问题是你使用填充,

ui->editable->setStyleSheet("...QListView{padding-bottom:7px;padding-top:7px;}");

listView->setStyleSheet("QListView{...padding-bottom:10px;padding-top:10px;padding-left:40pt;margin-top:30px;}");

不同的参数,放置相同的填充参数

答案 1 :(得分:0)

我找到了解决方法。

我将不可编辑的QComboBox检查为可编辑,然后将QComboBox的QLineEdit设置为ReadOnly。

 1. ui->nonEditComboBox->setEditable(true);

 2. QLineEdit *mylineEdit = ui->nonEditComboBox->lineEdit();  //make object of QLineEdit
    mylineEdit->setReadOnly(true);