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

1

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

Изображение 174551

Теги:
pyqt4
user-interface

3 ответа

2

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

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

  • 0
    Я надеялся на что-то немного большее, чем это ... Но если я не получу никаких других ответов, я дам тебе награду ...
1

Я не использовал 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

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

  • 0
    Есть ли прогресс?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню