代码图
创建QWidget类
1.创建QWidget类:QWidget w
2.构造子函数自定义widget类继承QWidget类:
MyWidget w;
创建第二个widget窗口
①右击添加新文件:
②选择 c++ -> c++ class
③ 命名子窗口并且选择base class为QWidget
④直接下一步完成即可
如何设置两个窗口相互间转换
①主窗口头文件include子窗口头文件:#include "subwidget.h"
②设置父窗口私有子窗口成员:SubWidget w;
③主窗口头文件声明自定义槽函数:void changeWin();
④主窗口函数中设置连接信号和槽:connect(&b3,&QPushButton::released,this,&MainWidget::changeWin);
⑤定义槽函数:
void MainWidget::changeWin()
{
//子窗口显示
w.show();
//本窗口隐藏
this->hide();
}//至此已实现按钮控制子窗口显示父窗口隐藏
⑥为了让子窗口响应父窗口,需要在子窗口里面声明一个信号:void mySignal();
⑦子窗口声明里面定义一个常函数让其发射信号:void sendSlot();
其定义为:void SubWidget::sendSlot()
{
emit mySignal();
}
⑧子窗口里面定义信号和槽连接:connect(&b,&QPushButton::click,this,&SubWidget::sendSlot());
⑨在父窗口里面连接子窗口的信号:connect(&w,&SubWidget::mySignal,this,&MainWidget::dealSub);
⑩定义父窗口处理的槽函数:
void MainWidget::dealSub()
{
w.hide();
this->show();
}
总而言之就是,①先在主窗口声明子窗口成员,主窗口通过按钮的信号响应一个自定义切换窗口的槽函数②至于子窗口没有主窗口的成员,则利用:子窗口通过按钮响应一个自定义发射信号的槽函数,主窗口通过感知子窗口发射的信号,响应一个自定义的子窗口切换到主窗口的函数
使用及解释
1.设置windows窗口名字:w.setWindowTitle("主要看气质");
2.设置QWidget窗口隐藏:window.hide();
3.设置QWidget窗口大小函数:window.resize(400,300)