我有一个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);
}
如何更改代码,以便我可以刷新表格以及实现信号和插槽机制。
答案 0 :(得分:0)
在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 &)));