小编N.D*_*.D.的帖子

“QPainter::drawRects: Painter not active” 错误 C++/QT

我是 Qt 和 C++ 的初学者,我想看看如何在 Qt 中使用 QPainter 和事件,但由于执行过程中出现错误消息,我的原始代码被卡住了:

main.cpp

#include "customwidget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QScopedPointer<QWidget> widget(new customWidget());
    widget->resize(240, 120);
    widget->show();

    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

和标题:

#ifndef CUSTOMWIDGET_H
#define CUSTOMWIDGET_H

#include <QWidget>
#include <QMouseEvent>
#include <QPoint>
#include <QPainter>

class customWidget : public QWidget
{
    Q_OBJECT
public:
    explicit customWidget(QWidget *parent = 0);
    void paintEvent(QPaintEvent *);
    void mouseMoveEvent(QMouseEvent *event);
    void mousePressEvent(QMouseEvent *event);

private:
    QPoint m_mousePos;
    QRect m_r2;
signals:

    void needToRepaint();
public slots:
};

#endif // …
Run Code Online (Sandbox Code Playgroud)

c++ qt qpainter qevent

5
推荐指数
1
解决办法
2万
查看次数

当窗口管理器在 qt QML 中调整窗口大小时如何获得信号?

在 macOS 上调整大小时,我试图达到与 iTunes 的 miniPlayer 类似的效果。也就是说,检测窗口的大小调整何时完成,然后将高度更改为某个值。这是一个视觉示例:

在此处输入图片说明

问题是当窗口管理器完成调整大小(即用户释放句柄)时,QML 窗口中不存在通知我的信号。因此,如果我没有信号并在调整大小期间更改宽度或高度后立即应用我的高度更改,则只要用户没有释放手柄,窗口就会闪烁(发生双重调整大小)。

感谢您的任何输入或帮助!

c++ qt resize window qml

5
推荐指数
1
解决办法
2427
查看次数

标签 统计

c++ ×2

qt ×2

qevent ×1

qml ×1

qpainter ×1

resize ×1

window ×1