У меня есть QDialog, в котором есть некоторые настройки, на основе которых QTreeView или весь QMainWindow нужно обновить, перекрасить или обновить.
QDialog имеет две кнопки:
Применить: Эта кнопка должна применить настройки к QMainWindow, например, цвет к столбцам QTreeView. Это один пример, в QMainWindow есть и другие элементы, такие как QTableView и т. д., которые также необходимо обновить при нажатии этой кнопки.
Закрыть: Эта кнопка скрывает QDialog.
Я попытался вызвать функцию перерисовки/обновления в QMainWindow при нажатии кнопки «Применить», но ничего не работает.
void MainWindow::refresh()
{
setUpdatesEnabled(true);
setWindowModified(true);
repaint();
update();
show();
}
Однако при нажатии кнопки закрытия, которая вызывает скрытие в QDialog, весь вид в QMainWindow обновляется/перерисовывается.
Мне нужно сделать то же самое с кнопкой «Применить».
Как этого добиться? Что такое SLOT, который QDialog->hide вызывает в QMainWindow?