Qt 重绘事件调用的问题

jackzhangxy 2012-11-13 01:06:42
下面是原代码:

void Ch_Find_Lvl::Make_Button()
{
for(int i =0; i <1; i++)
{
QLabel label(this);
label.setText("Err");
label.move(50,50);
label.show();

Genre_Button *lvl_button = new Genre_Button(this, "file_name");
lvl_button->move(10, 100);
lvl_button->show();
}
}



会在主界面调用一个信号执行这个槽函数.但是执行了没有任何的效果.

尝试过 update,repaint. 可是都没有效果.还是和最先构造的时候一模一样.

请问需要调用什么样的函数才能实现重绘.

70分!全给了!
...全文
355 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这样显示是不行的 放在循环里 label button show()一下马上就消失了~ 而且for循环只是执行了1次
  • 打赏
  • 举报
回复
完整代码。。。label这都不是关键啊。。。你把你的lvlbutton换成qpushbutton看看哇。
乔巴好萌 2012-11-14
  • 打赏
  • 举报
回复
有没有在Genre_Button的构造函数里写入 Genre_Button::Genre_Button(QWidget *parent=0) :QToolButton(parent) { }
  • 打赏
  • 举报
回复
引用 3 楼 jackzhangxy 的回复:
Label不是关键。。。
Genre_Button这个你是怎么实现的 如果用QPushButton呢?
jackzhangxy 2012-11-13
  • 打赏
  • 举报
回复
Label不是关键。。。
  • 打赏
  • 举报
回复
Label分配在栈上。函数执行完退出弹栈销毁,。。所以没效果咯。 分配在堆上就好了。
jdwx 2012-11-13
  • 打赏
  • 举报
回复

    QLabel *label = 0;
    QPushButton *button = 0;
    for(int i=0; i<5; i++){
        label = new QLabel(tr("label%1").arg(i), this);
        button = new QPushButton(tr("button%1").arg(i), this);
        label->move(i * 100 + 5, 35);
        button->move(i* 100 + 5, 60);
        label->show();
        button->show();
    }

16,229

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