QT中实现页面跳转(主页面跳转至子页面 详细)

今天也在加班吗 2024-06-21 11:05:05 阅读 73

1.先创建一个新页面

在编辑页面随便哪个文件夹上右击选择“添加新文件”;选择QT设计器界面类,界面模板可自行选择,下一步输入类详情中相关信息,下一步选择添加到的项目中,点击“完成”即可实现创建。

 2. 在主页面头文件中声明一个信号,意思为当满足特定条件时,该信号会被触发;

signals: void showmain();

3.在主页面设置控件,如我的示例是通过在主页面点击按键跳转至子子页面;

操作如下:

点击界面文件中的主页面.ui进入设计页面

选择Push Button并拖到界面上

右击拖到界面上的该按钮控件,右击选择转到槽

 选择信号种类,我这里选择clicked()  即单机触发

 

在槽函数中填入以下,即发射信号的意思。

emit showmain();

       

   4. 子页面设置接收信号后执行的槽函数,在子页面的头文件中添加声明:

        

private slots: void showMyNewUi();

        右击该函数选择重构,选择在.cpp中添加定义,即实现该函数

        该函数中添加: this->show();   即显示新页面。

        该方式为非模态,意为:展示子页面时,还可以对主页面或其他进行操作。

this->show();

如果想要以模态形式实现,即当子页面展示时无法操作主页面,需要将子页面关闭后才可操作主页面,可把上述this->show();替换成this->exec();即可实现

this->exec();

5. 创建对象并把主页面发出的信号和展示子页面的槽函数连接起来;

        在main.cpp中创建子页面对象,并使用connect函数完成连接操作;

        

myNewUi w2; QObject::connect(&w, SIGNAL(showmain()), &w2, SLOT(showMyNewUi()));

上述中 w 为我的主页面, w2则为我的子页面。 完成后运行则可实现单机主页面设置的控件则跳转显示子页面



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。