Qt 主窗口點擊按鈕 彈出另一個自定義窗口

1.問題重述

這個其實是對C++類的理解程度有一定要求。
窗口1定義爲類A,窗口2定義爲類B,問題:如何點擊窗口1中的按鈕,打開窗口2.

2.問題思考
把類理解成數據類型,把窗口理解成類的實例。
只要在類A的定義中添加類B的定義和對象,編寫適當的槽函數處理這個對象即可.

3.程序代碼
(1)頭文件

#ifndef GLOBAL_H
#define GLOBAL_H

#include <QMainWindow>//
#include "pclviewer.h"//必須引用類B的頭文件

namespace Ui {
class Global;
}

class Global : public QMainWindow
{
    Q_OBJECT

public:
    explicit Global(QWidget *parent = 0);
    ~Global();

public Q_SLOTS:
    void condButtonPressed();

private:
    Ui::Global *ui;
    PCLViewer *view;//創建類B的指針
};

#endif // GLOBAL_H

(2)源文件

#include "global.h"
#include "../build/ui_global.h"

Global::Global(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Global)    
{
    ui->setupUi(this);

    connect(ui->pushButton_cond, SIGNAL(clicked(bool)), this, SLOT(condButtonPressed()));
}

void Global::condButtonPressed()
{
    view = new PCLViewer(this) ;//將類指針實例化
    view->show();
}

Global::~Global()
{
    delete ui;
}

這個兩個很簡單的qt程序,其中PCLViewer是自定義的類,替換成你們自己的。
主要在於:
(1)引用自定義類的頭文件
(2)添加自定義類的對象指針
(3)在槽函數裏new一下這個對象

4.結果顯示
(1)主窗口
這裏寫圖片描述
(2)子窗口(點擊按鈕後顯示)
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章