Torbins
В моделі QSqlTableModel є такі сигнали
▼Signals
Signals
void beforeDelete(int row)
void beforeInsert(QSqlRecord &record)
void beforeUpdate(int row, QSqlRecord &record)
void primeInsert(int row, QSqlRecord &record)
ще є сигнали успадковані від QAbstractItemModel і QObject
QAbstractItemModel є такі
▼Signals
Signals
void columnsAboutToBeInserted(const QModelIndex &parent, int first, int last)
void columnsAboutToBeMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn)
void columnsAboutToBeRemoved(const QModelIndex &parent, int first, int last)
void columnsInserted(const QModelIndex &parent, int first, int last)
void columnsMoved(const QModelIndex &parent, int start, int end, const QModelIndex &destination, int column)
void columnsRemoved(const QModelIndex &parent, int first, int last)
void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int> ())
void headerDataChanged(Qt::Orientation orientation, int first, int last)
void layoutAboutToBeChanged(const QList<QPersistentModelIndex> &parents = QList<QPersistentModelIndex> (), QAbstractItemModel::LayoutChangeHint hint = QAbstractItemModel::NoLayoutChangeHint)
void layoutChanged(const QList<QPersistentModelIndex> &parents = QList<QPersistentModelIndex> (), QAbstractItemModel::LayoutChangeHint hint = QAbstractItemModel::NoLayoutChangeHint)
void modelAboutToBeReset()
void modelReset()
void rowsAboutToBeInserted(const QModelIndex &parent, int start, int end)
void rowsAboutToBeMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow)
void rowsAboutToBeRemoved(const QModelIndex &parent, int first, int last)
void rowsInserted(const QModelIndex &parent, int first, int last)
void rowsMoved(const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row)
void rowsRemoved(const QModelIndex &parent, int first, int last)
Я всі не пробував, але схоже з опису тут немає мені потрібних
koala
QTableWidget - я не хочу використовувати це клас тому що там не можна задати моделі
ui->tableViewCategory->setModel( modelCategory );
метод setModel там захищений тому вставляти таблицю з БД прийдеться за допомогою власного методу
Для вирішення цієї проблеми я створив власний клас таблиці який успадковується від QTableView
mytableview.h
#ifndef MYTABLEVIEW_H
#define MYTABLEVIEW_H
#include <QTableView>
#include <QKeyEvent>
class MyTableView : public QTableView
{
Q_OBJECT
public:
MyTableView(QWidget *parent = 0);
protected:
void keyPressEvent(QKeyEvent *event);
void mousePressEvent(QMouseEvent *event);
void eventMouseOrKey();
private:
int beforeNumber;
signals:
void rowChange();
};
#endif // MYTABLEVIEW_H
mytableview.cpp
#include "mytableview.h"
MyTableView::MyTableView(QWidget *parent)
: QTableView(parent),
beforeNumber( -1 )
{}
void MyTableView::keyPressEvent(QKeyEvent *event)
{
QTableView::keyPressEvent(event);
eventMouseOrKey();
}
void MyTableView::mousePressEvent(QMouseEvent *event)
{
QTableView::mousePressEvent(event);
eventMouseOrKey();
}
void MyTableView::eventMouseOrKey()
{
if( beforeNumber != this->currentIndex().row() )
{
beforeNumber = this->currentIndex().row();
emit rowChange();
}
}
Але все-таки я хотів би найти рішення від Qt