我有一个带有字符串列表的QListView。
基本上,我将它用作自动填充过程的QLineEdit的弹出窗口。 我不希望QListView显示空白行,只显示包含字符串的行。 看到这个:
我希望它自动调整大小,以便在最后一次输入后不会有这些空行。
由于
答案 0 :(得分:3)
您可以尝试执行此操作:重新实现QListView::rowsInserted()方法类。假设你有从QListView继承的MyListView。所以代码看起来像这样:
void MyListView::rowsInserted ( const QModelIndex & parent, int start, int end )
{
QListView::rowsInserted(parent, start, end);
int rc = model()->rowCount();
// use this all the rows have the same height. otherwise
// you will need to iterate and sum all row heights
resize(width(), rc ? rc*sizeHintForRow(0): height());
}
但为了更简单,我建议你使用QCompleter class with QLineEdit。它已经针对您的需求而设计,您无需花时间尝试使其正常工作。