• 5956阅读
  • 8回复

怎么动态画出自定义widget??(解决) [复制链接]

上一主题 下一主题
离线bondsman
 
只看楼主 倒序阅读 楼主  发表于: 2010-06-20
在一个Dialog按下一个按钮后的代码:
QPushButton * btn = new QPushButton(QString("x"),this);
    btn->setGeometry(QRect(30,30,30,30));
    btn->show();
    //this->update();
    /**/
    GridWidget * grid = new GridWidget(this);
    .........
    grid->setGeometry(QRect(100,30,500,500));
    grid->show();
    this->update();

btn能够正常在原Dialog中显示,而grid成了一个Dialog跳出来了。grid是从QWidget继承的。
[ 此帖被bondsman在2010-07-12 17:00重新编辑 ]
离线bondsman
只看该作者 1楼 发表于: 2010-06-20
功能自己改成GRID直接在Dialog提供的区域里面画就实现了,但是还是感觉很奇怪。
上面一样的代码怎么会:btn能够正常在原Dialog中显示,而grid成了一个Dialog跳出来了。grid是从QWidget继承的
兄弟姐妹们指点下哈。
离线bondsman
只看该作者 2楼 发表于: 2010-06-20
自己顶一下先。
离线bondsman
只看该作者 3楼 发表于: 2010-06-21
再顶,大家看看widget有可能是什么地方写错会导致这种问题
离线xtfllbl

只看该作者 4楼 发表于: 2010-06-21
grid继承了qwidget的话,show出来当然是一个对话框,如果你要在原有界面内显示,请将grid设置到现有的layout,这样就会在原有界面内显示,而不是用show,更不用update,一切在构造函数里就完成了。
上海欢迎您
离线bondsman
只看该作者 5楼 发表于: 2010-06-21
大班可能误会我的意思了,不能在dialog初始化进行设置,需要某种情况下进行绘制
现在已经调好了,show还是必须要调用的。
离线0354030w

只看该作者 6楼 发表于: 2010-06-22
就是版主说的!
离线bondsman
只看该作者 7楼 发表于: 2010-06-22
不清楚了,版主的方法应该是适合初始化时的情况,我的不用show是画不出来的。
离线0354030w

只看该作者 8楼 发表于: 2010-06-22
你可以看一下demo里面Widget下wigly的列子!
快速回复
限100 字节
 
上一个 下一个