for (int i = 0; i < n1; ++i) {//先画竖线 net.pointStart=QPoint(p1.x()+i*widt,p1.y()); net.pointEnd=QPoint(p1.x()+i*widt,p2.y()); res.append(net); }不显示画完的线
时间: 2024-01-13 09:02:15 浏览: 101
QPointDemo.rar 配套本人博文《Qt基础类01-坐标类QPoint》的测试验证例程
这段代码只是将竖线的起点和终点坐标存储在了res对象中,并没有进行实际的绘制操作。如果想要在界面上显示这些竖线,需要将存储在res对象中的坐标取出来,通过绘图函数进行绘制。
在Qt框架中,可以通过继承QWidget类来实现自定义的绘图控件,并在其绘图事件中进行绘制操作。具体来说,可以在paintEvent函数中使用QPainter对象对每条竖线进行绘制,示例代码如下:
```c++
void CustomWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.setPen(QPen(Qt::black, 1)); // 设置画笔颜色和宽度
for (int i = 0; i < res.size(); ++i) {
painter.drawLine(res[i].pointStart, res[i].pointEnd); // 绘制一条线段
}
}
```
其中CustomWidget是自定义的绘图控件类,res是存储竖线坐标的对象。绘制完成后,需要将该控件添加到界面中才能看到绘制结果。
阅读全文