标题:一個傳遞指針參數的疑問
作者:佐進0307
日期:2018-09-02 21:14
内容:
一个小程序需要用layout->addWidget()的方式动态添加widget,最开始用如下代码,widget却死活不显示:
QPushButton b;
b.setText("Hello from b");
layout->addWidget(&b);
经过半天时间的摸索,终于发现了一种能行的方法:
QPushButton *pb = new QPushButton;
pb->setText("Hello from pb");
layout->addWidget(pb);
根据我(菜鸟一个)对C++理解,这两种调用方式传递指针参数本质上不应该是一样的吗?
为什么一种方式能行,另一种方式行不通呢?
这里是用来对比的代码:
QVBoxLayout *layout = new QVBoxLayout(ui->tab);
QPushButton *pb = new QPushButton;
pb->setText("Hello from pb");
QPushButton b;
b.setText("Hello from b");
layout->addWidget(pb);
layout->addWidget(&b);
运行截图:
可以看到其中只有用new创建出来的widget添加成功了。
#1 [yysr 09-02 21:45]
QPushButton b;
定义了一个局部变量,函数结束,局部变量生命周期结束了
#2 回 yysr 的帖子 [佐進0307 09-02 22:18]
yysr:QPushButton b;
定义了一个局部变量,函数结束,局部变量生命周期结束了 (2018-09-02 21:45)
太感謝了,自己實在是太菜了。。