gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 13:15:12 28 4
gpt4 key购买 nike

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

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

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

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 &)));

关于c++ - 更新 QTableView 时,Qt 信号和插槽不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37740339/

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