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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTableView и QSqlTableModel не работают в дизайнере  (Прочитано 3854 раз)
DenisKh001
Гость
« : Сентябрь 03, 2011, 06:52 »

В дизайнере нарисован QTableView пытаюсь вставить него QSqlTableModel и ничего не получается Грустный - таблица пустая. Проблема не в подключении, так как если создавать QTableView и QSqlTableModel в main.cpp таблица отражается.

Код:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setDatabaseName("collect");
    if (!db.open())     return 1;
    Widget w;
    w.show();
    return a.exec();
}

Widget::Widget(QWidget *parent) :  QWidget(parent),  ui(new Ui::Widget)
{
    ui->setupUi(this);
    QSqlTableModel x;
    x.setTable("User");
    x.select();
    ui->tableView->setModel(&x);
}
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #1 : Сентябрь 03, 2011, 10:48 »

ты создаёшь QSqlTableModel в стеке, а потому она исчезает при выходе из конструктора. и QSqlDatabase надо передать параметром в модель.
Код
C++ (Qt)
int main(int argc, char *argv[])
{
   QApplication a(argc, argv);
   QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
   db.setDatabaseName("collect");
   if (!db.open())     return 1;
   Widget w(0, db);
   w.show();
   return a.exec();
}
 
Widget::Widget(QWidget *parent, const QSqlDatabase &db) :  QWidget(parent),  ui(new Ui::Widget)
{
   ui->setupUi(this);
   QSqlTableModel *x = new QSqlTableModel(this, db);
   x->setTable("User");
   x->select();
   ui->tableView->setModel(x);
}
Записан

Изучением 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
DenisKh001
Гость
« Ответ #2 : Сентябрь 03, 2011, 12:03 »

Да, верно. Так все работает. Однако QSqlDatabase не обязательно передавать параметром в модель, тк если не указать QSqlDatabase используется значение по умолчанию, что мне и надо. Огромное спасибо!
« Последнее редактирование: Сентябрь 03, 2011, 17:54 от DenisKh001 » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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