• 5933阅读
  • 4回复

关于显示的QLabel【已解决】 [复制链接]

上一主题 下一主题
离线liyayao
 

只看楼主 倒序阅读 楼主  发表于: 2010-06-26
我新创了一个文件,只有MainWindow;
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
      QLabel *lbl=new QLabel("Hello World");
      this->setCentralWidget(lbl);
  
}
能显示Hello World


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
      
    QLabel lbl("Hello World");
    this->setCentralWidget(&lbl);
}
不能呢
[ 此帖被liyayao在2010-07-02 15:26重新编辑 ]
离线dbzhang800

只看该作者 1楼 发表于: 2010-06-26
回 楼主(liyayao) 的帖子
随便找本C或C++的书,看其中关于变量的作用域和生存期 相关章节
离线liyayao

只看该作者 2楼 发表于: 2010-07-01
看了还是不懂啊,为什么指针的行,不指针的不行。
离线0354030w

只看该作者 3楼 发表于: 2010-07-02
        因为你用指针的时候在内存中NEW了一块区域给你的QLabel,你的那个指针变量指向那个内存区,因为你是在构造函数中声明的指针变量,构造函数完了之后指针变量就消失了,但是分配的内存还在所以可以显示。你用对象的时候,对象是个临时变量,是在栈中分配的区域,所以构造函数完成后就消失了。你把对象设置为全局变量就可以显示了!OVER!
离线liyayao

只看该作者 4楼 发表于: 2010-07-02
3Q啦,很详细的讲解
快速回复
限100 字节
 
上一个 下一个