关键词:
【中文标题】鼠标悬停在 QGraphicsPixmapItem 上后 Qt 显示工具提示【英文标题】:Qt Display tooltip after mouse hover on QGraphicsPixmapItem 【发布时间】:2014-05-10 19:04:47 【问题描述】:我正在使用 QGraphicView 来显示包含 QGraphicsPixmapItems 的游戏地图。我需要在鼠标悬停在 QGraphicsPixmapItem 时显示工具提示。
为了保存 QGraphicsPixmapItem 位置,我使用 MazeItem:
#ifndef MAZEITEM_H
#define MAZEITEM_H
#include <QPoint>
#include <QGraphicsItem>
class MazeItem
private:
QPoint myPosition;
QString myToolTip;
public:
MazeItem();
QPoint position() const;
QString toolTip() const;
void setToolTip(const QString &toolTip);
void setPosition(const QPoint &position);
QPoint getPosition();
QGraphicsPixmapItem * pixmap;
;
#endif // MAZEITEM_H
我有小部件类来显示游戏地图:
#include <QWidget>
#include <QtGui>
#include <QGraphicsView>
#include <QToolTip>
#include "mazeitem.h"
class MazeGUI : public QWidget
Q_OBJECT
private:
QGraphicsView * graphicsView;
QGraphicsScene * graphicsScene;
QString sceneString;
int imageSize;
QList<MazeItem> mazeItems;
void addItem(int x, int y, QPixmap picture);
bool event(QEvent *event);
int itemAt(const QPoint &pos);
public:
explicit MazeGUI(QWidget *parent = 0);
void setScene(QString sceneString);
signals:
public slots:
void redraw();
;
#endif // MAZEGUI_H
在构造函数中我设置了鼠标跟踪。
MazeGUI::MazeGUI(QWidget *parent) :
QWidget(parent)
setMouseTracking(true);
...
这就是我添加新迷宫项目的方式。
void MazeGUI::addItem(int x, int y, QPixmap picture)
MazeItem mazeItem;
mazeItem.setPosition(QPoint(x, y));
mazeItem.setToolTip("text");
mazeItem.pixmap = this->graphicsScene->addPixmap(picture);
mazeItem.pixmap->setPos(y, x);
mazeItems.append(mazeItem);
这是我从 Qt 教程中获得的,
bool MazeGUI::event(QEvent *event)
if (event->type() == QEvent::ToolTip)
// HERE - it never goes here!!
QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event);
int index = itemAt(helpEvent->pos());
if (index != -1)
QToolTip::showText(helpEvent->globalPos(), mazeItems[index].toolTip());
else
QToolTip::hideText();
event->ignore();
return true;
return QWidget::event(event);
int MazeGUI::itemAt(const QPoint &pos)
for (int i=0; i < mazeItems.size(); ++i)
if (mazeItems[i].getPosition() == pos)
return i;
return -1;
【问题讨论】:
那有什么问题? 问题是tooltip没有出现,甚至连启动都打不开。 【参考方案1】:在错误的对象上添加了工具提示:
代替:
mazeItem.setToolTip("text");
应该是:
mazeItem.pixmap->setToolTip("text");
【讨论】:
如何使qgraphicspixmapitem对象不可被选取
...这样的提问没有什么意义不要多想,想多了累 参考技术Bqgraphicspixmapitem.setFlag(QGraphicsItem.ItemIsSelectable,False)#设置False后不可选取qgraphicspixmapitem.setFlag(QGraphicsItem.ItemIsMovable,False)#设置False后不可移动 查看详情
Jquery 鼠标悬停在 Div 类上
】Jquery鼠标悬停在Div类上【英文标题】:JquerymouseHoveronDivclass【发布时间】:2021-11-2817:44:26【问题描述】:我想添加鼠标悬停效果。它是一个具有相同div标签的产品部分,如果我将鼠标悬停在图像类上,我只想显示当前图像的标... 查看详情
快速鼠标悬停/鼠标悬停的完整悬停动画持续时间?
】快速鼠标悬停/鼠标悬停的完整悬停动画持续时间?【英文标题】:Fullhoveranimationdurationwithquickmouseover/mouseout?【发布时间】:2015-09-2501:17:05【问题描述】:我对图像有悬停效果。如果您将鼠标悬停在它上面并用鼠标停留在那里... 查看详情
jQuery Time 鼠标悬停在元素上(悬停)
】jQueryTime鼠标悬停在元素上(悬停)【英文标题】:jQueryTimemouseisoverelement(Hover)【发布时间】:2011-06-0204:16:42【问题描述】:我在几个链接上附加了一个悬停事件,当你越过它时会出现一个框。有没有一种方法可以让悬停事件仅... 查看详情
当鼠标悬停(悬停)在对象上时,鼠标光标应该改变(three.js)
】当鼠标悬停(悬停)在对象上时,鼠标光标应该改变(three.js)【英文标题】:Whenmouseover(hover)onobjectthemousecursorshouldchange(three.js)【发布时间】:2017-08-1411:45:47【问题描述】:我在场景中添加了一个球体和平面几何体,当单击平... 查看详情
悬停、鼠标悬停和鼠标移出
】悬停、鼠标悬停和鼠标移出【英文标题】:Hover,mouseoverandmouseout【发布时间】:2011-05-2616:33:45【问题描述】:我正在学习和使用jQuery,并希望为某些元素显示一个删除图标。我有一个外部主div,其中包含元素的包装器数量。在... 查看详情
当鼠标不再悬停在悬停动画上时,悬停动画会立即停止吗?
】当鼠标不再悬停在悬停动画上时,悬停动画会立即停止吗?【英文标题】:Hoveranimationstopsimmediatelywhenthemouseisnolongerhoveringoverit?【发布时间】:2014-09-2205:36:25【问题描述】:我有一个带有摆动动画的图像,当鼠标悬停在它上面... 查看详情
在鼠标悬停时更改背景颜色并在鼠标悬停后将其删除
】在鼠标悬停时更改背景颜色并在鼠标悬停后将其删除【英文标题】:Changebackgroundcoloronmouseoverandremoveitaftermouseout【发布时间】:2011-04-1401:25:09【问题描述】:我有表是forum。我的jQuery代码:<scripttype="text/javascript">$(document).re... 查看详情
在jQuery中,在鼠标悬停时添加类并在鼠标悬停时将其删除的最佳方法是啥?
】在jQuery中,在鼠标悬停时添加类并在鼠标悬停时将其删除的最佳方法是啥?【英文标题】:InjQuerywhat\'sthebestwaytoaddaclassonmouseoverandremoveitonmouseout?在jQuery中,在鼠标悬停时添加类并在鼠标悬停时将其删除的最佳方法是什么?【发... 查看详情
如何在鼠标悬停在图像上时暂停动画
】如何在鼠标悬停在图像上时暂停动画【英文标题】:Howtopausetheanimationonmousehoveronimage【发布时间】:2018-05-1822:13:46【问题描述】:我需要帮助来停止鼠标悬停动画并继续鼠标悬停。请参阅下面的url以查看代码。谢谢http://jsfiddle.... 查看详情
鼠标悬停播放声音
】鼠标悬停播放声音【英文标题】:Playsoundonmouseover【发布时间】:2014-04-0712:11:17【问题描述】:我将在鼠标悬停时在链接上添加声音,然后在鼠标移出时停止,当鼠标再次悬停时,声音将开始播放。我即将把它放在链接上,但... 查看详情
如何使悬停信息气泡出现在 WPF 中的鼠标悬停上?
】如何使悬停信息气泡出现在WPF中的鼠标悬停上?【英文标题】:HowcanImakeahoverinfobubbleappearonmouseoverinWPF?【发布时间】:2010-12-2222:39:48【问题描述】:我想让文本气泡在鼠标悬停在TextBlock上时出现。以下代码是我能得到的最接近... 查看详情
在鼠标悬停时将文本悬停在帖子图像上
】在鼠标悬停时将文本悬停在帖子图像上【英文标题】:Hovertextoverpostimageonmouseover【发布时间】:2015-08-0619:36:07【问题描述】:我正在使用Genesis框架在wordpress中重新设计博客。这可能是有史以来最简单的事情,但我找不到一个... 查看详情
如何将鼠标悬停在子元素上而不悬停在 CSS 中的父元素上?
】如何将鼠标悬停在子元素上而不悬停在CSS中的父元素上?【英文标题】:HowdoIhoveroverachildelementwithouthoveringovertheparentinCSS?【发布时间】:2017-04-1909:59:51【问题描述】:是否可以将鼠标悬停在嵌套的子元素上而不触发父元素上的... 查看详情
悬停保持活动状态,直到鼠标悬停在另一个可悬停对象上
】悬停保持活动状态,直到鼠标悬停在另一个可悬停对象上【英文标题】:Hoverstaysactive,untilmouseoveranotherhoverableobject【发布时间】:2013-05-1909:19:51【问题描述】:假设我有三个盒子。每个都可以悬停,当悬停时,它们的背景颜色... 查看详情
将鼠标悬停在完整播放影片剪辑
】将鼠标悬停在完整播放影片剪辑【英文标题】:Playingamoviecliptoitsfullwithmouseover【发布时间】:2017-05-0615:08:44【问题描述】:在AdobeFlash和ActionScript3.0中,我在按钮中有一个影片剪辑。我想在鼠标悬停时播放整个影片剪辑。... 查看详情
悬停在鼠标离开后仍然存在的 CSS 样式
】悬停在鼠标离开后仍然存在的CSS样式【英文标题】:HoverCSSstylingthatpersistsaftermouseaway【发布时间】:2016-02-1805:27:46【问题描述】:我有一个HTMLul横幅,它有两个li子栏,在悬停时显示。但是,如果您将鼠标移开或悬停在另一个... 查看详情
将鼠标悬停在按钮上时仅更改部分文本
】将鼠标悬停在按钮上时仅更改部分文本【英文标题】:onlypartialtextchangeonhoveroverbutton【发布时间】:2013-09-1811:06:24【问题描述】:当鼠标悬停在按钮上时,我希望按钮中文本的字体颜色变为白色且不带下划线。目前,文本颜色... 查看详情