treecombobox.h
#ifndef TREECOMBOBOX_H
#define TREECOMBOBOX_H
#include <QComboBox>
#include "QAbstractItemView"
#include "QTreeView"
class TreeComboBox : public QComboBox
{
Q_OBJECT
public:
explicit TreeComboBox(QWidget *parent = 0);
~TreeComboBox();
protected:
QTreeView* internalView;
signals:
public slots:
};
#endif // TREECOMBOBOX_H
treecombobox.cpp
#include "treecombobox.h"
TreeComboBox::TreeComboBox(QWidget *parent) :
QComboBox(parent){
this->internalView = new QTreeView( parent );
this->setView( this->internalView );
QAbstractItemModel* model = this->internalView->model();
model->insertRows( 0, 2 );
model->setData( model->index(0,0), "First" );
model->setData( model->index(1,0), "Second" );
this->view()->setCurrentIndex( model->index(1,0) );
}
TreeComboBox::~TreeComboBox(){
if( this->internalView ){
delete this->internalView;
this->internalView = 0;
}
}
Я хочу показать второй элемент, но qt дает мне первый элемент.this-> view () -> currentIndex () дает мне правильный индекс модели, но виджет не отображает правильное содержимое.
Мне нужно поле со списком во всплывающем окне с представлением в виде дерева.Всплывающее окно работает нормально.Единственная проблема заключается в том, что все идет не так, когда я пытаюсь выбрать элемент автоматически в программе.
Может кто-нибудь сказать мне, как это сделать?