我有一个包含长字符串的QComboBox
。 Long 表示字符串比我的 GUI
上的 QComboBox
的宽度宽。在这种情况下,Qt
将以这种方式显示项目:
以前我使用的是 MatLab
,它的 GUI
用户友好度较低,但对于下拉列表,我认为 MatLab
解决方案更好:
是否有任何简单的方法可以在 Qt
中实现类似的结果,或者我是否必须为此目的设置自定义模型和 View ?
最佳答案
几年前我做过。应该工作正常。
//determinge the maximum width required to display all names in full
int max_width = 0;
QFontMetrics fm(ui.comboBoxNames->font());
for(int x = 0; x < NamesList.size(); ++x)
{
int width = fm.width(NamesList[x]);
if(width > max_width)
max_width = width;
}
if(ui.comboBoxNames->view()->minimumWidth() < max_width)
{
// add scrollbar width and margin
max_width += ui.comboBoxNames->style()->pixelMetric(QStyle::PM_ScrollBarExtent);
max_width += ui.comboBoxNames->view()->autoScrollMargin();
// set the minimum width of the combobox drop down list
ui.comboBoxNames->view()->setMinimumWidth(max_width);
}
关于c++ - 使 View 的宽度适合 QComboBox 的最长项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30817328/