• 4159阅读
  • 2回复

[提问]有关childAt( const QPoint & p ) const 函数的疑问 [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 楼主  发表于: 2012-04-01
关键词: QTCreatorQLabel
想请教个问题:我的窗体上有若干个Label还有一个QLCDNumber类型的电子钟
Label是可以点击的,电子钟不可以点击,我用
    QLabel *child = static_cast<QLabel*>(childAt(event->pos()));
    if (!child)
        return;
这个语句判断点击的是否是Label,发现点在电子钟上时没return掉,不知道是怎么回事儿?
离线roywillow

只看该作者 1楼 发表于: 2012-04-01
那个cast试试用qobject_cast呢?
另外你是想判断鼠标是不是点了QLabel?然后这个语句是在主窗口中调用的?是在什么事件处理函数中调用的?点击QLabel的话好parent并不会接收到这个click事件哦似乎
试试给QLabel安装eventFilter?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
只看该作者 2楼 发表于: 2012-04-02
回 1楼(roywillow) 的帖子
谢谢一楼的回答,我后来又仔细看看了看childAt( const QPoint & p ) const的定义,发现我写的代码会把点击的一切控件强制转化为QLabel类型的,后来我用
if (childAt(event->pos())->inherits("QLCDNumber"))
{
    return;
}
这个语句给解决啦~再次感谢一楼的解答。
快速回复
限100 字节
 
上一个 下一个