我在QLabel中显示QTableWidget中的项目计数,但每当我进行一些更新时,我必须手动更新计数(标签)。当我删除或添加行时,是否会发出任何信号?我尝试了cellChanged和itemChanged,但是当我删除一行时,它们都不会发出。没有可用的dataChanged信号。
这就是我现在要做的:
ui->tableWidget->insertRow ( ui->tableWidget->rowCount() );
// ....
ui->lblTotalElements->setText(QString::number(ui->tableWidget->rowCount()));发布于 2017-07-01 06:50:25
没有信号,但有一个虚拟的、受保护的插槽可以使用:rowsAboutToBeRemoved。只需创建一个子类,覆盖该方法,发出一个自定义信号,然后调用基类的实现。
一个在删除行时添加信号的实现,存储哪些行即将被删除(一个范围)将如下所示:
class MyTableWidget: public QTableWidget
{
Q_OBJECT
public:
using QTableWidget::QTableWidget;
protected slots:
virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) override;
signals:
void removed(int, int);
};
void MyTableWidget::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
{
emit removed(start, end);
QTableWidget::rowsAboutToBeRemoved(parent, start, end);
}https://stackoverflow.com/questions/44855709
复制相似问题