首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTableWidget dataChanged信号

QTableWidget dataChanged信号
EN

Stack Overflow用户
提问于 2017-07-01 06:46:48
回答 1查看 579关注 0票数 0

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

这就是我现在要做的:

代码语言:javascript
复制
ui->tableWidget->insertRow ( ui->tableWidget->rowCount() );
// ....
ui->lblTotalElements->setText(QString::number(ui->tableWidget->rowCount()));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-01 06:50:25

没有信号,但有一个虚拟的、受保护的插槽可以使用:rowsAboutToBeRemoved。只需创建一个子类,覆盖该方法,发出一个自定义信号,然后调用基类的实现。

一个在删除行时添加信号的实现,存储哪些行即将被删除(一个范围)将如下所示:

代码语言:javascript
复制
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);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44855709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档