gpt4 book ai didi

c++ - 子类化 QPixmap

转载 作者:行者123 更新时间:2023-11-28 00:09:41 25 4
gpt4 key购买 nike

我想在 Qt 中的 QPixmap 上获取鼠标按下事件。我尝试使用以下方法对其进行子类化:

class CustomPixmap : public QPixmap
{
Q_OBJECT

public:
CustomPixmap(QPaintDevice *parent = NULL);
~CustomPixmap() {};

protected:
void mousePressEvent(QMouseEvent *event);

};

但是因为报错编译不通过

./moc_output/moc_customPixmap.cpp:52:8: error: no member named
'staticMetaObject' in 'QPixmap'; did you mean simply 'staticMetaObject'?

取出 Q_OBJECT 可以正常编译,但不会调用 mousePressEvent。如何正确地子类化 QPixmap 以获得鼠标按下事件?

最佳答案

在 QPixmap 上接收鼠标事件没有意义,因为 QPixmap 不是 QWidget,因此 QPixmap 永远不会直接出现在您的 Qt GUI 中。

屏幕上的是某种绘制和显示QPixmap 的QWidget。这可能是一个 QLabel 或 QWidget,其 paintEvent(QPaintEvent *) 方法已被覆盖以调用 painter.drawPixmap() 并将您的 QPixmap 作为参数。覆盖 mousePressEvent() 的明智位置是在该小部件的子类中,而不是通过子类化 QPixmap。

关于c++ - 子类化 QPixmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33791820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com