c++ qt QPainter

#include "mainwindow.h"

#include <QMainWindow>
#include <QPushButton>
#include <QStatusBar>
#include <QTimer>
#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <QLabel>
#include <QLineEdit>
#include <QFormLayout>
#include <QGroupBox>
#include <QFormLayout>

#include <QCoreApplication>
#include <QDebug>
#include <QTextEdit>
#include <thread>
#include <QComboBox>
#include <QPainter>

#include <QSpinBox>
#include <QKeyEvent>

QPushButton* button1;
QHBoxLayout*  layout2;
QWidget*  window;


void handleClick()
{

    window->close();
    //  qDebug() << "Button clicked!";
    // auto  a =  layout2->takeAt(0);
    //  if(a){
    //      delete  a->widget();
    //      delete  a ;
    //       qDebug() << "delete success";

    // }
}

void  exit2(){
    window->close();
}


// Custom Widget inheriting from QWidget
class MyWidget : public QWidget {
public:
    MyWidget(QWidget *parent = nullptr) : QWidget(parent) {}

protected:
    void keyPressEvent(QKeyEvent *event) override {
        // Check if the Esc key was pressed
        if (event->key() == Qt::Key_Escape) {
            QApplication::quit();  // Quit the application
        } else {
            QWidget::keyPressEvent(event);  // Pass the event to the base class
        }
    }
    // Override the paint event to perform custom painting
    void paintEvent(QPaintEvent *event) override {
         qDebug() << "paintEvent";
        Q_UNUSED(event);

        QPainter painter(this);

        // Set pen and brush
        painter.setPen(Qt::blue);
        painter.setBrush(Qt::green);

        // Draw a rectangle

        painter.drawRect(50, 50, 200, 100);



        painter.save();
        painter.translate(500,500);

          painter.fillRect(50, 50, 200, 100, Qt::blue);


        painter.drawLine(0, 0, 0, 500);

        painter.drawText(100, 0, "you are so cute");


        QLinearGradient gradient(50, 200, 250, 300);
        gradient.setColorAt(0.0, Qt::red);
        gradient.setColorAt(1.0, Qt::yellow);
        painter.fillRect(50, 200, 200, 100, gradient);

// painter.eraseRect(60,200,180,92);




// Draw multiple points using an array of QPoint
QPoint points[] = {
    QPoint(150, 150),
    QPoint(200, 200),
    QPoint(250, 250)
};
// painter.drawPoints(points, 3); // Draw 3 points at once

// painter.drawPoint(10,0);
// painter.drawPoint(11,0);

        painter.restore();

          // painter.drawLine(0, 0, 500, 500);







        // // Draw an ellipse
        // painter.drawEllipse(150, 200, 100, 50);

        // // Draw text
        // painter.drawText(50, 300, "Hello, QPainter!");

        // // Draw a line
        // painter.drawLine(50, 400, 250, 400);
    }
};

int main(int argc, char *argv[])
{

    QApplication a(argc, argv);
    window = new MyWidget;
    window->resize(1920, 1280);  // Set initial size
    window->setWindowTitle("Qt Painter Example");
    window->show();
    return a.exec();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值