• 01.QT初学--两个窗口相互切换


      1 //qqwidget.cpp
      2 #include "qqwidget.h"
      3 #include "ui_qqwidget.h"
      4 
      5 qqwidget::qqwidget(QWidget *parent) :
      6     QWidget(parent),
      7     ui(new Ui::qqwidget)
      8 {
      9     ui->setupUi(this);
     10 
     11     setWindowTitle("老大");
     12     b.setParent(this);
     13     b.setText("change");
     14 
     15     connect(&b,&QPushButton::released,this,&qqwidget::myslot);
     16 
     17     //处理子窗口信号
     18     connect(&sub1,&sub::mysignal,this,&qqwidget::myslot2);
     19 
     20 }
     21 
     22 qqwidget::~qqwidget()
     23 {
     24     delete ui;
     25 }
     26 void qqwidget::myslot()
     27 {
     28     this->hide();
     29     sub1.show();
     30 }
     31 void qqwidget::myslot2()
     32 {
     33     this->show();
     34     sub1.hide();
     35 }
     36 
     37 
     38 //sub.cpp
     39 #include "sub.h"
     40 
     41 sub::sub(QWidget *parent) : QWidget(parent)
     42 {
     43     b1.setParent(this);
     44     b1.setText("切换至主窗口");
     45 
     46 
     47     connect(&b1,&QPushButton::released,this,&sub::mysubslot);
     48 }
     49 
     50 void sub::mysubslot()
     51 {
     52     emit mysignal();
     53 }
     54 
     55 //qqwidget.h
     56 #ifndef QQWIDGET_H
     57 #define QQWIDGET_H
     58 
     59 #include <QWidget>
     60 #include <QPushButton>
     61 #include "sub.h"
     62 
     63 namespace Ui {
     64 class qqwidget;
     65 }
     66 
     67 class qqwidget : public QWidget
     68 {
     69     Q_OBJECT
     70 
     71 public:
     72     explicit qqwidget(QWidget *parent = nullptr);
     73     ~qqwidget();
     74     QPushButton b;
     75     void myslot();
     76     void myslot2();
     77     sub sub1;
     78 
     79 private:
     80     Ui::qqwidget *ui;
     81 };
     82 
     83 #endif // QQWIDGET_H
     84 
     85 
     86 //sub.h
     87 #ifndef SUB_H
     88 #define SUB_H
     89 
     90 #include <QWidget>
     91 #include <QPushButton>
     92 
     93 class sub : public QWidget
     94 {
     95     Q_OBJECT
     96 public:
     97     explicit sub(QWidget *parent = nullptr);
     98     QPushButton b1;
     99     void mysubslot();
    100 signals:
    101     void mysignal();
    102 
    103 public slots:
    104 };
    105 
    106 #endif // SUB_H
    View Code
    1. sub窗口调用qqwidget主窗口时,在sub.h中sub类中自定义了信号函数,sub中将按钮与该信号函数connect。
      同时,在qqwidget主窗口中将该信号函数与某slot函数connect,从而执行操作。
      注:主窗口hide并不是消失,使用自定义信号函数connect后即可触发相应slot函数


      

  • 相关阅读:
    矩阵Frobenius范数、核范数与奇异值的关系
    范数与正则化
    对偶上升法,增光拉格朗日乘子法,交替方向乘子法
    拉格朗日函数,拉格朗日对偶函数,KKT条件
    relint, 相对内点集的理解
    转:Mac 弹出App can’t be opened because Apple cannot check it for malicious software的解决方法
    数组分块1
    fzu 2275 Game [第八届福建省大学生程序设计竞赛 Problem D]
    fzu 2275 Game [第八届福建省大学生程序设计竞赛 Problem D]
    Plug-in CodeForces
  • 原文地址:https://www.cnblogs.com/xuhongfei0021/p/10791016.html
Copyright © 2020-2023  润新知