QGraphics绘制图形总结

本文总结了QGraphics系列的学习经验,重点介绍了QGraphicsItem、QGraphicsView和QGraphicsScene的使用。QGraphicsView可以设置为透明,通过设置styleSheet实现。此外,讨论了QGraphicsItem的boundingRect方法在重绘过程中的作用,强调了坐标转换和重绘区域的重要性。
摘要由CSDN通过智能技术生成

         最近学习了下QGraphics系列,主要包括三个类: QGraphicsItem QGraphicsView 和 QGraphicsScene. 有关这3者的介绍请参阅Qt Assistant.下面对本人在使用过程中遇到的一些问题进行总结和回顾.

        [1 ] QgraphicsView是可以设置成透明的.使用时,设置其styleSheet为透明如可

        QString styleSheet = QObject::tr("background:transparent");
        this->setStyleSheet(styleSheet);

        下面这个是效果图.后面的图片是用Qt绘制的,因为我要在前端再做一些数据处理,因此设置view和背景图像大小一致,而用scene去添加QGraphicsItem

       

       

 

  [2] QtGraphicsItem里面提供了一个方法boundingRect,其原型如下

     

virtual QRectF
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,下面是一个使用 Qt 绘制图形的程序的示例。首先,需要在程序中包含 Qt 的 GUI 类库: ``` #include <QApplication> #include <QGraphicsView> #include <QGraphicsScene> ``` 然后,可以在 `main` 函数中创建一个 `QApplication` 对象和一个 `QGraphicsView` 对象: ``` int main(int argc, char *argv[]) { QApplication a(argc, argv); QGraphicsView view; view.show(); return a.exec(); } ``` 接下来,可以在 `QGraphicsView` 对象中创建一个 `QGraphicsScene` 对象,并使用 `QGraphicsScene` 的各种方法来绘制图形。例如,可以使用 `addLine` 方法绘制直线,使用 `addEllipse` 方法绘制椭圆,使用 `addRect` 方法绘制矩形等等。 示例代码: ``` int main(int argc, char *argv[]) { QApplication a(argc, argv); QGraphicsView view; // 创建 QGraphicsScene 对象 QGraphicsScene scene; // 绘制直线 scene.addLine(QLineF(0, 0, 100, 100)); // 绘制椭圆 scene.addEllipse(QRectF(0, 0, 100, 50)); // 绘制矩形 scene.addRect(QRectF(0, 0, 50, 50)); view.setScene(&scene); view.show(); return a.exec(); } ``` 希望这能帮到你! ### 回答2: 用Qt绘制图形的程序可以实现各种图形绘制,包括线条、矩形、椭圆、圆、多边形等等。 首先,需要在Qt中创建一个窗口,可以使用QMainWindow或QWidget作为主窗口。 接下来,可以通过继承QWidget或QMainWindow来创建一个自定义的绘图窗口类。在该类中,可以重写绘图事件函数paintEvent(QPaintEvent *event)。 在paintEvent函数中,可以创建一个QPainter对象,该对象可以用来进行各种绘图操作。通过调用QPainter的绘制函数,可以绘制线条、矩形、椭圆、圆、多边形等图形。例如,可以使用QPainter的drawLine函数来绘制线条,使用drawRect函数来绘制矩形,使用drawEllipse函数来绘制椭圆或圆。 绘图完成后,通过调用QWidget或QMainWindow的update函数,可以触发窗口的重绘,从而实现图形的显示。 在主函数中,创建一个窗口对象并显示出来即可。 总结起来,用Qt绘制图形的程序主要包括三个步骤:创建绘图窗口、在绘图窗口中重写paintEvent函数进行绘图、在主函数中创建并显示绘图窗口对象。 ### 回答3: 用Qt绘制图形的程序主要涉及到Qt的绘图类和函数的使用。 首先,在Qt的窗口类中创建一个继承自QWidget的自定义窗口类,重写其paintEvent(QPaintEvent *event)函数,在该函数中进行绘图操作。 在paintEvent函数中,我们可以使用QPainter对象进行绘图。可以调用QPainter的各种绘图函数,如drawLine、drawRect、drawEllipse等来绘制不同形状的图形。可以设置QPainter的画笔和画刷属性来控制图形的颜色、线宽、填充等效果。 此外,还可以使用QPainter的坐标变换函数来进行坐标系的转换、平移、旋转等操作,以实现更加复杂的绘图效果。 在自定义窗口类中,可以重写鼠标事件函数,如mousePressEvent、mouseMoveEvent、mouseReleaseEvent等,来处理鼠标的各种操作事件,如单击、拖动等,以响应用户交互,并实现一些交互式的绘图功能。 最后,在main函数中创建自定义窗口对象,并设置其窗口大小和标题等属性,然后显示该窗口即可。 以上是一个简单的用Qt绘制图形的程序的基本思路,具体的实现细节和功能可以根据具体需求来进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值