• 7680阅读
  • 7回复

请教: 如何实现判断鼠标单击位置处有无对象 [复制链接]

上一主题 下一主题
离线honest581
 
只看楼主 倒序阅读 楼主  发表于: 2007-09-03
— 本帖被 XChinux 执行加亮操作(2007-09-11) —
我想在QT上模拟WINDOWS下的连连看小游戏,在Widget上布置了一些 位图(QPixmap),请问各位,我在调用鼠标事件(QMousePressEvent()时候,如何才能检测到,在该位置,是否有位图存在?最好能给出简短代码,多谢了
[ 此贴被XChinux在2007-09-11 15:14重新编辑 ]
离线fanbinnet

只看该作者 1楼 发表于: 2007-09-04
你用的是QT3吗?


virtual void mousePressEvent ( QMouseEvent * event );
Qt4中的函数,event 中包含是否左键,和˜鼠标的坐标,然后和你的图标坐标比较就好了。
离线honest581
只看该作者 2楼 发表于: 2007-09-04
谢谢,你没有完全弄明白我的意思,我是说,怎么才能在某个地方单击鼠标位置,判断该点有无pixmap,不是先知道pixmap位置再和mousePressEvent发生位置比较啊!!!!!!!!!!!!!
离线fanbinnet

只看该作者 3楼 发表于: 2007-09-05
你难到无法得到pixmap 的位置??如果知道pixmap的位置,知道鼠标按下的位置,你难道不能通过与所有pixmap的位置相比较判断哪个 pixmap 上有 鼠标按下,或是没有任何pixmap上有鼠标被按下。
离线turkeysy

只看该作者 4楼 发表于: 2007-09-05
qt的文档里有类似的例子,自己可以去查看下
离线shenqitong

只看该作者 5楼 发表于: 2007-09-11
老兄 建议你把PIXMAP添加到按钮当中做这个东西,我这有个判断PIXMAP坐标的东东弄的相当郁闷,一个两个PIXMAP到好说,关键是很多都需要判断,抽象出来的话花费的时间也很长,不妨换成事件判断
离线XChinux

只看该作者 6楼 发表于: 2007-09-11
看看QApplication::widgetAt(const QPooint &)
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线sx0102
只看该作者 7楼 发表于: 2007-10-24
这个建议在QGraphicsView中做,把pixmap放在QGraphicsPixmapItem中,并且放入数据作为标志,就可以区别不同的PIXMAP了,但又不会显示这些数据,可以通过鼠标位置获得位置处的ITEM,通过强制转换得到需要类的对象,取出数据,就知道你点的是什么图了.
快速回复
限100 字节
 
上一个 下一个