Как я могу получить такой выпадающий список с Qt?(В частности, PyQt4) - PullRequest
1 голос
/ 28 июня 2010

Это тип выпадающего окна, который я хотел бы. В нем есть столбцы с различными типами данных в каждом. Я попытался просто использовать разделитель табуляции, но это выглядело неаккуратно. Как я могу получить выпадающий / комбинированный элемент, как это, используя PyQt4? (Не обращайте внимания на черный ящик, я просто хотел скрыть свои системные файлы).

Columned Dropdown

Ответы [ 3 ]

2 голосов
/ 07 июля 2010

Используя свой собственный элемент делегата. Возможно, это не простой ответ, на который можно было бы надеяться, но у вас будет полный контроль:)

См. http://doc.trolltech.com/4.6/model-view-delegate.html

1 голос
/ 13 июля 2010

Я не использовал PyQt, но если это что-то вроде PyGTK, можно использовать что-то вроде виджет дерева.

Хотя в качестве альтернативы вы можете просто использовать форматирование строки (намного лучше, чем разделение табуляцией):

(новый стиль форматирования)

'{0:20}{0:20}'.format('l','lines in current document')

И если вы хотите убедиться, что для каждого из крупнейших достаточно, вы можете сделать что-то вроде this :

leftwidth = len(max(['l', 'foo', 'longitem'], key=len))
rightwidth = len(max(['Number of lines', 
                      'some other option', 
                      'yet another long option'], key=len))

'{key:{L}}{desc:{R}}'.format(key='l',desc='Number of lines',
                             L=leftwidth, R=rightwidth)

А если вы храните ваш ключ / описание в словаре, то еще проще автоматизировать процесс.

0 голосов
/ 07 января 2013

Абсолютно, вы должны использовать QColumnView, это расширенная версия ListView или просто несколько ListView. Как известно, listview является открытой версией Combobox.

...