QT QPainter用法(包含畫點,畫圓,畫矩形,畫線等)
繪圖工具的典型用法是:
- 構造一個繪圖工具。
- 設定畫筆、畫刷等等。
- 繪製。
- 銷燬這個繪圖工具。
下面就QPainter的使用做下面的做以下例子以倍後用
1、main.cpp不做任何修改
2、widget.h修改如下
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPainter>
#include <QPen>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
public:
void paintEvent(QPaintEvent *);
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
3、widget.cpp新增以下程式碼
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::paintEvent(QPaintEvent *)
{
QPen pen;
//1、畫字
QPainter painter(this);
//painter.setPen(Qt::blue);
painter.setPen(Qt::blue);
painter.setFont(QFont("Arial", 50));
painter.drawText(rect(), Qt::AlignCenter, "Qt");
//2、畫多邊形
QRectF rectangle(100.0, 20.0, 80.0, 60.0);
int startAngle = 30 * 16;
int spanAngle = 120 * 16;
painter.drawArc(rectangle, startAngle, spanAngle);
static const QPointF points[4] = {
QPointF(10.0, 80.0),
QPointF(20.0, 10.0),
QPointF(80.0, 30.0),
QPointF(90.0, 70.0)
};
painter.drawConvexPolygon(points, 4);
//3、畫圓
QRectF rectangle1(10.0, 100.0, 80.0, 80.0);
//QPainter painter(this);
painter.drawEllipse(rectangle1);
//4、畫線
QLineF line(10.0, 80.0, 90.0, 20.0);
//QPainter(this);
painter.drawLine(line);
//5、畫
static const QPointF points1[3] = {
QPointF(110.0, 180.0),
QPointF(120.0, 110.0),
QPointF(180.0, 130.0),
};
painter.drawPolyline(points1, 3);
//6、畫矩形
painter.setPen(Qt::red);
QRectF rectangle2(200.0, 20.0, 80.0, 60.0);
painter.drawRect(rectangle2);
//7、畫圓角矩形
QRectF rectangle3(200.0, 120.0, 80.0, 60.0);
painter.drawRoundedRect(rectangle3, 20.0, 15.0);
//8、畫多個點
QPointF pointf[10];
pen.setWidth(6);
painter.setPen(pen); // 設定畫筆
for (int i=0; i<10; ++i)
{
pointf[i].setX(2.0+i*10.0);
pointf[i].setY(130.0);
}
painter.drawPoints(pointf, 10);
//9、畫單個直線
pen.setWidth(5);
pen.setColor(Qt::red); // 設定畫筆為黃色
painter.setPen(pen); // 設定畫筆
painter.drawLine(rect().topLeft(), rect().bottomRight());
//10、畫點
pen.setWidth(6);
pen.setColor(Qt::green); // 設定畫筆為黃色
painter.setPen(pen); // 設定畫筆
painter.drawPoint(200,200);
//11、畫圓點
painter.setPen(QColor(Qt::blue));
painter.setBrush(QBrush(Qt::yellow));
painter.drawEllipse(50,150,15,15);
}
3、執行結果如下所示
相關推薦
QT QPainter用法(包含畫點,畫圓,畫矩形,畫線等)
QPainter可以繪製從簡單的直線到像餅圖和絃這樣的複雜形狀。它也可以繪製排列的文字和畫素對映。通常,它在一個“自然的”座標系統中繪製,但是它也可以在視和世界轉換中做到這些。繪圖工具的典型用法是:構造一個繪圖工具。設定畫筆、畫刷等等。繪製。銷燬這個繪圖工具。下
MATLAB中scatter函式的用法(繪製散點圖)
標記輪廓顏色,指定為 'flat'、RGB 三元數或表中列出的顏色選項之一。預設值 'flat' 將使用 CData 屬性中的顏色。如果想自定義顏色,請指定一個 RGB 三元數。RGB 三元數是包含三個元素的行向量,其元素分別指定顏色中紅、綠、藍分量的強度。強度值必須位於 [0,1] 範圍內,例如 [0.4
利用Freemarker生成doc檔案(包含list迴圈,ifelse判斷,合併單元格,嵌入表格單元格字數過多報錯等)
1、利用office等軟體開啟doc文件,另存為word2003xml形式的檔案。 2、修改xml中的需要動態生成的值,Freemarker變數為${data}格式的,修改完改成ftl字尾,複製到載入
軟考之網路管理員(包含2004-2018歷年真題詳解+課本教材講義+視訊教程)
軟考-網路管理員2004-2018歷年考試真題以及詳細答案(試題和答案分離的哦),同時含有最新課本教材、複習筆記、網路管理員視訊教程。持續更新後續年份的資料。請點贊!!請點贊!!!絕對全部貨真價實的資料!!! 全網最全,獨此一家,費心整理,希望各位同學順利通過考試!!! 網路管理員歷
css基本用法(層疊、群選擇符、派生選擇符、顏色值)
CSS 選擇符【總結】(1) div{...}(2) .myStyle1{...} , 對應HTML引用:< p class=myStyle1>歡迎使用ASP.NET2.0技術< /p > (3) #myStyle2{...} , 對應HTML引
notepad++ 查找引用(Find Reference)(適用於c c++及各類腳本比如lua、python等)
onf 後綴名 ces ram 找不到 進行 align ins studio 在程序開發過程中,程序員經常用到的一個功能就是查找引用(Find Reference),Visual Studio裏面的對應功能是“查找所有引用”(Find All Re
Vue.js常用指令匯總(v-if//v-show//v-else//v-for//v-bind//v-on等)
ont ner 技術分享 數組 div 區別 art space alt 有時候指令太多會造成記錯、記混的問題,所以本文在記憶的時候會采用穿插記憶的方式,交叉比對,不易出錯。 本文主要講了一下六個指令: v-if//v-show//v-else//v-for//v-bi
正則表示式詳解(貪婪與懶惰、前瞻與後顧、後向引用等)
之前嫌正則麻煩,一直沒有深入去了解過正則,能不用的地方就不使用。 最近專案中遇到了不可避免的正則使用,所以花了點時間去了解並整理了一下,理解不一定完全準確,如有不對歡迎指出,希望對大家有所幫助。 一、名詞解釋 首先我們瞭解幾個名詞:元字元 、 普通字元、列印字元、非列印字元、 限定符 、定位符、非列
Java將資料按列寫入Excel並設定格式(字型、背景色、自動列寬、對齊方式等)
本文使用jxl.jar工具類庫將資料按列寫入Excel並設定格式(字型、背景色、自動列寬、對齊方式等)。 /** * 按列寫入Excel並設定格式 * * @param outputUrl * 輸出路徑 * @par
2018面試總結(阿里巴巴螞蟻金服、餓了麼、人人車等)
前言 今年跳槽換工作,一共面試了8家公司,拿到了6個offer,其中包括阿里巴巴螞蟻金服(外派杭州)、餓了麼、人人車等公司,總體來說還算是順利,因為也沒面的特別多,想把今年的面試情況總結一下,給自己做一個記錄,也希望給其他人一點幫助。 面試記錄 星雲鏈
[MySQL] 行列轉換變化各種方法實現總結(行變列報表統計、列變行資料記錄統計等)
前言:mysql行列變化,最難的就是將多個列變成多行,使用的比較多的是統計學中行變列,列變行,沒有找到現成的函式或者語句,所以自己寫了儲存過程,使用動態sql來實現,應用業務場景,使用者每個月都有使用記錄數錄入一張表,一個月一個欄位,所以表的欄位是動態增長的,現在需要實時統計
CSS:字型樣式(字體系列、大小、加粗、風格、變形等)
CSS 字型屬性定義文字的(如斜體)和變形(如小型大寫字母) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml
Python基礎(7)——名片管理系統(實現了資料簡單的儲存、修改、刪除、檢視等)
進行了一些Python基礎知識的學習後,將這些知識進行綜合,實現了名片管理小系統,可以進行資料的增刪改查。 主要思路是將名片(資訊)存進字典裡,再將字典存入列表裡,方便進行增刪改查。 程式碼如下: #-*-encoding:utf-8-*- #用來儲存名片 card_in
Flutter Decoration背景設定(邊框、圓角、陰影、形狀、漸變、背景影象等)
1 繼續關係: BoxDecoration:實現邊框、圓角、陰影、形狀、漸變、背景影象 ShapeDecoration:實現四個邊分別指定顏色和寬度、底部線、矩形邊色、圓形邊色、體育場(豎向橢圓)、 角形(八邊角)邊色 FlutterLogoDecoration:實
一種動態寫入apk數據的方法(用於用戶關系綁定、添加渠道號等)
val 遇到的問題 sig 無法 暫時 lac exception 每一個 tof 背景: 正在開發的APP需要記錄業務員與客戶的綁定關系。具體應用場景如下: 由流程圖可知,並沒有用戶填寫業務人員信息這一步,因此在用戶下載的APP中就已經攜帶了業務人員的信息。 由
利用QT中Qpainter畫點,直線,弧線等簡單圖形
轉自: http://blog.sina.com.cn/s/blog_67cf08270100wv59.html MyImgTest.h: #ifndef MYIMGTEST_H #define MYIMGTEST_H #include <QWidget
點擊添加或減少數量,總價隨之改變(keyup的用法)
開始 htm max ges 減少 cal enter ota lac <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>點擊添
QT QTableView用法小結(設定單元格字型顏色,文字字型...)
這幾天在公司做關於衰減開關的上位機,用到很多表格,其中表格基本上都是用QTableView進行編寫。為了防止以後忘記,同時也給後續的同學一點學習建議,特此寫下這篇部落格。 QTableView常用於實現資料的表格顯示。下面我們如何按步驟實現學生資訊表格:一 新增表頭
ROS知識(16)----如何編譯時自動鏈接同一個工作空間的其他包的頭文件(包含message,srv,action自動生成的頭文件)
logs package fin 空間 依賴庫 osc div build 知識 catkin_make編譯時,往往需要自動鏈接同一個工作空間的其他包的頭文件。否則會出現類似如下的錯誤: /home/xx/xx_ws/srcA_package/src/db.hpp:13:
qt下的時鐘程序(簡單美麗,繼承自QWidget的Clock,用timer調用update刷新,然後使用paintEvent作畫就行了,超詳細中文註釋)good
循環 連接 定位 根據 定時器 img cal widget tran 最近抽空又看了下qt,發現用它來實現一些東西真的很容易比如下面這個例子,繪制了個圓形的時鐘,但代碼卻清晰易懂[例子源自奇趣科技提供的例子]因為清晰,所以就只寫註釋了,吼吼其實也就這麽幾行代碼頭文件 /