我很難理解我在QT類的實例化過程中遇到的問題,但我感覺它可能是普通的OOP事物。問題在於它只在我使用了一個指向該對象的指針後才起作用,但不能僅用對象變量本身。堆棧對象沒有被Qt識別,但堆對象確實是
在主()我創建窗口小部件的一個實例:
Board board;
board.show();
Board.h:
class Board : public QWidget
{
Q_OBJECT
public:
Board(QWidget* parent = 0);
virtual ~Board();
};
Board.cpp
Board::Board(QWidget* parent) :
QWidget(parent)
{
QGraphicsScene* boardScene = new QGraphicsScene(this);
boardScene->setSceneRect(this->rect());
QGraphicsItem* item2 = new QGraphicsPixmapItem(QPixmap("test.jpg"));
item2->setPos(100,100);
boardScene->addItem(item2);
QGraphicsView boardView (boardScene, this);
現在問題出現在最後一行。測試圖片(ITEM2)只顯示後,我改變了最後一行,以便它是一個指針:
QGraphicsView* boardView = new QGraphicsView (boardScene, this);
爲什麼沒有對象變量的工作?這是由於一些內部的QT事情還是我錯過了什麼?我也畫了boardScene的背景,我看到了顏色,所以我知道它仍然「活着」。
D'oh!我傾向於忘記構造函數是「唯一」函數,並且不存在整個對象的整個生命週期。謝謝 – problemofficer 2010-11-10 06:58:13