我想做这样一个程序,用QLabel显示一幅图片,然后当鼠标点击图标某个点时,以这个点的R值和B值分别作为横坐标和纵坐标,将点(R,B)显示在右侧的坐标系里(坐标系已经建立),这里要用到一步:painter.drawPoint要在paintEvent外面使用,我将painter定义为类私有成员,运行程序总是出现:QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::drawPoints: Painter not active。如何解决这个问题呢?谢谢大家了
6 个解决方案
#1
QLabel label;
QPainter p(&label);
p.drawPoint...
是这样吧?
QPainter p(&label);
p.drawPoint...
是这样吧?
#2
啊,不好意思,我想起来自己也遇到过,好像是为了什么缓存设计成这样。
在QLabel内部声明一个数组,paintEvent函数负责把这个数组里面的图形绘制出来,当外部需要绘制时,就传入到这个数组里,然后QLabel.repaint()重绘
在QLabel内部声明一个数组,paintEvent函数负责把这个数组里面的图形绘制出来,当外部需要绘制时,就传入到这个数组里,然后QLabel.repaint()重绘
#3
QPainter只能在paintevent使用,否则会引起程序混乱。
比如你实现的是myWidget类,它继承了QWidget类。
你要重新实现paintEvent函数来实现绘图。
你用一个QPoint变量记录下鼠标的点击位置,然后再paintEvent中绘制或者显示就可以了。
比如你实现的是myWidget类,它继承了QWidget类。
你要重新实现paintEvent函数来实现绘图。
你用一个QPoint变量记录下鼠标的点击位置,然后再paintEvent中绘制或者显示就可以了。
#4
楼上,要是写了一个drawer类继承了QWidget类,可是我要在另外一个类中新建了一个widget,要使这个widget具有drawer的功能我该怎么把他们联系起来!求解……
#5
类继承和类组合的关系,
你的drawer类是继承QWidget类的,另外一个类新建widget又需要drawer类的功能,可以使用类组合。
你的drawer类是继承QWidget类的,另外一个类新建widget又需要drawer类的功能,可以使用类组合。
#6
#1
QLabel label;
QPainter p(&label);
p.drawPoint...
是这样吧?
QPainter p(&label);
p.drawPoint...
是这样吧?
#2
啊,不好意思,我想起来自己也遇到过,好像是为了什么缓存设计成这样。
在QLabel内部声明一个数组,paintEvent函数负责把这个数组里面的图形绘制出来,当外部需要绘制时,就传入到这个数组里,然后QLabel.repaint()重绘
在QLabel内部声明一个数组,paintEvent函数负责把这个数组里面的图形绘制出来,当外部需要绘制时,就传入到这个数组里,然后QLabel.repaint()重绘
#3
QPainter只能在paintevent使用,否则会引起程序混乱。
比如你实现的是myWidget类,它继承了QWidget类。
你要重新实现paintEvent函数来实现绘图。
你用一个QPoint变量记录下鼠标的点击位置,然后再paintEvent中绘制或者显示就可以了。
比如你实现的是myWidget类,它继承了QWidget类。
你要重新实现paintEvent函数来实现绘图。
你用一个QPoint变量记录下鼠标的点击位置,然后再paintEvent中绘制或者显示就可以了。
#4
楼上,要是写了一个drawer类继承了QWidget类,可是我要在另外一个类中新建了一个widget,要使这个widget具有drawer的功能我该怎么把他们联系起来!求解……
#5
类继承和类组合的关系,
你的drawer类是继承QWidget类的,另外一个类新建widget又需要drawer类的功能,可以使用类组合。
你的drawer类是继承QWidget类的,另外一个类新建widget又需要drawer类的功能,可以使用类组合。