我有QLineEdit
附加到inline
并且它工作正常,除了建议弹出窗口是行编辑的宽度,而我需要它们更宽。完成者中没有任何方法似乎允许我改变它。我该怎么办?
答案 0 :(得分:3)
您可以在其中设置可以设置宽度的QAbstractItemView
子类,然后将此自定义类设置为QCompleter::setPopup(QAbstractItemView * popup)
答案 1 :(得分:0)
可以在QAbstractView * popup()项目中设置。我的尝试:
// compute needed width
const QAbstractItemView * popup = _completer->popup();
int padding = popup->width() - popup->viewport()->width();
int scrollbarWidth = qApp->style()->pixelMetric(QStyle::PM_ScrollBarExtent);
int frameWidth = popup->frameWidth();
int textWidth = popup->fontMetrics().boundingRect(QLocale().toString(string)).width();
int desiredWidth = textWidth + 4 * padding + 2 * frameWidth + scrollbarWidth;
// set it
_completer->popup()->setMinimumWidth(desiredWidth);
结果(在Windows 7上测试,放大2倍):