- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
操作系统::win_xp_sp3
Qt::4.6
是否可以在 QRect 中使用 QMouseEvent?我有父小部件,里面是一些带有文本“状态未更改”的 QLabel。
此外,在父部件内部是从 QRect 派生的 MyRect。
现在我只想在这个 MyRect 中执行 MouseEvent。例如,如果我对 MyRect 进行操作,则需要更改父小部件中的文本。
例如:
class MyRect : public QRect {
public:
MyRect(int x, int y, int w, int h, ParentWidget* parent)
: QRect(x,y,w,h)
{
itsParent = parent;
}
~MyRect() {}
protected:
void mouseMoveEvent(QMouseEvent* event)
private:
ParentWidget* itsParent
};
void MyRect::mouseMoveEvent(QMouseEvent* event)
{
if(event->buttons() == Qt::LeftButton)
{
itsparent->label->setText("status changed");
}
}
什么都没发生
问题::是否可以像这样使用 QMouseEvent(仅在 QRect 上)?
最佳答案
QRect 既不是 QObject 也不是 QWidget,因此它不接收事件。它只是描述一个矩形的四个数字(从中推导出来没有意义)。您可以在小部件的鼠标事件处理程序中检查一个点是否为给定的矩形。喜欢:
void MyLabel::mouseMoveEvent( QMouseEvent* e ) {
if ( !rect.contains( e->pos() ) )
return;
//... handle mouse move
}
子类化的替代方法是 using an event filter .
关于c++ - QRect 中的 QMouseEvent 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4397656/
在另一个问题中,您告诉我使用 QStateMachine。 我是 Qt 的新手,这是我第一次使用对象,所以我犯了很多逻辑错误,所以使用 QStateMachine 是个大问题...... 这是唯一的方
编辑和一些 self 批评我尝试了两种给定的解决方案,它们都解决了我的问题,因此我感谢你们!我将透明解决方案标记为已接受,因为我认为当我只有一个子小部件时这是最简单的实现,但我希望与其他初学者分享一些
我是 Qt 的新手,我创建了一个简单的应用程序,该应用程序在自定义 QGraphicsScene 中初始化多个自定义 QGraphicsItems。每个项目都使用随机起始位置和取决于项目位置的权重值进
操作系统::win_xp_sp3 Qt::4.6 是否可以在 QRect 中使用 QMouseEvent?我有父小部件,里面是一些带有文本“状态未更改”的 QLabel。 此外,在父部件内部是从 QR
我正在尝试在 Qt 5.9 中处理来自 M3 触摸屏的 QTouchEvent。我用Qt Finger Print example它在 Windows 7 上工作正常,但在 Ubuntu 16.04
QGLWidget 是否可以传播其鼠标事件? 我目前有一个 QGlWidget 作为我主窗口的子窗口,但我似乎无法处理在它的框架上发生的鼠标事件。 也许我犯了一个根本性的错误,但是 qglwidet
我想移动 QGraphicsScene,而不是移动整个小部件(这会由于小部件移动超出限制而导致一些图形故障)。 这就是我尝试做的: def mousePressEvent(self, event):
我在 Qt 中编程,在我编写的事件处理程序之间: void PaintedTextBrowser::mouseMoveEvent(QMouseEvent *ev) { ... QPoi
我在带有触摸屏的小型 ARM 嵌入式 Linux 设备上使用 Qt 4.8.3。我用 tslib 配置了我的触摸屏并对其进行了校准,因此/etc/中有一个 pointercal 文件。我的触摸事件的位
'我目前在尝试编译这个程序时遇到问题。该程序应该在 GUI QWidget 上显示鼠标的坐标错误在mainwindow.cpp文件的第6行' //header #ifndef MAINWINDOW_H
我是一名优秀的程序员,十分优秀!