【发布时间】:2010-05-30 14:10:50
【问题描述】:
我已经弄清楚如何使用 QPainter 来绘制矩形。现在我想要一个绘图区域,如果用户单击,则在鼠标指针所在的位置绘制一个 1x1 矩形。为此,我假设我需要一个支持clicked() 信号的透明 Qt 小部件。
如何制作这样一个透明的小部件?或者还有什么我可以使用的吗?也许我只能使用窗口的clicked() 信号?
【问题讨论】:
我已经弄清楚如何使用 QPainter 来绘制矩形。现在我想要一个绘图区域,如果用户单击,则在鼠标指针所在的位置绘制一个 1x1 矩形。为此,我假设我需要一个支持clicked() 信号的透明 Qt 小部件。
如何制作这样一个透明的小部件?或者还有什么我可以使用的吗?也许我只能使用窗口的clicked() 信号?
【问题讨论】:
你真的不需要透明小部件吗?
你所要做的就是实施
protected:
void mousePressEvent(QMouseEvent *event);
为您的小部件绘制矩形。
看看 Qt 附带的scribble example。
【讨论】:
drawingPad.cpp 和drawingPad.h 的文件,其中包含DrawingPad 的类定义。我将此添加到 MainWindow 构造函数:drawingPad = new DrawingPad; setCentralWidget(drawingPad); 然后我收到此错误:“drawingPad 未在此范围内声明”。可能的原因是什么?我确实包括了drawingPad.h。 Qt Designer 有导入自定义小部件的特殊功能吗?
DrawingPad *drawingPad = new DrawingPad;
undefined reference to 或类似的东西。可能你忘了链接到 qt 或者忘了实现一个方法……