Qt 如何在两个窗口之间通信?
我是新来的。在Ubuntu 15.04上使用基于Qt5.4.1的QtCreator 3.1.1 我正在尝试构建一个应用程序,该应用程序在主屏幕上列出员工,右侧有添加、编辑、删除和导出按钮。单击“添加”和“编辑”按钮,打开另一个子窗口并执行相应的操作 一旦用户从子窗口添加/编辑/删除员工,我想刷新主窗口上的员工列表 我不想在一个文件中编写完整的代码,这样就可以根据屏幕来分隔代码。但我不知道如何从子窗口访问父窗口UI元素。所以我使用下面的子文件代码实现了这一点Qt 如何在两个窗口之间通信?,qt,qt5,Qt,Qt5,我是新来的。在Ubuntu 15.04上使用基于Qt5.4.1的QtCreator 3.1.1 我正在尝试构建一个应用程序,该应用程序在主屏幕上列出员工,右侧有添加、编辑、删除和导出按钮。单击“添加”和“编辑”按钮,打开另一个子窗口并执行相应的操作 一旦用户从子窗口添加/编辑/删除员工,我想刷新主窗口上的员工列表 我不想在一个文件中编写完整的代码,这样就可以根据屏幕来分隔代码。但我不知道如何从子窗口访问父窗口UI元素。所以我使用下面的子文件代码实现了这一点 QTableWidget *table
QTableWidget *tableWidget = this->parent()->findChild<QTableWidget *>();
QSqlQuery query;
query.exec("SELECT * FROM employees order by id DESC");
tableWidget->setRowCount( 0 );
tableWidget->setRowCount( query.size() );
tableWidget->setColumnWidth( 0, 60 );
tableWidget->setColumnWidth( 1, 200 );
tableWidget->setColumnWidth( 2, 150 );
tableWidget->setColumnWidth( 3, 100 );
while( query.next() ) {
tableWidget->setItem( columnCount, 0 ,new QTableWidgetItem( query.value(0).toString() ) );
tableWidget->setItem( columnCount, 1 ,new QTableWidgetItem( query.value(1).toString() ) );
tableWidget->setItem( columnCount, 2 ,new QTableWidgetItem( query.value(2).toString() ) );
tableWidget->setItem( columnCount, 3 ,new QTableWidgetItem( query.value(3).toString() ) );
columnCount++;
}
QTableWidget*tableWidget=this->parent()->findChild();
QSqlQuery查询;
query.exec(“按id描述从员工订单中选择*);
tableWidget->setRowCount(0);
tableWidget->setRowCount(query.size());
tableWidget->setColumnWidth(0,60);
tableWidget->setColumnWidth(1200);
tableWidget->setColumnWidth(2150);
tableWidget->setColumnWidth(3100);
while(query.next()){
tableWidget->setItem(columnCount,0,新的QTableWidgetItem(query.value(0.toString()));
tableWidget->setItem(columnCount,1,新的QTableWidgetItem(query.value(1.toString()));
tableWidget->setItem(columnCount,2,新的QTableWidgetItem(query.value(2.toString());
tableWidget->setItem(columnCount,3,新的QTableWidgetItem(query.value(3.toString());
columnCount++;
}
这是实现此功能的正确方法吗?请引导我。谢谢 您的辅助窗口可以发出一个信号,您可以将该信号连接到主窗口中的一个插槽,该插槽执行您在主窗口中的代码
或者,如果这些附加窗口是模式对话框(在打开时阻止用户与主窗口交互),则在它们从
exec()返回后触发更新
调用您的辅助窗口可以发出一个信号,您可以将该信号连接到主窗口中的某个插槽,该插槽执行您在主窗口中的代码
或者,如果这些附加窗口是模式对话框(在打开时阻止用户与主窗口交互),则在它们从
exec()返回后触发更新
调用与任何两个对象之间的通信方式相同-使用Qt的信号和插槽机制。与任何两个对象之间的通信方式相同-使用Qt的信号和插槽机制。