Вы можете попытаться сделать это: Переопределить QListView :: rowInserted () Класс метода.Скажем, у вас есть MyListView, унаследованный от QListView.Таким образом, код может выглядеть следующим образом:
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 с QLineEdit .Он уже разработан для того, что вам нужно, и вам не нужно тратить время на то, чтобы заставить его работать.