可以使用QComboBox::view()
函数获取下拉列表的视图,然后使用QAbstractItemView::setFixedHeight()
函数设置固定高度。示例代码如下:
QComboBox* comboBox = new QComboBox(this);
// 添加选项
comboBox->addItem("Option 1");
comboBox->addItem("Option 2");
comboBox->addItem("Option 3");
// 获取下拉列表视图
QAbstractItemView* view = comboBox->view();
// 设置视图高度
view->setFixedHeight(100); // 设置为100像素高度
注意:在设置固定高度之前,必须先打开下拉列表一次,使得视图被创建出来。否则调用QComboBox::view()
函数会返回nullptr
。可以使用QComboBox::showPopup()
函数打开下拉列表。完整示例代码如下:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget widget;
QVBoxLayout layout(&widget);
QComboBox* comboBox = new QComboBox(&widget);
comboBox->addItem("Option 1");
comboBox->addItem("Option 2");
comboBox->addItem("Option 3");
QPushButton* button = new QPushButton("Set height", &widget);
QObject::connect(button, &QPushButton::clicked, [&](){
QAbstractItemView* view = comboBox->view();
if (view) {
view->setFixedHeight(100);
}
});
layout.addWidget(comboBox);
layout.addWidget(button);
widget.show();
return a.exec();
}