是否可以从qt的表格2转换为表格1?

时间:2015-03-25 23:19:07

标签: qt

我在QT中创建了两个窗口。当在第一个窗口上单击按钮时,程序将用户发送到第二个窗口。如果用户单击第二个窗口上的按钮,他/她是否可以返回第一个窗口?如果是这样,代码将如何?

2 个答案:

答案 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子类)。要创建自己的向导,您可以   直接使用这些类,或者您可以将它们子类化以获得更多控制。

希望有所帮助。