• 4612阅读
  • 4回复

[提问]高手请进!!!!! [复制链接]

上一主题 下一主题
离线神风无影
 
只看楼主 倒序阅读 楼主  发表于: 2011-04-21
— 本帖被 XChinux 从 C/C++基础 移动到本区(2011-04-21) —
QToolBar *toolBar=this->addToolBar("toolbar");
QComboBox box(this);
QStringList list;
list<<"32"<<"24"<<"16"<<"14"<<"12"<<"8"<<"4"<<"2";
box.addItems(list);
toolBar->addWidget(&box);
C++学的不是很好,这段代码运行没有问题但是界面显示不出来那个组合框,只有换成 QComboBox *box=new QComboBox 才可以显示出来,这是为什么呢?我写的代码不也为QComboBox 分配了空间吗?应该初始化了吧
离线dbzhang800

只看该作者 1楼 发表于: 2011-04-21
因为

{
...
QComboBox box(this);
....
}

你可以认为等价于

{
...
QComboBox *box=new QComboBox(this);
...
delete box;
}
离线cahwxy

只看该作者 2楼 发表于: 2011-04-21
这个涉及到对象的生存周期问题,找一本书看看就知道了
离线hessian
只看该作者 3楼 发表于: 2011-04-22
简单点说你应该把box声明为class的一个属性;

楼上的高手们是这个意思吧?
我的新浪微博:http://weibo.com/sseh
离线神风无影
只看该作者 4楼 发表于: 2011-04-22
谢了谢了,把box改成全局变量就好了!
快速回复
限100 字节
 
上一个 下一个