1
新幀我需要打開一個新的QMainWindow當我在button.I點擊會明白爲什麼它的工作原理與一個指針,並且不與基準工作:顯示使用Qt C++
觸發一個新的插槽窗口下面,就應該打開兩個窗口,但只有創建的窗口與新的運營商顯示出來:
MyWin win1(this);
win1.show();
MyWin *win2 = new MyWin(this);
win2->show();
以下是MyWin.h和MyWin.ccp
#ifndef MyWin_H
#define MyWin_H
#include <QMainWindow>
namespace Ui {
class FrmManipolo1;
}
Class MyWin : public QMainWindow
Q_OBJECT
public:
explicit MyWin(QMainWindow *parent = 0);
~MyWin();
private:
Ui::MyWin *ui;
};
#endif
MyWin.cpp
include "MyWin.h"
include "ui_MyWin.h"
MyWin::MyWin(QMainWindow *parent) :
QMainWindow(parent),
ui(new Ui::MyWin)
{
ui->setupUi(this);
}
MyWin::~MyWin()
{
delete ui;
}
所以你試圖打開一個窗口,你沒有創建/實例化('新'),你想知道爲什麼?順便說一下指針*是一個引用。 – Rafalon
爲什麼我沒有得到一個空指針異常?我認爲用第一個表示法會自動創建一個對象。因此沒有用MyWin win1創建對象(this);?我認爲這兩種方法都可以工作,但是第一個對象被放入堆棧,後者放在堆中 –
它被創建,但是當'win1'變量超出範圍時它被銷燬。 – thuga