繁体   English   中英

更新QTableView时,Qt信号和插槽不起作用

[英]Qt signal and slot doesn't work when QTableView is updated

我有一个QTableView和一个按钮。 我已经使用信号和插槽将表视图与功能连接起来。 插槽执行以下功能。 每当用户选择单行时,必须启用该按钮。 如果用户未选择行或选择了多行,则必须禁用该按钮。 这是代码。

connect(ui->client_table->selectionModel(),SIGNAL(selectionChanged(const QItemSelection &, constQItemSelection &)),SLOT(disableButtons(const QItemSelection &, const QItemSelection &)));

当我刷新表视图时,问题开始了。 然后信号和插槽停止工作。 刷新表的代码如下。

void client_table_view::refreshTable()
{



    dbconnector db;
    QSqlQueryModel* modal = new QSqlQueryModel();
    QSqlQuery* qry = new QSqlQuery(db.digi_db);


    qry->exec("select client_id,company_name,contact_name,address,email,phone from client_details");

    int qrycount = 0;


    modal->setQuery(*qry);
    ui->client_table->setModel(modal);
}

如何更改代码,以便我可以刷新表以及实现信号和插槽机制。

在refresh()开始时添加它以整理:

disconnect(ui->client_table->selectionModel(),SIGNAL(selectionChanged(const QItemSelection &, constQItemSelection &)),SLOT(disableButtons(const QItemSelection &, const QItemSelection &)));

然后在refresh()结束时使用它来连接新模型:

connect(ui->client_table->selectionModel(),SIGNAL(selectionChanged(const QItemSelection &, constQItemSelection &)),SLOT(disableButtons(const QItemSelection &, const QItemSelection &)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM