Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Qt designer form
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
vvsh
привет всем.
у меня есть окно MainWindow, в конструкторе я пишу
SettingForm *setting = new SettingForm();
setting->setWindowTitle("Настройки");
this->setCentralWidget(setting);

после этого, после нажатии кнопки в SettingForm, я вызываю close, но при этом виджет закрывается, и окно остается пустым. как вернуть виджет главного окна?
спасибо
Litkevich Yuriy
Цитата(vvsh @ 18.6.2011, 14:12) *
после этого, после нажатии кнопки в SettingForm, я вызываю close, но при этом виджет закрывается, и окно остается пустым. как вернуть виджет главного окна?
ничего не понял, куда вернуть виджет главного окна?
haiflive
5 раз прочёл и не понял..
Ты хочешь очистить MainWindow или просто закрыть программу, или окно?.
Очень интересно посмотреть класс SettingForm, ты же сам его писал?. да и вобще лучше код в целом.
vvsh
Цитата(Litkevich Yuriy @ 18.6.2011, 11:59) *
Цитата(vvsh @ 18.6.2011, 14:12) *
после этого, после нажатии кнопки в SettingForm, я вызываю close, но при этом виджет закрывается, и окно остается пустым. как вернуть виджет главного окна?
ничего не понял, куда вернуть виджет главного окна?


вот вызывается форма из цетрального окна
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    SettingForm *setting = new SettingForm();
    setting->setWindowTitle("Настройки");
    this->setCentralWidget(setting);
}


вот метод finished в settingform
void SettingForm::finished(QNetworkReply *reply)
{
if(reply->error() == QNetworkReply::NoError)
{
close();
}

}

после того, как вызывается finished, окно mainwindow остается пустым, т.к. я закрыл форму, которая была центральным виджетом. вот как вернуть центральный виджет окна mainwindow?
Litkevich Yuriy
Цитата(vvsh @ 18.6.2011, 18:25) *
вот вызывается форма из цетрального окна
не вызывается, а устанавливается в качестве центрального виджета

Цитата(vvsh @ 18.6.2011, 18:25) *
после того, как вызывается finished, окно mainwindow остается пустым, т.к. я закрыл форму, которая была центральным виджетом. вот как вернуть центральный виджет окна mainwindow?
ответ очевиден - не закрывать
vvsh
Цитата(Litkevich Yuriy @ 18.6.2011, 15:35) *
Цитата(vvsh @ 18.6.2011, 18:25) *
вот вызывается форма из цетрального окна
не вызывается, а устанавливается в качестве центрального виджета

Цитата(vvsh @ 18.6.2011, 18:25) *
после того, как вызывается finished, окно mainwindow остается пустым, т.к. я закрыл форму, которая была центральным виджетом. вот как вернуть центральный виджет окна mainwindow?
ответ очевиден - не закрывать


а как тогда его скрыть что вернулось центральное окно?
vvsh
и еще вопрос. если в редакторе создать меню главного окна, то можно как нибудь в нем создать подпункты, а не под меню?
vvsh
и как можно стилизовать QTabWidget, верхние кнопки получаются с градиентом, как его убрать?
как сделать его на все окно?
Litkevich Yuriy
Цитата(vvsh @ 18.6.2011, 18:48) *
а как тогда его скрыть что вернулось центральное окно?
ты на каком-то странном языке говоришь. что ты подразумеваешь под "центральным окном"?
vvsh
Цитата(Litkevich Yuriy @ 19.6.2011, 6:55) *
Цитата(vvsh @ 18.6.2011, 18:48) *
а как тогда его скрыть что вернулось центральное окно?
ты на каком-то странном языке говоришь. что ты подразумеваешь под "центральным окном"?


есть же какой-то центральный виджет по умолчанию, который установлен при открытии приложения?
sidsukana
Может стоит сделать "Настройки" в модальном окне, а главное не трогать?
Litkevich Yuriy
Цитата(vvsh @ 20.6.2011, 5:10) *
есть же какой-то центральный виджет по умолчанию, который установлен при открытии приложения?
только тот который ты сам поставил:
Цитата(vvsh @ 18.6.2011, 18:25) *
this->setCentralWidget(setting);
vvsh
Цитата(Litkevich Yuriy @ 22.6.2011, 13:08) *
Цитата(vvsh @ 20.6.2011, 5:10) *
есть же какой-то центральный виджет по умолчанию, который установлен при открытии приложения?
только тот который ты сам поставил:
Цитата(vvsh @ 18.6.2011, 18:25) *
this->setCentralWidget(setting);



а как можно вернуть в то состояние, которое было до того, как я вызвал this->setCentralWidget(setting);?
Litkevich Yuriy
нужно установить какой-нибудь виджет в качестве центрального.

И я согласен с sidsukana.
vvsh
Цитата(sidsukana @ 20.6.2011, 12:23) *
Может стоит сделать "Настройки" в модальном окне, а главное не трогать?


а что использовать в качестве модального окна?
Litkevich Yuriy
Цитата(vvsh @ 22.6.2011, 22:11) *
а что использовать в качестве модального окна?
1) можно прямо твой виджет. Установив ему соответствующие флажки (Qt::Dialog).
2) Можно сделать наследника от QDialog и поместить в него тот код, что у тебя в виджете настроек.

П.С.
Придумай адекватное название теме, текущее ни о чём не говорит.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.