Название: перемещение по TableView-продолжение
Отправлено: mokynis от Июнь 30, 2009, 13:53
(Qt 4.5.1) Ета тема уже поднималась (http://www.prog.org.ru/topic_7117_0.html), а все равно ничего не получается. Делаю так же, как в теме по ссылке-в дизанере создал диалог, на нем лежит QTableView и QLineEdit. Таблица заполняется из запроса. Все отображается, и вот перемещение по таблице программа игнорирует-даже на Breapoint не попадает. Вот исходники: dialogimpl.h class DialogImpl : public QDialog, public Ui::Dialog { Q_OBJECT public: DialogImpl( QWidget * parent = 0, Qt::WFlags f = 0 ); private: QString btnName; private slots: void fillEdit(const QModelIndex &, const QModelIndex &); protected: virtual bool start(); virtual void closeEvent(QCloseEvent *event); };
class MyModel:public QSqlQueryModel { Q_OBJECT public: MyModel(); Qt::ItemFlags flags(const QModelIndex &index) const; QVariant data(const QModelIndex &index,int role=Qt::DisplayRole) const; private: void refresh(); }; dialogimpl.cpp DialogImpl::DialogImpl( QWidget * parent, Qt::WFlags f) : QDialog(parent, f) { setupUi(this); connect(tab_view->selectionModel(),SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)),this,SLOT(fillEdit(const QModelIndex &, const QModelIndex &))); start(); MyModel *model=new MyModel(); tab_view->setModel(model); }
MyModel::MyModel() { refresh(); }
Qt::ItemFlags MyModel::flags(const QModelIndex &index) const {........}
QVariant MyModel::data(const QModelIndex &index,int role) const {.........}
void MyModel::refresh() { setQuery("SELECT ...FROM ...."); setHeaderData(0,Qt::Horizontal,tr("...")); ..... }
bool DialogImpl::start() { QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL3"); ........ }
void DialogImpl::closeEvent(QCloseEvent *event) {...}
void DialogImpl::fillEdit(const QModelIndex & current, const QModelIndex &previuos) { int row=current.row(); EInvNum->setText(QString::number(row)); }
Проблема, похоже ерундовая, но никак не пойму за что ухватиться. Помогите!
Название: Re: перемещение по TableView-продолжение
Отправлено: EhTemka от Июнь 30, 2009, 23:05
C++ (Qt) start(); MyModel *model=new MyModel(); tab_view->setModel(model); connect(tab_view->selectionModel(),SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)),this,SLOT(fillEdit(const QModelIndex &, const QModelIndex &)));
При установке модели во вьювер создается новая selectionModel, поэтому нужно производить коннект после tab_view->setModel(model);
Название: Re: перемещение по TableView-продолжение
Отправлено: mokynis от Июль 01, 2009, 08:12
Спасибо! А ведь, что обидно-была такая мысль, даже написал connect после установки Model, а потом что-то засомневался и стер
|