您好,登錄后才能下訂單哦!
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QLinearGradient> #include <QRadialGradient> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); this->resize(800, 480); } void MainWindow::paintEvent(QPaintEvent *event) { //畫直線 QPainter painter(this); painter.setPen(Qt::red); //設置畫筆為顏色 painter.drawLine(50, 50, 600, 400); //(50, 50)為初始坐標,(600, 400)為最終坐標 //繪制矩形 QRect為矩形類,QLinearGradient為呈線性梯度的漸變顏色類,線性漸變 // QLinearGradient linear(rect().topLeft(), rect().bottomLeft()); //rect矩形的左上角坐標、右下角坐標,作為漸變顏色的方向 // linear.setColorAt(0, Qt::red); // linear.setColorAt(0.5, Qt::green); // linear.setColorAt(1, Qt::blue); //設置紅、綠、藍變化 // painter.setPen(Qt::gray); //設定畫筆顏色,到時侯就是邊框顏色 // painter.setBrush(linear); //設置畫筆,到時候就是區域顏色 // painter.drawRect(QRect(0, 30, this->width(), this->height()-30)); //設置繪制區域 畫矩形,左上角橫縱坐標、矩形寬度和高度 //繪制矩形 輻射漸變 // QRadialGradient radialGradient(310,110,100,310,110);//創建了一個QRadialGradient對象實例,參數分別為中心坐標,半徑長度和焦點坐標,如果需要對稱那么中心坐標和焦點坐標要一致 // radialGradient.setColorAt(0, Qt::green); // //radialGradient.setColorAt(0.2,Qt::white); // radialGradient.setColorAt(0.4,Qt::blue); // //radialGradient.setColorAt(0.6,Qt::red); // radialGradient.setColorAt(1.0,Qt::yellow); // painter.setBrush(QBrush(radialGradient)); // painter.drawEllipse(210,10,200,200);//在相應的坐標畫出來 //繪制矩形 弧度漸變 // QConicalGradient conicalGradient(510,110,0); //創建了一個QConicalGradient對象實例,參數分別為中心坐標和初始角度 // conicalGradient.setColorAt(0,Qt::green); // conicalGradient.setColorAt(0.2,Qt::white); // conicalGradient.setColorAt(0.4,Qt::blue); // conicalGradient.setColorAt(0.6,Qt::red); // conicalGradient.setColorAt(0.8,Qt::yellow); // conicalGradient.setColorAt(1.0,Qt::green); // //設置漸變的顏色和路徑比例 // painter.setBrush(QBrush(conicalGradient)); // painter.drawEllipse(410,10,200,200);//在相應的坐標畫出來 //繪制折線 painter.setPen(Qt::red); static const QPointF points[4] = {QPointF(0, 30), QPointF(0, this->height()-1), QPointF(this->width()-1, this->height()-1), QPointF(this->width()-1, 30)}; painter.drawPolyline(points, 4); //由4個點連成的折線 } MainWindow::~MainWindow() { delete ui; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。