为了实现在弹窗中添加一个按钮并跳转到另一个界面,你可以按照以下步骤进行:
创建两个QWidget或QMainWindow类来表示两个不同的界面。假设第一个界面是MainWindow,第二个界面是SecondWindow。
在MainWindow中创建一个QPushButton对象,并将其与clicked信号连接起来。当用户单击该按钮时,执行的lambda函数会创建一个QMessageBox并显示出来。此时需要在QMessageBox中添加一个新的QPushButton对象。
将新添加的QPushButton对象与另一个lambda函数连接起来,以便在用户单击该按钮时切换到另一个界面。你可以使用QWidget::hide()方法隐藏当前界面,并使用QWidget::show()方法显示另一个界面。
以下是示例代码:
#include <QApplication>
#include <QMessageBox>
#include <QPushButton>
#include "mainwindow.h"
#include "secondwindow.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建第一个界面
MainWindow mainWindow;
// 创建第二个界面
SecondWindow secondWindow;
// 创建按钮,并将其与clicked信号连接起来
QPushButton button("点击我", &mainWindow);
QObject::connect(&button, &QPushButton::clicked, [&]() {
QMessageBox msgBox;
msgBox.setText("Hello World!");
// 添加新的按钮,并将其与另一个lambda函数连接起来
QPushButton* newButton = msgBox.addButton("跳转到下一页", QMessageBox::ActionRole);
QObject::connect(newButton, &QPushButton::clicked, [&]() {
mainWindow.hide();
secondWindow.show();
});
msgBox.exec();
});
button.show();
return app.exec();
}
在上面的示例代码中,我们首先创建了两个界面:MainWindow和SecondWindow。然后,我们在MainWindow中创建了一个QPushButton对象,并将其与clicked信号连接起来。当用户单击该按钮时,执行的lambda函数会创建一个QMessageBox并显示出来。接着,在QMessageBox中添加了一个新的QPushButton对象,并将其与另一个lambda函数连接起来。此lambda函数使用QWidget::hide()方法隐藏当前界面(即MainWindow),并使用QWidget::show()方法显示另一个界面(即SecondWindow)。