1. 程式人生 > >QT中QPainter的使用及矩形、圓形等常見圖形的畫法

QT中QPainter的使用及矩形、圓形等常見圖形的畫法

#include<QApplication>
#include <QWidget>
#include <QPainter>
class MyMainWindow:public QWidget
{
public:
 MyMainWindow(QWidget *parent = 0);
 private:
 void paintEvent(QPaintEvent*);
 QPainter *paint;
};


void MyMainWindow::paintEvent(QPaintEvent*)

//paintEvent函式由系統自動呼叫,用不著我們人為的去呼叫。

{
 paint=new QPainter;
 paint->begin(this);
 paint->setPen(QPen(Qt::blue,4,Qt::DashLine));//設定畫筆形式 
 paint->setBrush(QBrush(Qt::red,Qt::SolidPattern));
//設定畫刷形式 
 paint->drawRect(20,20,160,160);
 paint->end();
}


MyMainWindow::MyMainWindow(QWidget*parent):QWidget(parent)
{
 setGeometry(100,100,200,200)

;
}


int main(int argc,char**argv)
{
 QApplication a(argc,argv);
 MyMainWindow w;
 w.show();
 return a.exec();
}


輸出結果: 繪製圓和橢圓 核心程式碼: paint->setPen(QPen(Qt::blue,4,Qt::SolidLine)); paint->drawEllipse(20,20,210,160); 第1,2個引數分別表示圓/橢圓距左上角的畫素數。第3,4個引數表示圓/橢圓的寬度和高度。更加確切地表述,這個圓或橢圓是在矩形中,這個矩形的左上角的頂點在座標軸中的位置為(20,20),這個圓或橢圓的中心為這個矩形的中心,以下的都相似!!!
繪製圓角矩形
核心程式碼: paint->setPen(QPen(Qt::blue,4,Qt::SolidLine)); paint->drawRoundRect(20,20,210,160,50,50); 最後兩個引數決定角的圓度。它可以為0到99之間的任意值(99代表最圓)。
繪製扇形圖 核心程式碼: paint->setPen(QPen(Qt::green,4,Qt::SolidLine)); paint->drawPie(20,20,210,160,0,500); 前四個引數定義圓(與drawEllipse()函式相同)。後兩個引數定義圓的樣式。0為起始角度(實際單位為1/16度),500為扇形所展開的角度(單位也為1/16度)。
繪製弦 核心程式碼: paint->setPen(QPen(Qt::green,4,Qt::SolidLine)); paint->drawChord(20,20,210,160,500,1000); drawChord()函式與drawPie()函式的引數完全相同。
繪製圓弧 核心程式碼: paint->setPen(QPen(Qt::green,4,Qt::SolidLine)); paint->drawArc(20,20,210,160,500,1000); drawArc()函式與drawPie()函式的引數完全相同。
繪製貝塞爾曲線 核心程式碼: paint->setPen(QPen(Qt::green,4,Qt::SolidLine)); paint->drawQuadBezier(QPointArray(QRect(20,20,210,160))); 傳遞給該函式的唯一一個引數表示一個矩形,在其中建立貝塞爾曲線(其他引數為預設引數,可以省略)。

相關推薦

QTQPainter的使用矩形圓形常見圖形畫法

#include<QApplication>#include <QWidget> #include <QPainter> class MyMainWindow:public QWidget{ public:  MyMainWindo

QTQPainter的使用矩形 圓形常見圖形畫法

#include<QApplication>#include <QWidget> #include <QPainter> class MyMainWindow:public QWidget{ public:  MyMainWindow(QWidget

安卓自定義View基礎-繪製點矩形圓形

為什麼要自定義View?因為我們在開發中,經常有各種各樣的需求,但是原生的控制元件畢竟只能滿足我們常用的需求,所以我們需要根據自身當前的需求來定製我們的View,話不多說,一步一步來吧。 1.建立類: 建立一個類,暫且將這個類命名為CustomV

純CSS畫的基本圖形矩形圓形三角形多邊形愛心八卦

技術分享 部分 fin display 三角形 spl back transform 純css 今天在css-tricks上看到一篇文章,那篇文章讓我不禁心頭一震,強大的CSS啊,居然能畫出這麽多基本的圖形。圖形包括基本的矩形、圓形、橢圓、三角形、多邊形,也包括稍微復雜一點

利用QTQpainter畫點,直線,弧線簡單圖形

轉自: http://blog.sina.com.cn/s/blog_67cf08270100wv59.html MyImgTest.h: #ifndef MYIMGTEST_H #define MYIMGTEST_H   #include <QWidget

Canvas入門(1):繪制矩形直線曲線基本圖形

