我在QT中创建了两个窗口。当在第一个窗口上单击按钮时,程序将用户发送到第二个窗口。如果用户单击第二个窗口上的按钮,他/她是否可以返回第一个窗口?如果是这样,代码将如何?
答案 0 :(得分:1)
以下示例显示了所要求的内容:
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QHBoxLayout>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w1;
w1.setWindowTitle("Form 1");
QHBoxLayout f1;
w1.setLayout(&f1);
QPushButton nextButton("next");
w1.layout()->addWidget(&nextButton);
w1.show();
QWidget w2;
QHBoxLayout f2;
w2.setLayout(&f2);
QPushButton prevButton("prev");
w2.layout()->addWidget(&prevButton);
w2.setWindowTitle("Form 2");
// w2.show();
w2.move(w1.geometry().right()+30, w1.geometry().top());
QObject::connect(&nextButton, SIGNAL(clicked()), &w2, SLOT(show()));
QObject::connect(&nextButton, SIGNAL(clicked()), &w1, SLOT(hide()));
QObject::connect(&prevButton, SIGNAL(clicked()), &w1, SLOT(show()));
QObject::connect(&prevButton, SIGNAL(clicked()), &w2, SLOT(hide()));
return a.exec();
}
http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum
另外请务必阅读有关QWidget属性的内容,例如:
Qt::WA_QuitOnClose
使Qt在具有该属性的最后一个窗口小部件时退出应用程序 set已接受closeEvent()。可以使用。修改此行为 QApplication :: quitOnLastWindowClosed属性。默认情况下这个 为Qt :: Window类型的所有小部件设置了属性。
答案 1 :(得分:0)
看看QWizard
。它内置了所有这些功能。
或者你可以制作一个标签形式。
http://doc.qt.io/qt-5/qwizard.html#details
QWizard
类为向导提供了一个框架。向导(在Mac OS X上也称为助手)是一种特殊类型 输入对话框,由一系列页面组成。向导的目的 是指导用户逐步完成一个过程。巫师是 对于用户可能会发现困难的复杂或不常见的任务非常有用 学习。
QWizard
继承QDialog
并代表向导。每个页面都是QWizardPage
(一个QWidget
子类)。要创建自己的向导,您可以 直接使用这些类,或者您可以将它们子类化以获得更多控制。
希望有所帮助。