设置 QComboBox 的最小行高
Set minimum row-height of QComboBox
我试图在 QComboBox
下拉菜单中设置行的最小高度,而不更改它们的宽度或 QComboBox
本身的大小。
默认情况下,行项目的宽度和高度由其数据计算。使下拉列表调整到我正在调用的数据的宽度
view()->setMinimumWidth(view()->sizeHintForColumn(0);
在组合框的 ::showPopup()
中。
但是,由于我在行中有不同的字体大小,我想在每一行上强制执行最小高度。
我尝试对添加到行的第一列中的每个 QStandardItem
使用 setSizeHint
,但没有成功。我试过了:
item->setSizeHint(QSize(item->sizeHint().width(), minHeight));
()
但这会导致下拉菜单无法根据数据的宽度调整大小。
所以,我试图让宽度“未设置”。然而,
item->setSizeHint(QSize(QSize().width(), minHeight));
和
item->setSizeHint(QSize(0, minHeight));
没用。有谁知道我如何在不扰乱自动宽度计算的情况下对 QComboBox
的行强制执行最小高度?
只需使用这几行:
QComboBox combo;
QListView *view = new QListView(&combo);
view->setStyleSheet("QListView::item{height: 100px}");
combo.setView(view);
或者在qss
文件中写入这段代码:
QListView::item {
height: 30px;
}
之后使用:
QComboBox::setView(QAbstractItemView *itemView)
我试图在 QComboBox
下拉菜单中设置行的最小高度,而不更改它们的宽度或 QComboBox
本身的大小。
默认情况下,行项目的宽度和高度由其数据计算。使下拉列表调整到我正在调用的数据的宽度
view()->setMinimumWidth(view()->sizeHintForColumn(0);
在组合框的 ::showPopup()
中。
但是,由于我在行中有不同的字体大小,我想在每一行上强制执行最小高度。
我尝试对添加到行的第一列中的每个 QStandardItem
使用 setSizeHint
,但没有成功。我试过了:
item->setSizeHint(QSize(item->sizeHint().width(), minHeight));
()
但这会导致下拉菜单无法根据数据的宽度调整大小。
所以,我试图让宽度“未设置”。然而,
item->setSizeHint(QSize(QSize().width(), minHeight));
和
item->setSizeHint(QSize(0, minHeight));
没用。有谁知道我如何在不扰乱自动宽度计算的情况下对 QComboBox
的行强制执行最小高度?
只需使用这几行:
QComboBox combo;
QListView *view = new QListView(&combo);
view->setStyleSheet("QListView::item{height: 100px}");
combo.setView(view);
或者在qss
文件中写入这段代码:
QListView::item {
height: 30px;
}
之后使用:
QComboBox::setView(QAbstractItemView *itemView)