dsm etc win cti b2c 創建 例如 .com courier 來源:http://www.ido321.com/968.html 一、Canvas的基礎知識 Canvas是HTML 5中新增的元素,專門用於繪制圖形。canvas元素就相當於一塊“畫布

Eclipse設置作者日期的方式

src window type cli png comment 我們 template windows 1、點擊Windows->Preferences->Java->Code Style->Code Templates; 2、點擊展開右側的Comm

Qt QString 和int, char的“相互”轉換

UC data 類比 const luci set als string轉換 span Qt中 int ,float ,double轉換為QString 有兩種方法 1.使用 QString::number(); 如: long a = 63; QString s = Q

CSS製作各種形狀(矩形圓形三角形多邊形五角星星太極陰陽圖......)

  CSS能夠製作各種形狀。正方形和矩形很容易,因為它們是自然形狀。新增寬度和高度,就可以獲得所需的確切尺寸矩形。新增border-radius,就可以將這些矩形變成圓形和橢圓形。 我們還可以利用CSS中的::before和::after元素,新增到原始元素的形狀,再通過巧妙地定位

今天算是我的第一個10.24程式設計師節吧,記錄由VGG16復現過程初見的用法函式,以此起步。

1.a[len(a):len(a)]=[] a=[] a[len(a):len(a)]=[]可以用來擴充套件list,類似append,但是append,又類似於”整體加入“ a=[8,9] print(a) a[len(a):len(a)]=[1,2,3] print(a,) a

C++intstring常見型別轉換

 C++中int、string等常見型別轉換 1、int型與string型的互相轉換 最佳實踐: int型轉string型 void int2str(const int &int_temp,string &str

OpenCV畫線矩形圓形

程式碼位置:9-DrawingLineRectangleCircle.py import numpy as np import cv2 import matplotlib.pyplot as plt def show(image): plt.imshow(image)

iview之——table巢狀inputselect

使用iview在table中嵌入button是比較常見的需求,但是在table中嵌入input或者select你是否考慮過呢?本文用例項介紹input和select在table中的巢狀。 理解table如何巢狀input、select首先要理解vue的render函式可以參考:vue render函式介紹。當

組合語言實現圖形繪製——矩形三角形

組合語言實現圖形繪製 一、準備工作 1.INT 10H的功能 INT 10H 是由 BIOS 對螢幕及顯示器所提供的服務程式。使用 INT 10H 中斷服務程式時,先指定 AH 暫存器編,該編號表示欲呼叫的功用,然後再定義其它暫存器內容,當一切設定好之後再呼叫 INT 10H。下面是我們

【TensorFlow】PyCharm無法識別tensorflownumpyPython庫問題的解決辦法

參考部落格https://blog.csdn.net/WIinter_FDd/article/details/72835939,準備使用貓狗資料集練習TensorFlow構建自己的圖片資料集TFrecords。使用pycharm敲入程式碼後,提示無法識別Python庫的問題。 1、問題現象如

java載入方法內部類與成員的呼叫關係

/* *該例程測試了程式在最開始時的載入情況及成員的呼叫情況,載入順序為類→靜態成員→建立物件( *如果建立的話)。 *注意,載入類時,靜態成員是單獨載入到一處static程式碼塊中,後續將不再載入。因此使用效率 *也更高一些。其中,非靜態內部類和靜態內部類在最初均不載入,

HTTP協議及其POST與GET操作差異 & C#如何使用POSTGET

HTTP協議我想任何IT人士都耳熟能詳了,大家都能說出個所以然來。但是如果我問你HTTP協議的請求方法有哪些?POST與GET的差異?GET或POST傳送資料量的大小有限制嗎?HTTP響應的狀態有哪些?以及在C#中你如何使用?如果你不能清楚地回答其中的大部分問題,那麼這篇文章就是為你準備的!大綱如

【java學習記錄】7.定義一個介面ArearInterface,其中包含一個方法,計算面積三角形矩形圓形的面積

* 定義一個介面ArearInterface,其中包含一個方法,計算面積 * 定義三個類:三角形、矩形、圓形,分別實現ArearInterface中的方法 * 定義一個主類,將三角形和圓形的面積顯示在螢幕上ArearInterface 介面public interface A

Canvas入門(1):繪製矩形直線曲線基本圖形

一、Canvas的基礎知識 Canvas是HTML 5中新增的元素,專門用於繪製圖形。canvas元素就相當於一塊“畫布”,一塊無色的透明區域,需要利用JavaScript編寫在其中進行繪畫的指令

抽象類,實現求矩形圓形三角形的面積計算。

package Abstrace;import Abstrace.Circle;import Abstrace.Rectangle;import Abstrace.Shape;import Abstrace.Triangle;//定義一個抽象類abstract class S