Russian Qt Forum
Сентябрь 30, 2024, 14:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QComboBox с выпадающим QTableView  (Прочитано 6053 раз)
stiffx2010
Гость
« : Август 10, 2011, 19:02 »

Добрый день. Собственно вопрос: каким образом можно сделать выпадающий список с двумя и более столбцами, наподобие рисунка.
Если возможно, то поделитесь кусочком кода с реализацией.

Заранее спасибо.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Август 10, 2011, 19:11 »

Почитай про void QComboBox::setView ( QAbstractItemView * itemView )
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
stiffx2010
Гость
« Ответ #2 : Август 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)");
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #3 : Август 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);
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
stiffx2010
Гость
« Ответ #4 : Август 11, 2011, 05:15 »

Это я уже пробовал, в итоге получаю незаполненный QComboBox...
Записан
Странник
Гость
« Ответ #5 : Август 11, 2011, 08:01 »

потому что для QComboBox модель надо устанавливать.
Записан
stiffx2010
Гость
« Ответ #6 : Август 11, 2011, 09:04 »

Устанавливая модель modelSteel он отображает только 1 столбец, а необходимо чтобы выводил по крайней мере 2...
Записан
Странник
Гость
« Ответ #7 : Август 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();
Записан
stiffx2010
Гость
« Ответ #8 : Август 11, 2011, 12:28 »

Спасибо огромное, как раз то что надо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.088 секунд. Запросов: 23.