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