我正在使用带有一些项目的QComboBox,当显示QComboBox中显示所有可用项目的小部件时,只有部分项目可见,而其他项目可通过QScrollBar访问。
问题是QScrollBar要瘦,我想让它更大。我在网上做了一些研究,我确实找到了一些方法来改变QScrollBar的宽度(参见下面的参考资料),但问题是我根本找不到访问QComboBox的方法' s QScrollBar。
所以,考虑到这个问题,我该怎么做这个改变? (我想你可能会向我提出一种不要求我访问QScrollBar的方式,或者告诉我如何访问它)。
参考文献:
答案 0 :(得分:2)
滚动条不是QComboBox类的成员,它是底层QAbstractItemView的成员。尝试类似以下内容(伪代码):
QListView* abby = new QListView();
QWidgetList list = abby->scrollBarWidgets(Qt::AlignRight);
for (auto itr = list.begin(); itr != list.end(); itr++)
{
(*itr)->setMinimumWidth(100);
}
QComboBox combo;
combo.setView(abby);
scrollbarwidgets返回该对齐的滚动条的小部件列表。然后,您可以在滚动条指针上设置属性。
答案 1 :(得分:2)
通过view()
QAbstractItemView
该类继承自QAbstractScrollArea
,因此继承了verticalScrollBar method
e.g。
QAbstractItemView *qv = combobox.view();
QScrollBar *scrollbar = qv->verticalScrollBar();
// Adjust size via setStyleSheet or hint/width