QT中主页面QMainwindow点击弹出子页面QWidget

子页面sub.h

namespace Ui {
    
    
class Sub;
}

class MainWindow;
class Sub: public QWidget
{
    
    
    Q_OBJECT

public:
	 explicit Sub(MainWindow *win, QWidget *parent = 0);
     ~Sub();
private:
	MainWindow *mainwindow;

friend class MainWindow;//友类
}

子页面Sub.cpp

subWindow::subWindow(MainWindow *win,QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::subWindow)
{
    
    
    mainwindow = win;//子类中调用mainwindow实例
    ui->setupUi(this);
}

主页面 mainwindow.h

namespace Ui {
    
    
class MainWindow;
}

class MainWindow : public QMainWindow
{
    
    
    Q_OBJECT

public:
	int i;
private slots:
     void on_sub_triggered();
private:
	Sub *sub = nullptr;
friend class Sub;
};	     

主页面的槽函数

void MainWindow::on_sub_triggered()
{
    
    
    sub= new Sub(this);
    sub->show();
}

效果是,在主页面点击触发,弹出子页面

猜你喜欢

转载自blog.csdn.net/m0_49047167/article/details/118027752