Lin*_*umz 22 c++ user-interface qt qcombobox
我有一个QComboBox
填写QString
使用:
comboBox->addItem(someString);
Run Code Online (Sandbox Code Playgroud)
当我启动GUI应用程序时,宽度QComboBox
始终为70,即使最小的项目要大得多.如何动态设置的宽度QComboBox
,例如,在最大QString
范围内的comboBox
?
编辑:
经过一些进一步的测试后,我发现了以下解
// get the minimum width that fits the largest item.
int width = ui->sieveSizeComboBox->minimumSizeHint().width();
// set the ComboBoxe to that width.
ui->sieveSizeComboBox->setMinimumWidth(width);
Run Code Online (Sandbox Code Playgroud)
rub*_*nvb 12
Qt(4.6)在线文档有这样的说法QComboBox
:
enum SizeAdjustPolicy { AdjustToContents, AdjustToContentsOnFirstShow, AdjustToMinimumContentsLength, AdjustToMinimumContentsLengthWithIcon }
Run Code Online (Sandbox Code Playgroud)
我会建议
确保SizeAdjustPolicy
实际使用
将枚举设置为AdjustToContents
.当你提到一个.ui
文件我建议在Designer中这样做.通常情况下,构造函数中不应该有任何关于在Designer中执行的操作的任何东西.
我正在寻找一种解决方案,只更改组合框下拉菜单的大小以适应最大的文本,而不更改组合框本身的大小。
您的建议 (@Linoliumz) 确实帮助我找到了解决方案。这是:假设您有一个名为 cb 的组合框:
C++:
width = cb->minimumSizeHint().width()
cb->view().setMinimumWidth(width)
Run Code Online (Sandbox Code Playgroud)
PyQT :
width = cb.minimumSizeHint().width()
cb.view().setMinimumWidth(width)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22102 次 |
最近记录: |