• 5993阅读
  • 3回复

label跟随鼠标移动的问题 [复制链接]

上一主题 下一主题
离线jingping1231
 
只看楼主 倒序阅读 楼主  发表于: 2012-02-17
关键词: Qlabel鼠标移动
QLabel* label=new QLabel(mianwidow);
void mainwidow::mouseMoveEvent(QMouseEvent* m)
{
label->setFixedSize(50,50);
label->setText(tr("test!");
label->setGeometry(m->pos().x(),m->pos().y(),50,50);
}
请问各位大侠,这样写有什么错误吗,为什么label无法显示出来,更别说跟随鼠标移动了。
离线xuweistudy
只看该作者 1楼 发表于: 2012-02-17
在mouseMoveEvent 里label->show();
离线jdwx

只看该作者 2楼 发表于: 2012-02-17
回 楼主(jingping1231) 的帖子
如果是全手写代码,就加上setMouseTracking(true);
要是用UI设计器,中间还有一个centralWidget,挺不好办。
还有:label->setGeometry(m->pos().x(),m->pos().y(),50,50);
太复杂了,label->move(m->pos);就可以了。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线feifeishu

只看该作者 3楼 发表于: 2012-06-08
基本上的他们都说到了,但是还存在一个别的问题,就是如果label所在的窗口中别的控件,例如别的Qlabel或者QPushButton之类的,也必须要把这些控件也加上setMouseTracking(true);
例如: QPushButton btn1 = new QPushButton(this);
             btn1->setMouseTracking(1);
否则当鼠标经过这些控件时,你的label也是无法正常显示的;
PS:当然前提是这些控件得是label所在窗口的子控件
快速回复
限100 字节
 
上一个 下一个