Nagut, das geht dann so:
Die Dateien mywidget.h
undCode:#ifndef MYWIDGET_H #define MYWIDGET_H #include <QWidget> class MyWidget : public QWidget { Q_OBJECT public: explicit MyWidget(QWidget *parent = nullptr); QSize minimumSizeHint() const override; QSize sizeHint() const override; protected: void paintEvent(QPaintEvent *event) override; }; #endif // MYWIDGET_H
mywidget.cppdem Projekt hinzufügen.Code:#include "mywidget.h" #include <QPainter> #include <QPainterPath> MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { this->setEnabled(true); setBackgroundRole(QPalette::Base); setAutoFillBackground(true); this->update(); } QSize MyWidget::minimumSizeHint() const { return QSize(100, 100); } QSize MyWidget::sizeHint() const { return QSize(400, 200); } void MyWidget::paintEvent(QPaintEvent * /* event */) { QRect rect(10, 20, 80, 60); QPainterPath path; path.moveTo(20, 80); path.lineTo(20, 30); path.cubicTo(80, 0, 50, 50, 80, 80); QPainter painter(this); painter.setPen(QPen(Qt::blue,10)); for (int x = 0; x < width(); x += 100) { for (int y = 0; y < height(); y += 100) { painter.save(); painter.translate(x, y); painter.drawLine(rect.bottomLeft(), rect.topRight()); painter.restore(); } } painter.setRenderHint(QPainter::Antialiasing, false); painter.setPen(palette().dark().color()); painter.setBrush(Qt::NoBrush); painter.drawRect(QRect(0, 0, width() - 1, height() - 1)); }
Im Designer ein Widget (heisst genau so!) einfügen und Größe nach belieben anpassen. Rechtsklick->Als Platzhalter für benutzerdefinierte Klasse festlegen.
Dort QWidget als Basisklasse und MyWidget als Klassennamen angeben.
Kompilieren, fertig.







Zitieren

Lesezeichen