我想在 UI 中繪制橢圓,但我的代碼不起作用。
QWidget::paintEngine: 不應再稱為 QPainter::begin: Paint device returned engine == 0, type: 1
主視窗.cpp
#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);
}
uj5u.com熱心網友回復:
問題不在于您使用 的方式QPainter,而在于您獲得它的時間。
正如參考檔案所說,“QPainter 的常見用途是在小部件的繪制事件中”。因此,如果您想在主視窗中進行自定義繪畫,請覆寫paintEvent并將您的代碼放在那里。
uj5u.com熱心網友回復:
為什么不直接創建一個 svg,添加資源檔案,然后在標簽、影像或其他任何地方使用該 svg。我是新手,但我認為它會完成作業,因為我以前做過同樣的事情,但對你來說可能會有所不同,我不能這么確定。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/420006.html
標籤:
上一篇:檔案權限問題導致plink報錯 Failed to open 21JAN.log. Try changing the --out parameter.
