Изменение размеров QListWidget в соответствии с его содержимым - PullRequest
2 голосов
/ 18 января 2011

У меня есть подкласс QListWidget, виджет содержит текстовые элементы в одном столбце и нескольких строках (обычный вид). Я хочу, чтобы размер виджета изменился до минимального размера, при котором текстовые элементы все еще будут видны. Я попытался использовать метод resize () с аргументом contentsSize () , это изменит размер виджета в соответствии с содержимым текста, однако ширина останется прежней.

Вот фрагмент переопределенного метода, с которым я тестирую это:

override void mousePressEvent(QMouseEvent event)
{
    this.resize(this.contentsSize());
}

Примечание: Это на языке D, и я использую библиотеку оболочки QtD. Если я не делаю что-то неправильно, это может быть даже ошибка QtD (но я сомневаюсь в этом).

1 Ответ

1 голос
/ 18 января 2011

Если вы хотите переключиться на QTableView или QTreeView, вы можете вызвать resizeColumnsToContents () и изменить размер вашего виджета на основе полученной ширины. В противном случае вам придется перебирать содержимое QListWidget и получать максимальную ширину элементов.

...