• 6194阅读
  • 7回复

[讨论]如何动态new widget [复制链接]

上一主题 下一主题
离线biosxjj
 

只看楼主 倒序阅读 楼主  发表于: 2011-03-21
一个子widget 在一个父widget 中

但是子widget 会改变外观。就需要new 新的的子widget  ,手动删除子widget 就会报错

如果子窗体的的父指针弄为0 的话 可以delete 但是 就没有了父子关系
离线biosxjj

只看该作者 1楼 发表于: 2011-03-21
ding.........
离线dbzhang800

只看该作者 2楼 发表于: 2011-03-21
0.  用简短的代码来说明你的问题
1. 改变外观不需要new新的子widget吧?
2. 手动delete子widget也不该出错吧?
离线hrx1989

只看该作者 3楼 发表于: 2011-03-21
手动的delete不行吗?
改变外观是要改变大小还是显示??
离线wxj120bw

只看该作者 4楼 发表于: 2011-03-22
用代码来表示你的想法吧
离线biosxjj

只看该作者 5楼 发表于: 2011-03-22
if(m_listwidget!=NULL)
        delete m_listwidget;

    m_listwidget=new ContentListWidget(m_devicelist,count);
    
    m_listwidget->move(10,10);
    m_listwidget->show();
父窗口..............
子窗口
for(int i=0;i<m_devicelist.length();i++)
        {

        DeviceWidget* widget=new DeviceWidget(m_devicelist.at(i)->devicename.GetChars(),"uri",
   m_devicelist.at(i)->URN.GetChars(),this);
        widget->move(10,80*i);
        }

离线biosxjj

只看该作者 6楼 发表于: 2011-03-22
顶一下偶怕
离线wxj120bw

只看该作者 7楼 发表于: 2011-03-22
引用第5楼biosxjj于2011-03-22 09:10发表的  :
if(m_listwidget!=NULL)
        delete m_listwidget;
    m_listwidget=new ContentListWidget(m_devicelist,count);
    
.......

不太明白楼主的意思 m_listwidget被释放了,然后在新建,然后以m_devicelist为父类,在新建对象,好像没有关联的呀?跟动态new widget也没关联
快速回复
限100 字节
 
上一个 下一个