首页 > 解决方案 > 自定义 QComboBox

问题描述

我想定制QComboBox. 我想看到的行为是一个组合框,它的按钮(向下箭头)在折叠时占据组合框的整个区域。我知道那QComboBoxQPushButton一个QListWidget(或其他一些小部件)。我想改变它QPushButton以占据整个区域。我还想摆脱显示当前选择的区域。任何提示将不胜感激!

这就是我想要的:

在此处输入图像描述

我可以通过控制下拉列表的宽度QComboBox::view()->setMinimumWidth()。这样我可以有一个更窄的组合框,但一个更宽的下拉列表。那部分已经完成。现在我只需要在那里有一个按钮。

标签: c++qtc++11qcomboboxqstylesheet

解决方案


设置QComboBox按钮,实际上是向下箭头,可以通过样式来完成,使用down-arrow样式,但是,由于您要求选择不可见,您需要注意其他设置,组合框的宽度和drop-down应该可能完全匹配您的图像,示例样式来实现这一点:

QComboBox::down-arrow {
    image: url(arrow.png); /* Set combobox button */
}

QComboBox::drop-down {
    width: 20px;  /* set the width of the drop down */
}

QComboBox {
    border: 0px;
    max-width: 20px; /* width of whole box */
}

推荐阅读