crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> как отловить dataChanged?, сигнал не принимается :(
dzyk
  опции профиля:
сообщение 12.9.2008, 15:35
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 13.4.2008
Пользователь №: 148

Спасибо сказали: 0 раз(а)




Репутация:   0  


Вообщем, хочу сделать так, чтобы TableModel после изменения одной из ячеек строке в 100ой, например - виджет снова вернулся на 100ую строку, которую редактировал пользователь. Для этого хочу отловить событие
void QAbstractItemModel::dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ) [signal]

.. и ничего не получается :(

сигнал принимает объект главного окна... отлично обрабатываются события от QAbstractItemView.
А вот QSqlTableModel и QAbstractItemModel ну никак ... помогите.!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
dzyk
  опции профиля:
сообщение 12.9.2008, 19:11
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 13.4.2008
Пользователь №: 148

Спасибо сказали: 0 раз(а)




Репутация:   0  


Litkevich Yuriy, Огромное спасибо. Ошибка у меня где то в коде проекта. Написал простой пример и все в нем ОК.
 #include <QtGui>
#include <QtSql>

int main(int argc, char *argv[]) {

    QApplication app(argc, argv);

    QSqlDatabase db;  

    db = QSqlDatabase::addDatabase("QSQLITE", "base_ex.db");
    QString file="base_ex.db";
    db.setDatabaseName(file);
    db.open();
  
     QSqlTableModel *sqm_tecushie;
     sqm_tecushie = new QSqlTableModel(0,db);
     sqm_tecushie->setTable("sample");
     sqm_tecushie->select();
  

     QTableView *view = new QTableView();
     view->setModel(sqm_tecushie);

      
     view->resizeRowsToContents();
     view->resizeColumnsToContents();
     view->show();
    
     QTableView *view2 = new QTableView();
     view2->setModel(sqm_tecushie);
    
     QObject::connect(sqm_tecushie,
     SIGNAL( dataChanged ( const QModelIndex &, const QModelIndex &) ),
     view2,
     SLOT(show()));
    
    

     return app.exec();
}
Причина редактирования: не забываем тэг: code=cpp
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.2.2025, 6:29