• 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. }

  • 相关阅读:
    【Java】阿拉伯数字转汉字(完全符合中文阅读习惯)(支持所有整数类型)
    ChatGPT - 高效编写Prompt
    .NET 使用自带 DI 批量注入服务(Service)和 后台服务(BackgroundService)
    flutter系列之:UI layout简介
    【Deep Learning 框架】Python中各类框架解释
    结构体运算符重载
    Windows开机密码破解
    PyTorch Geometric (PyG) 安装教程
    【双十二预售】9.9元就能学《人工智能导论》!打卡赢红包,还有B站大会员等你领
    LeetCode 2760. 最长奇偶子数组:模拟(使用一个变量记录状态)
  • 原文地址:https://blog.csdn.net/txwtech/article/details/127606111