• QT绘制图像QImage-QPixmap-QBitmap-QPicture


    QT绘制图像QImage-QPixmap-QBitmap-QPicture

     

    1. #ifndef MAINWINDOW10_8_H
    2. #define MAINWINDOW10_8_H
    3. #include
    4. QT_BEGIN_NAMESPACE
    5. namespace Ui { class MainWindow10_8; }
    6. QT_END_NAMESPACE
    7. class MainWindow10_8 : public QMainWindow
    8. {
    9. Q_OBJECT
    10. public:
    11. MainWindow10_8(QWidget *parent = nullptr);
    12. ~MainWindow10_8();
    13. private:
    14. Ui::MainWindow10_8 *ui;
    15. protected:
    16. void paintEvent(QPaintEvent *event);
    17. };
    18. #endif // MAINWINDOW10_8_H
    1. #include "mainwindow10_8.h"
    2. #include "./ui_mainwindow10_8.h"
    3. #include
    4. #include
    5. #include
    6. #include
    7. #include
    8. //绘制图像
    9. MainWindow10_8::MainWindow10_8(QWidget *parent)
    10. : QMainWindow(parent)
    11. , ui(new Ui::MainWindow10_8)
    12. {
    13. ui->setupUi(this);
    14. }
    15. MainWindow10_8::~MainWindow10_8()
    16. {
    17. delete ui;
    18. }
    19. void MainWindow10_8::paintEvent(QPaintEvent *event)
    20. {
    21. QPainter painter2(this);
    22. // painter2.setPen(Qt::blue);
    23. // painter2.drawText(0,0,60,60,Qt::AlignCenter,tr("QImage"));
    24. //绘制image
    25. QImage image2(100,100,QImage::Format_ARGB32);
    26. painter2.begin(&image2);
    27. painter2.setPen(QPen(Qt::green,3));
    28. painter2.setBrush(Qt::yellow);
    29. painter2.drawRect(10,10,60,60);
    30. painter2.drawText(10,10,60,60,Qt::AlignCenter,tr("QImage"));
    31. painter2.setBrush(QColor(0,0,0,100));
    32. painter2.drawRect(50,50,40,40);
    33. // painter2.save();
    34. painter2.end();
    35. //绘制pixmap
    36. QPixmap pix(100,100);
    37. painter2.begin(&pix);
    38. painter2.setPen(QPen(Qt::green,3));
    39. painter2.setBrush(Qt::yellow);
    40. // painter2.translate(180,0);
    41. painter2.drawRect(10,10,60,60);
    42. painter2.drawText(10,10,60,60,Qt::AlignCenter,tr("QPixmap"));
    43. painter2.setBrush(QColor(0,0,0,100));
    44. painter2.drawRect(50,50,40,40);
    45. painter2.end();
    46. QBitmap bit(100,100);
    47. painter2.begin(&bit);
    48. painter2.setPen(QPen(Qt::green,3));
    49. painter2.setBrush(Qt::yellow);
    50. // painter2.restore();
    51. // painter2.translate(0,100);
    52. painter2.drawRect(10,10,60,60);
    53. painter2.drawText(10,10,60,60,Qt::AlignCenter,tr("QBitmap"));
    54. painter2.setBrush(QColor(0,0,0,100));
    55. painter2.drawRect(50,50,40,40);
    56. painter2.end();
    57. QPicture picture;
    58. painter2.begin(&picture);
    59. painter2.setPen(QPen(Qt::green,3));
    60. painter2.setBrush(Qt::yellow);
    61. //painter2.restore();
    62. // painter2.translate(180,0);
    63. painter2.drawRect(10,10,60,60);
    64. painter2.drawText(10,10,60,60,Qt::AlignCenter,tr("QPicture"));
    65. painter2.setBrush(QColor(0,0,0,100));
    66. painter2.drawRect(50,50,40,40);
    67. painter2.end();
    68. //在widget部件上进行绘制
    69. painter2.begin(this);
    70. painter2.drawImage(50,20,image2);
    71. painter2.drawPixmap(200,20,pix);
    72. painter2.drawPixmap(50,170,bit);
    73. painter2.drawPicture(200,170,picture);
    74. }

  • 相关阅读:
    一篇文章搞懂MySQL的order by
    【算法】选择排序
    基于JavaSwing开发企业员工管理系统 毕业设计 课程设计 大作业
    记录一次锁的优化
    NFTScan | 10.30~11.05 NFT 市场热点汇总
    Java并发(1)--线程,进程,以及缓存
    CSP-S2022 一轮游
    5G网络整体架构
    虹科案例 | LIN/CAN总线汽车零部件测试方案
    解决Elasticsearch查询默认最大值返回10000
  • 原文地址:https://blog.csdn.net/txwtech/article/details/127606111