gpt4 book ai didi

c++ - QTableWidget dataChanged SIGNAL

转载 作者:行者123 更新时间:2023-11-28 01:46:29 25 4
gpt4 key购买 nike

我在 QLabel 中显示 QTableWidget 中的项目计数,但每当我进行一些更新时,我都必须手动更新计数(标签)。当我删除或添加行时是否会发出任何信号?我尝试了 cellChanged 和 itemChanged 但当我删除一行时它们都不会发出。没有可用的 dataChanged 信号。

这就是我现在所做的:

ui->tableWidget->insertRow ( ui->tableWidget->rowCount() );
// ....
ui->lblTotalElements->setText(QString::number(ui->tableWidget->rowCount()));

最佳答案

没有信号,但可以使用一个 protected 虚拟插槽: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);
}

关于c++ - QTableWidget dataChanged SIGNAL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44855709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com