QT按钮按下小工具
QT Button Press On Widget
使用Qt是一个全新的概念。我有一个自定义的小部件,我需要接收按钮按下,然后从按钮按下找到鼠标在小部件上的位置。不幸的是,目前mousePressEvent(QMouseEvent*me)似乎无法正常工作。所以我想知道我到底做错了什么,代码如下;
头文件:
#ifndef TILESHEETPANE_H
#define TILESHEETPANE_H
#include <QWidget>
#include "global.h"
class tileSheetPane : public QWidget
{
Q_OBJECT
public:
tileSheetPane(int scnWidth, Global *global, QWidget *parent);
protected:
void mousePressEvent(QMouseEvent *me);
void paintEvent(QPaintEvent *);
private:
Global *tempGlobal;
QPoint cursorPos;
int tileSheetPaneWidth, tileSheetPaneHeight, renderOffsetY;
};
#endif // TILESHEETPANE_H
Src文件:
#include <QPainter>
#include <QMouseEvent>
#include "tilesheetpane.h"
//Constructor & Paint Event ..
void tileSheetPane::mousePressEvent(QMouseEvent *me)
{
cursorPos = me->pos();
}
CursorPos的值只是在其初始化的0处。因此,任何帮助都将不胜感激:),正如我所说,使用QT的新手可能在两天前才开始,所以我仍在努力解决问题:D。
编辑;因此,在尝试了评论中的一些建议后,似乎什么都不起作用。我确实设置了鼠标跟踪(true),但仍然没有。我按照建议在函数中插入了一个qDebug调用,似乎从来没有调用过mousePressEvent。
void tileSheetPane::mousePressEvent(QMouseEvent *me)
{
cursorPos = me->pos();
//These Never Show Up!
qDebug() << me->pos().x();
qDebug() << me->pos().y();
}
也许有什么东西在阻止或阻止这个调用,但我不确定它可能是什么?
所以我无法让鼠标点击正常工作,所以在谷歌上搜索后,我最终找到了以下视频;http://www.youtube.com/watch?v=E29KiTRYpjk
由于我的小部件很小,所以我基本上只是重新做了整个事情。但这是值得的。本质上,我删除了我的旧文件,创建了一个Qt设计器表单,在我的mainWindow.ui文件中添加了一个新的小部件,并将其升级为使用"tileSheetPane",就这样。
试试这个:
qDebug() << me->pos()->x();
在QWidget子类的构造函数中添加setMouseTracking(true);
如果没有这个,你的小工具将无法跟踪鼠标的位置。
MouseTracking
属性文档
相关文章:
- 问:如何使用C++中的按钮从窗口打开窗口
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- QML按钮点击功能执行顺序
- 当用户超过按钮点击限制时报告
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- 在clang++预处理器中确定gcc工具链版本
- 函数计算用户按下按钮的频率
- 热键/按钮,根据需要进行编译,但不运行(在F5和Ctrl+Shift+B之间)
- QT中的自动排放工具按钮
- 单击工具按钮后,在GTKMM工具栏中更改工具按钮图标
- 如何在橘子酱工具的UI中添加按钮
- Win32 工具栏下拉按钮消息处理
- QT按钮按下小工具
- 以编程方式从 MFC 工具栏中完全删除按钮
- 如何以编程方式将工具按钮移动到右侧工具栏区域
- 如何将自定义小部件添加为工具按钮的弹出菜单
- 如何在Qt小工具中删除带有插槽的按钮
- 在按钮文本中带下划线快捷键的工具栏
- 从IE工具栏按钮调用BHO
- Qt复选框/工具按钮,带有自定义/不同的检查/未选中的图标