文章目录
以下是一个完整的示例,展示在Qt中如何实现在一个窗口中通过点击按钮弹出一个新窗口。
步骤 1:创建新窗口类
假设你要创建一个名为 WelcomeWidget
的新窗口,首先需要选择 “编辑” -,右键项目名,在菜单中选择 “Add New…” :
然后依次选择 “Qt” - “Qt 设计师界面类” ,点击“Choose”:
然后选择 “Widget” ,点击“下一步”:
然后修改类名为“WelcomeWidget”(当然,你也可以修改成自己想要的类名),点击“下一步”:
继续点击下一步,相关的头文件 welcomewidget.h
、源文件 welcomewidget.cpp
、界面文件 welcomewidget.ui
都会自动生成:
步骤 2:设计窗口的 UI
假设你要在MainWindow
中实现点击按钮打开你刚刚添加的WelcomeWidget
:
在 Qt Designer 中,选择 “编辑” - “Forms”,打开界面文件 mainwindow.ui
,在可视化模式上进行界面设计。
为主窗口添加一个按钮(例如 pushButton
),并将其命名为 pushButton
。
步骤 3:设计响应函数
打开界面文件 mainwindow.ui
,在可视化模式上,右键点击你刚刚添加的按钮(例如 pushButton
),在右键菜单中选择**“转到槽…”:
然后,选择“clicked()”**,点击OK:
然后,在头文件 mainwindow.h
中添加一个WelcomeWidget
类的指针:
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
WelcomeWidget *WelcomeWidgetObj = NULL; // 添加一个WelcomeWidget类的指针,用于指向另一个窗口的实例化对象
// MainWindow 类的其他成员变量或成员函数
};
在源文件 mainwindow.cpp
中已经自动生成的槽函数中添加一个新窗口的实例化对象,并显示新窗口:
void MainWidget::on_pushButton_clicked()
{
// 打开图像超分辨率处理窗口
this->WelcomeWidgetObj = new WelcomeWidget(); // 创建新窗口的实例
WelcomeWidgetObj ->show(); // 显示新窗口的实例
// this->close(); // 如果希望在打开新窗口后关闭原来的窗口,可以加上这一行代码
}
然后,编译、运行项目,即可实现点击一个界面上的按钮,弹窗到另一个界面的功能。
参考资料:Qt实现页面跳转