мне удалось получить QPushButton, чтобы открыть новое окно при нажатии, используя следующий код (только фрагменты кода):Qt открывается диалоговое окно, в том же самом окне
AppDialog::AppDialog(QWidget *parent)
: QDialog(parent)
{
QPushButton *button3 = new QPushButton(tr("Apps"));
QHBoxLayout *hLayout = new QHBoxLayout;
hLayout->addWidget(button3);
setLayout(hLayout);
}
MainWindow::MainWindow()
{
mainMenu = new MainMenu;
setCentralWidget(mainMenu);
app = 0;
readSettings();
}
void MainWindow::AppMenu()
{
app = new AppDialog(this);
app->show();
}
Откроется в новом окне с Кнопка «Приложение» в нем. Может ли кто-нибудь сообщить мне, если это возможно, и как открыть диалоговое окно нового приложения в том же окне, что и исходное главное меню? Он должен охватывать все окно и выглядеть как обычное окно с новым меню на нем. В идеале после этого я мог бы добавить кнопку «назад». Я предполагаю, что это похоже на создание интерфейса «мастера», который много используется для мастеров установки и тому подобного.
Bryce
РЕДАКТИРОВАТЬ
Это исходный код для реализации QStackedWidgets()
MainMenu::MainMenu(QWidget *parent)
: QDialog(parent)
{
QStackedLayout *stackedLayout = new QStackedLayout;
AppDialog *app = new AppDialog;
progWidget *program = new ProgWidget;
QStackedWidget *stackedWidget = new QStackedWidget;
stackedWidget->addWidget(app);
stackedWidget->addWidget(program);
stackedWidget->setCurrentIndex(0);
QVBoxLayout *vLayout = new QVBoxLayout;
vLayout->addWidget(stackedWidget);
setLayout(vLayout);
}
Где бы я поставил сигналы и слоты для изменения индекса? Отображение того, что виджеты приложений и программ - это всего лишь несколько виджетов с некоторыми QPushButtons. Я могу заставить их отображать отдельно, но не знаю, как их изменить.
Это похоже на точный ответ на мою проблему. Теперь, как я могу это реализовать. Пример в программировании на C++ GUI с Qt4, а также в документации не распространяется далеко за рамки базовой реализации. Как добавить изображения или тест или кнопки в каждый QStackedWidget? – bryce
@bryce: Если вы используете дизайнера, это довольно просто. Если вы добавляете через код напрямую, вам нужно сделать виджет для каждой страницы сложного виджета. Добавьте объекты на соответствующую страницу, как если бы вы добавляли их в главный виджет. Затем добавьте каждую страницу в сложный виджет. Обратите внимание, что вам нужен только один сложный виджет с несколькими страницами в виджетах. –
Ок, спасибо, я прямо кодирую это, так что нет дизайнера. Попробуй свои предложения и сообщите, как это происходит, это выглядит очень многообещающе. – bryce