Russian Qt Forum

Qt => Model-View (MV) => Тема начата: stiffx2010 от Август 10, 2011, 19:02



Название: QComboBox с выпадающим QTableView
Отправлено: stiffx2010 от Август 10, 2011, 19:02
Добрый день. Собственно вопрос: каким образом можно сделать выпадающий список с двумя и более столбцами, наподобие рисунка.
Если возможно, то поделитесь кусочком кода с реализацией.
(http://help.syncfusion.com/ug_74/toolswin/Images/MultiColumnComboBox2.png)
Заранее спасибо.


Название: Re: QComboBox с выпадающим QTableView
Отправлено: Пантер от Август 10, 2011, 19:11
Почитай про void QComboBox::setView ( QAbstractItemView * itemView )


Название: Re: QComboBox с выпадающим QTableView
Отправлено: stiffx2010 от Август 10, 2011, 20:09
Извините, но в упор не понимаю...
Код:
    QSqlTableModel *modelSteel = new QSqlTableModel(0, QSqlDatabase::database("MAINDB"));
    modelSteel->setTable("steels");
    //QTableView *tableSteel = new QTableView;
    //tableSteel->setModel(modelSteel);
    cbSteels->setView(QAbstractItemView::setModel(modelSteel));


cbSteels - QComboBox
таблица steels в базе MAINDB QSQLite:
Код:
query.exec("CREATE TABLE steels ("
               "id INTEGER PRIMARY KEY AUTOINCREMENT,"
               "marka VARCHAR(40) NOT NULL,"
               "gost VARCHAR(40) NOT NULL)");


Название: Re: QComboBox с выпадающим QTableView
Отправлено: kambala от Август 10, 2011, 20:55
Код
C++ (Qt)
QSqlTableModel *modelSteel = new QSqlTableModel(0, QSqlDatabase::database("MAINDB"));
modelSteel->setTable("steels");
QTableView *tableSteel = new QTableView;
tableSteel->setModel(modelSteel);
cbSteels->setView(tableSteel);


Название: Re: QComboBox с выпадающим QTableView
Отправлено: stiffx2010 от Август 11, 2011, 05:15
Это я уже пробовал, в итоге получаю незаполненный QComboBox...


Название: Re: QComboBox с выпадающим QTableView
Отправлено: Странник от Август 11, 2011, 08:01
потому что для QComboBox модель надо устанавливать.


Название: Re: QComboBox с выпадающим QTableView
Отправлено: stiffx2010 от Август 11, 2011, 09:04
Устанавливая модель modelSteel он отображает только 1 столбец, а необходимо чтобы выводил по крайней мере 2...


Название: Re: QComboBox с выпадающим QTableView
Отправлено: Странник от Август 11, 2011, 12:06
майн готт. вот вам код исправленный, дальше сами танцуйте.
Код
C++ (Qt)
QSqlTableModel *modelSteel = new QSqlTableModel(0, QSqlDatabase::database("MAINDB"));
modelSteel->setTable("steels");
QTableView *tableSteel = new QTableView;
cbSteels->setModel(modelSteel);
cbSteels->setView(tableSteel);
modelSteel->select();


Название: Re: QComboBox с выпадающим QTableView
Отправлено: stiffx2010 от Август 11, 2011, 12:28
Спасибо огромное, как раз то что надо!