在使用Qt的QTableView控件时,可以通过监控选中行的改变来实现相应的功能。可以通过继承QTableView类,并重写selectionChanged()函数来实现监控选中行改变的功能。

下面是一个简单的示例代码:

#include <QTableView>
#include <QItemSelectionModel>
#include <QDebug>

class MyTableView : public QTableView
{
    Q_OBJECT
public:
    MyTableView(QWidget *parent = nullptr) : QTableView(parent)
    {
        connect(selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)),
                this, SLOT(onSelectionChanged(const QItemSelection &, const QItemSelection &)));
    }

public slots:
    void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
    {
        qDebug() << "Selected rows:";
        foreach(const QModelIndex &index, selected.indexes()) {
            qDebug() << index.row();
        }
    }
};

在这个示例中,MyTableView类继承自QTableView,并在构造函数中连接了selectionChanged()信号与onSelectionChanged()槽函数。当选中行改变时,onSelectionChanged()槽函数会被调用,打印出当前选中的行号。

使用时,可以将MyTableView作为QMainWindow的子控件使用,或者在自己的窗口类中创建MyTableView对象即可

QtQTableView监控选中行改变

原文地址: https://www.cveoy.top/t/topic/itYO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录