[英]How can I draw an ellipse using QPainter?
我想在 UI 中绘制椭圆,但我的代码不起作用。
QWidget::paintEngine: 不应再称为 QPainter::begin: Paint device returned engine == 0, type: 1
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow), pm(100,100)
{
ui->setupUi(this);
//set_form_style();
draw_ellipse();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::set_form_style(){
//setWindowFlags(Qt::FramelessWindowHint);
//setAttribute(Qt::WA_TranslucentBackground);
//ui->widget->setStyleSheet("background:transparent;");
setMouseTracking(true);
}
void MainWindow::draw_ellipse(){
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setBrush(QBrush(Qt::red, Qt::SolidPattern));
painter.drawEllipse(100, 50, 150, 150);
}
为什么不直接创建一个 svg,添加资源文件,然后在 label、图像或其他任何地方使用该 svg。 我是新手,但我认为它会完成工作,因为我以前做过同样的事情,但对你来说可能会有所不同,我不能这么确定。
问题不在于您使用QPainter
的方式,而在于您获得它的时间。
正如参考文档所说,“QPainter 的常见用途是在小部件的绘制事件中”。 因此,如果您想在主 window 中进行自定义绘画,请覆盖paintEvent
并将您的代码放在那里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.