Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Tonal от Сентябрь 21, 2006, 13:56



Название: [Qt 4.1.4] QComboBox + QTreeView - Можно ли?
Отправлено: Tonal от Сентябрь 21, 2006, 13:56
Иногда сильно удобно в выпадающем списке видеть несколько колонок или дерево.

Можно ли в выпадающем списке QComboBox показать QTreeView?

Вроде есть функция QComboBox::setView, и она работает, но добиться показа 2х колонок у меня не получилось.  :(


Название: [Qt 4.1.4] QComboBox + QTreeView - Можно ли?
Отправлено: itan от Сентябрь 21, 2006, 14:16
Можно вот так:

Код:
QDirModel *model = new QDirModel;
    QTreeView *tree = new QTreeView;
    tree->setModel(model);
    tree->setMinimumHeight(TREE_VIEW_HEIGHT);

    QComboBox cb;
    cb.setView(tree);
    cb.setModel(model);

    cb.show();


Но это не решит всех проблем.  Выпадающий список почему-то не коректируется по высоте и приходится высталять высоту самому, например TREE_VIEW_HEIGHT = 200. И еще при нажатии на "+" весь список схлопывается (в принципе можно обойти переопределив eventFilter).

Вообще-то это баг:
http://www.trolltech.com/developer/task-tracker/index_html?method=entry&id=87744


Название: [Qt 4.1.4] QComboBox + QTreeView - Можно ли?
Отправлено: Tonal от Сентябрь 21, 2006, 16:20
Щастье, заработало!

Правда, почему то не работает setSelectionBehavior и header().resizeSection...
Но, может быть это какие-то косяки PyQt...