У меня есть главное окно, нам нём кнопка, которая открывает новое модальное окно (кнопка Параметры).У этого модального окна есть кнопка, которая его закрывает (кнопка Сохранить). Хочется, чтобы при закрытии модального окна по нажатию этой кнопки в статусбаре отображалась надпись.
Мне не понятно назначение указателя ui при создании окна. Как ссылаться на этот указатель, но у главного окна?
ParametersWindow::ParametersWindow(QWidget *parent) :
QDialog(parent),
ui(new Ui::ParametersWindow)
{
ui->setupUi(this);
}
UPD: У MainWindow создал публичный метод:
void MainWindow::messageInStatusBarMainWindow(const QString &message) {
ui->statusBar->showMessage(message);
}
При нажатии на кнопку Сохранить в окне с параметрами он вызывается:
void ParametersWindow::on_save_button_clicked()
{
dynamic_cast<MainWindow *>(ParametersWindow::parent())->messageInStatusBarMainWindow("Настройки сохранены");
ParametersWindow::close();
}
Однако приложение валится при нажатии на Сохранить.
Силами комментирующих было найдено практичное решение: В классе главного окна был создан публичный метод, выводящий сообщение в statusBar:
void MainWindow::messageInStatusBarMainWindow(QString message) {
ui->statusBar->showMessage(message, 2000);
}
В методе, обрабатывающем нажатие кнопки Сохранить у модального окна этот метод вызывается, где в параметры и передаётся нужное сообщение:
void ParametersWindow::on_save_button_clicked()
{
dynamic_cast<MainWindow *>(parent())->messageInStatusBarMainWindow(tr("Настройки сохранены"));
ParametersWindow::close();
}
Надо завести флаг в диалоге, показывающий, принят ли диалог, или отклонен, и геттер для этого флага.
В showEvent
диалога устанавливаем флаг в false
При нажатии на кнопку "сохранить" устанавливаем флаг в true
, теперь окружающие классы могут понять, что диалог принят
В главном окне после вызова exec
диалога проверяем состояние флага через публичный геттер диалога и в зависимости от возвращенного значения записываем строку в статусбар.
Задача простая но не нашел адекватного решенияУ меня есть QTabWidget и на одной из вкладок будет набор QGroupBox'ов, которые пользователь должен иметь...
Как написать на VB программу которая будет выводить имя файла через аргумент? Если писать на c++, то будет выглядеть примерно так
Есть бот для ВКонтакте на c++, запущенный на Raspbian (aka Debian) linuxЕсть также две абсолютно одинаковых платы Raspberry Pi, на которых всё это хостится