主页 > 开源代码  > 

QT--对话框的切换

QT--对话框的切换

文章目录 前言一、主窗口ui二、创建子窗口三、步骤1.主界面------>子页面2.子界面------>主页面 四、总结


前言

之前我们学了qt中最重要的东西–信号和槽 我们现在实现这样一个demo,程序启动后弹出主界面,点击主界面的按钮弹出子窗口,隐藏主界面,点击子窗口界面的按钮,隐藏子界面,显示主窗口。 当我们需要一个界面通知另一个界面时,可以采用信号和槽机制。通过链接信号和槽,当一个界面发送信号时,链接该信号的槽会被响应,从而达到消息传递的目的。

一、主窗口ui

二、创建子窗口

我们右击项目弹出菜单选择创建Qt设计师界面类,选择Dialog without Buttons 然后创建子窗口ui

三、步骤 1.主界面------>子页面

我们给主页面这个pushbutton加个信号和槽函数 下方代码在mainwindow.h中 加入信号

private slots: void on_pushButton_clicked();

我们这个子页面我们将其指针对象写入mainwindow.h的类对象中,这样在mainwindow.cpp的构造函数中,直接初始化即可 下方代码在mainwindow.h中

public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); childDialog * _childdialog;

下方代码在mainwindow中初始化类对象并且connect连接信号与槽

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); _childdialog=new childDialog(this); connect(ui->pushButton,&QPushButton::clicked,this,&MainWindow::on_pushButton_clicked); }

下方代码在mainwindow.cpp中实现这个槽函数on_pushButton_clicked()

this->hide(); _childdialog->show();

现在完成了主页面向子页面的转换!!!!

2.子界面------>主页面

我们给子页面这个pushbutton加个信号和槽函数

public slots: void on_pushButton_clicked1();

下方代码在childdialog.cpp中实现这个槽函数on_pushButton_clicked1()

void childDialog::on_pushButton_clicked1() { this->hide(); emit returnmain(); }

这个emit是释放信号的意思,我们这里通过触发这个槽函数,然后子页面直接隐藏,然后释放这个returnmain的信号,我们在主页面的中写一个connect连接这个信号触发一个主页面的show即可 下方代码是子页面的信号与槽的连接

connect(ui->pushButton,&QPushButton::clicked,this,&childDialog::on_pushButton_clicked1);

下方代码是returnmain信号与主页面函数的连接与实现

connect(_childdialog,&childDialog::returnmain,this,&MainWindow::returnMainWindow); void MainWindow::returnMainWindow() { this->show(); } 四、总结

我们在创建子页面的时候是通过childdialog生成的一个指针对象_childialog存放到主页面的类对象中,在主页面的转换中通过多长调用即可,不需要关闭后生成一个框,然后再关闭再生成,这样会导致自愿的浪费 并且通过信号与函数的连接,可以让代码更简洁

标签:

QT--对话框的切换由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“QT--对话框的切换

上一篇
个人shell脚本分享

下一篇
springMvc