(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));
}
Проблема, похоже ерундовая, но никак не пойму за что ухватиться. Помогите!