我使用的是带有某些项的QComboBox,以至于当显示QComboBox中所有可用项的小部件出现时,只有一些项是可见的,而其他可以通过QScrollBar访问的项是可见的。
问题是QScrollBar太薄了,我想让它变大。我在网络上做了一些研究,并找到了一些方法来改变QScrollBar的宽度(参见下面的参考资料),但问题是我根本找不到访问QComboBox的QScrollBar的方法。
那么,考虑到这个问题,我该怎么做呢?(我想你可以给我一种不需要我访问QScrollBar的方式,或者告诉我如何访问它)。
参考文献:
发布于 2014-09-25 20:22:58
QAbstractItemView获得组合框的视图()QAbstractScrollArea,因此继承了verticalScrollBar法例如:
QAbstractItemView *qv = combobox.view();
QScrollBar *scrollbar = qv->verticalScrollBar();
// Adjust size via setStyleSheet or hint/width发布于 2014-09-25 20:18:22
滚动条不是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);滚动条小部件返回滚动条的小部件列表,用于该对齐。然后,可以在滚动条指针上设置属性。
https://stackoverflow.com/questions/26047184
复制相似问题