#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();
}
c++ qt QPainter
最新推荐文章于 2024-09-11 22:33:26 发布