QT初学之父子窗体

来源:互联网 发布:华南理工大学 知乎 编辑:程序博客网 时间:2024/06/05 15:08

最近学了一下QT,正在享受信号与槽机制的优点。

话不多说,先来展示一下我写的代码:

本程序实现父窗体点击按钮,子窗体出现,子窗体点击按钮,父窗体出现。

mywidget1.h: 父窗体

#ifndef MYWIDGET_H#define MYWIDGET_H#include <QWidget>#include <QPushButton>#include "mywidget1.h"class MyWidget : public QWidget{    Q_OBJECTpublic:    MyWidget(QWidget *parent = 0);    ~MyWidget();    void Solo();    void ChangWin();    void dealSub();private:    QPushButton b1;//按钮对象    QPushButton* b2;    QPushButton b3;    mywidget1 w;};#endif // MYWIDGET_H

mywidget.cpp:

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent)    : QWidget(parent){    setWindowTitle("老大");    //this->setWindowTile("老大");    b1.setParent(this);    b1.setText("你好");    b2=new QPushButton(this);    b2->setText("123");    b2->move(100,100);    //connect(&b1,&QPushButton::pressed,this,&MyWidget::close);    //connect(b2,&QPushButton::released,&b1,&MyWidget::hide);    b3.setParent(this);    b3.setText("切换到子窗口");    b3.move(300,300);    //w.show();//显示子窗体    connect(&b3,&QPushButton::released,this,&MyWidget::ChangWin);    //处理子窗口返回主窗口    connect(&w,&mywidget1:: mySignal,this,&MyWidget::dealSub);    resize(400,500);}void MyWidget::Solo(){    b2->setText("哈哈");}void MyWidget::ChangWin(){    w.show();//子窗口显示    this->hide();//本窗口显示}void MyWidget::dealSub(){    w.hide();//子窗口关闭    this->show();//本窗口显示}MyWidget::~MyWidget(){}


mywidget1.h  子窗体

#ifndef MYWIDGET1_H#define MYWIDGET1_H#include <QWidget>#include <QPushButton>class mywidget1 : public QWidget{    Q_OBJECTpublic:    explicit mywidget1(QWidget *parent = 0);    ~mywidget1();    void sendSlot();signals:    mySignal();//信号public slots:private:    QPushButton b;};#endif // MYWIDGET1_H


mywidget1.cpp:

#include "mywidget1.h"mywidget1::mywidget1(QWidget *parent) : QWidget(parent){    this->setWindowTitle("小弟");    b.setParent(this);    b.setText("返回主窗体");    resize(400,500);    connect(&b,&QPushButton::clicked,this,&mywidget1::sendSlot);}void mywidget1::sendSlot(){    emit mySignal();//使用信号}mywidget1::~mywidget1(){}


main.cpp:

#include "mywidget.h"#include <QApplication>int main(int argc, char *argv[]){    QApplication a(argc, argv);    MyWidget w;    w.show();    return a.exec();}

程序运行结果:





点击那个按钮就可以看到效果。

今天就写这么多,有时间了详细写一篇关于QT最基础的分析。


3 0
原创粉丝点击