我有一个QDialog,它有一些设置,在此基础上,QTreeView或整个QMainWindow需要更新或重新绘制或刷新。
QDialog有两个按钮:
我已经尝试在单击Apply按钮时在QMainWindow上调用repaint / update函数,但没有任何效果。
void MainWindow::refresh()
{
setUpdatesEnabled(true);
setWindowModified(true);
repaint();
update();
show();
}
但是,在单击关闭按钮(在QDialog上调用hide)时,QMainWindow上的整个视图会更新/重新绘制。
我需要在Apply按钮上做同样的事情。
怎么做到这一点? QDialog-> hide在QMainWindow上调用的SLOT是什么?
如果您的颜色基于Qt roles,您必须刷新数据模型(查看dataChanged signal)而不是主窗口。如果您的颜色基于qt css,您可以使用新值调用QMainWindow :: setStyleSheet