Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Hellrider от Март 29, 2013, 20:09



Название: QTableView внутри виджета
Отправлено: Hellrider от Март 29, 2013, 20:09
Не пойму как заставить QTableView показать модель. Сам QTableView расположен в виджете и модель устанавливается скажем по нажатию кнопки, вот например:
Код:
void db_cl::slotShow(){
    QSqlTableModel model;
    model.setTable("my_db");
    model.select();
    model.setEditStrategy(QSqlTableModel::OnFieldChange);
    tv_result = new QTableView; // представление которе находится в виджете
    tv_result->setModel(&model);   
что дальше делать, что бы в представлении отобразилась таблица? Пробовал  tv_result->show(); но это не то...  ???


Название: Re: QTableView внутри виджета
Отправлено: kambala от Март 29, 2013, 21:24
у тебя модель умирает по выходе из слота. и таблица будет показываться отдельным окном а не внутри виджета (укажи ей родителя).


Название: Re: QTableView внутри виджета
Отправлено: Hellrider от Март 29, 2013, 21:41
у тебя модель умирает по выходе из слота. и таблица будет показываться отдельным окном а не внутри виджета (укажи ей родителя).

Сделал модель глобальной, указал родителя. Но таблица не отображается, база открыта и таблица там есть, что не так  ???

Код:
db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("my_db.dat");
    db.setUserName("user");
    db.setHostName("localhost");
    db.setPassword("123456");
    if(!db.open())
        qDebug() << "error";

model.setTable("my_db");
    model.select();
    model.setEditStrategy(QSqlTableModel::OnFieldChange);
    tv_result = new QTableView(tab_2);
    tv_result->setModel(&model);


Название: Re: QTableView внутри виджета
Отправлено: Hellrider от Март 29, 2013, 22:33
Ага! нужно еще для модели кучу выделить и понеслась наконец