以下是一个简单的示例,演示如何使用 Qt 实现多个界面之间的切换。

在本示例中,我们将创建两个界面:一个主界面和一个设置界面。在主界面中,我们将添加一个按钮,当用户单击该按钮时,将转换到设置界面。在设置界面中,我们将添加一个返回按钮,当用户单击该按钮时,将返回到主界面。

首先,我们需要为每个界面创建一个 QWidget 类。我们将称之为 MainWindow 和 SettingsWindow。 MainWindow 将包含一个 QPushButton,SettingsWindow 将包含一个 QLabel 和一个 QPushButton。

MainWindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QWidget>
#include <QPushButton>

class MainWindow : public QWidget
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);

private:
    QPushButton *m_settingsButton;
};

#endif // MAINWINDOW_H

MainWindow.cpp

#include "mainwindow.h"
#include "settingswindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QWidget(parent)
{
    m_settingsButton = new QPushButton('Settings', this);
    connect(m_settingsButton, &QPushButton::clicked, [=](){
        SettingsWindow *settings = new SettingsWindow(this);
        settings->show();
        hide();
    });
}

SettingsWindow.h

#ifndef SETTINGSWINDOW_H
#define SETTINGSWINDOW_H

#include <QWidget>
#include <QLabel>
#include <QPushButton>

class SettingsWindow : public QWidget
{
    Q_OBJECT

public:
    SettingsWindow(QWidget *parent = nullptr);

private:
    QLabel *m_label;
    QPushButton *m_backButton;
};

#endif // SETTINGSWINDOW_H

SettingsWindow.cpp

#include "settingswindow.h"
#include "mainwindow.h"

SettingsWindow::SettingsWindow(QWidget *parent)
    : QWidget(parent)
{
    m_label = new QLabel('Settings', this);
    m_backButton = new QPushButton('Back', this);
    connect(m_backButton, &QPushButton::clicked, [=](){
        MainWindow *main = qobject_cast<MainWindow*>(parent);
        main->show();
        delete this;
    });
}

在 MainWindow 的构造函数中,我们创建了一个 QPushButton,并将其添加到 MainWindow 中。我们使用 connect 函数将 QPushButton 的 clicked 信号连接到一个 lambda 函数中。在 lambda 函数中,我们创建了一个新的 SettingsWindow 对象,并将其显示出来,然后隐藏 MainWindow。

在 SettingsWindow 的构造函数中,我们创建了一个 QLabel 和一个 QPushButton,并将它们添加到 SettingsWindow 中。我们使用 connect 函数将 QPushButton 的 clicked 信号连接到一个 lambda 函数中。在 lambda 函数中,我们将 parent 对象转换为 MainWindow 指针,并使用 show 函数显示 MainWindow,然后删除 SettingsWindow。

现在我们可以将这些类添加到我们的主函数中并运行它:

#include <QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

这将创建一个 MainWindow 对象,并将其设置为应用程序的主窗口。当用户单击“Settings”按钮时,将显示一个新的 SettingsWindow,当用户单击“Back”按钮时,将返回 MainWindow。

Qt 多界面切换实现代码示例

原文地址: https://www.cveoy.top/t/topic/n0Ei 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录