QT畫線教程(GraphicsViewFramework)
class DrawApp : public QWidget {
public:
DrawApp();
protected:
void paintEvent(QPaintEvent *event);
};
DrawApp::DrawApp()
{
}
void DrawApp::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawLine(10, 10, 150, 300);
}
int main(int
{
QApplication a(argc, argv);
QGraphicsScene *scene = new QGraphicsScene;
scene->addLine(10, 10, 150, 300);
QGraphicsView *view = new QGraphicsView(scene);
view->resize(500, 500);
view->setWindowTitle("Graphics View");
view->show();
DrawApp *da = new DrawApp;
da->resize(500, 500);
da->setWindowTitle("QWidget");
da->show();
return a.exec();
} 為了突出重點,我們就直接include了QtGui,不過在實際應用中不建議這麼做。這裡提供了直線的兩種實現:一個是DrawApp使用我們前面介紹的技術,重寫paintEvent()函式,這裡就不在贅述,重點來看main()函式裡面的實現。 首先,我們建立了一個QGraphicsScene作為場景,然後在scene中添加了一個直線,這樣就把我們需要的圖形元件放到了scene中。然後建立一個QGraphicsView物件進行觀察。就這樣,我們就是用Graphics View搭建了一個最簡單的應用。執行這個程式來看結果: 第一張圖是Graphics View的,第二個是DrawApp的。雖然這兩個直線是同樣的座標,但是,DrawApp按照原始座標繪製出了直線,而Graphics View則按照座標繪製出直線之後,自動將直線居中顯示在view視口。你可以通過拖動Graphics View來看直線是一直居中顯示的。 這裡僅僅是一個很簡單的對比,不過你已經可以看到Graphics View功能的強大。僅這一個居中的操作,如果你是用QPainter,就需要很大的計算量了!當然,如果你不需要這種居中,Graphics View也是可以像QPainter繪製的一樣進行顯示的。
相關推薦
QT畫線教程(GraphicsViewFramework)
現在基本上也已經到了2D繪圖部分的尾聲,所謂重頭戲都是在最後壓軸的,現在我們就要來看看在繪圖部分功能最強大的Graphics View。我們經常說KDE桌面,新版本的KDE桌面就是建立在Graphics View的基礎之上,可見其強大之處。 Qt的白皮書裡面這樣寫道:
Qt 3D教程(二)初步顯示3D的內容
初始 應用 frame 通過 net settings mod rgba bsp Qt3D教程(二)初步顯示3D的內容 前一篇很easy,全然就沒有牽涉到3D的內容,它僅僅是我們搭建3D應用的基本框架而已,而這一篇。我們將要利用它來初步地顯示3D
SpringCloud 教程 (一) 消息總線(Spring Cloud Bus)
.html nco mile 你會 ava arp try nap 圖片 Spring Cloud Bus 將分布式的節點用輕量的消息代理連接起來。它可以用於廣播配置文件的更改或者服務之間的通訊,也可以用於監控。本文要講述的是用Spring Cloud Bus實現通知微服務
互聯網架構多線程並發編程高級教程(下)
rri service 累加 機制 jms exceptio 模式 設置 擁有 基礎篇幅:線程基礎知識、並發安全性、JDK鎖相關知識、線程間的通訊機制、JDK提供的原子類、並發容器、線程池相關知識點 高級篇幅:ReentrantLock源碼分析、對比兩者源碼,更加深入理解讀
互聯網架構多線程並發編程高級教程(上)
並發 取模 守護 事務 分段 喚醒 提升 程序 服務 #基礎篇幅:線程基礎知識、並發安全性、JDK鎖相關知識、線程間的通訊機制、JDK提供的原子類、並發容器、線程池相關知識點? #高級篇幅:ReentrantLock源碼分析、對比兩者源碼,更加深入理解讀寫鎖,JAVA內存模
QT中使用OpenGL(1)——畫一個三角形
QOpenGLBuffer QT提供給我們使用OpenGL緩衝區的輔助類,使用此類由QT負責後端實現 我們可以自由的使用而不用擔心效率問題,如果呼叫了destroy(),緩衝區就變為了無效, 此時就不要在使用緩衝區。 QOpenGLVertexArrayObject 頂點陣
OpenCV入門教程(2)-Mat類之畫素的讀寫
一、矩陣元素的基本表達 對於單通道影象,其元素型別一般為 8U(即 8 位無符號整數),當然也可以是 16S、32F等;這些型別可以直接用 uchar、short、float 等 C/C++語言中的基本資料型別表達。 如果多通道影象,如 RGB 彩色影象,需
使用PowerDesigner畫E-R圖詳細教程(1 )
一、概念資料模型概述資料模型是現實世界中資料特徵的抽象。資料模型應該滿足三個方面的要求: 1)能夠比較真實地模擬現實世界 2)容易為人所理解 3)便於計算機實現 概念資料模型也稱資訊模型,它以實體-聯絡(Entity-RelationShip,簡稱E-R)理論為基礎,並對這一理論進行了擴充。它從使用者的觀點
echarts畫k線圖(折線)
引用echarts的庫,寫以下js檔案 //k線圖 function makeMapKLine(result){ var changeChart=echarts.init(document.getElementById("changeConten
GuozhongCrawler系列教程 (1) 三大PageDownloader
特點 string null 瀏覽器兼容 ror down odi 系列 lan GuozhongCrawler QQ群 202568714 教程源代碼下載地址:http://pan.baidu.com/s/1pJBmerL GuozhongCrawl
java線程(四)
讀寫 img 其他 手動 dem com 字段 只讀 停止線程 java5線程並發庫 線程並發庫是JDK 1.5版本級以上才有的針對線程並發編程提供的一些常用工具類,這些類被封裝在java.concurrent包下。 該包下又有兩個子包,分別是atomic和lock
函數式編程入門教程(轉)
制作 說明 讀取 ttf 中國 png if...else per 部分 初涉函數式編程語言python,轉載了一篇文章,先簡單來了解一下函數式編程的概念. 文章原址:http://www.ruanyifeng.com/blog/2017/02/fp-tutorial.ht
Spring MVC新手教程(一)
erp -s sil troy .html 解釋 rand rtu wire 直接幹貨 model 考慮給用戶展示什麽。關註支撐業務的信息構成。構建成模型。 control 調用業務邏輯產生合適的數據以及傳遞數據給視圖用於呈獻; view怎樣對數據進行布局,以
多線程(一)
任務管理器 應用程序 public 多線程 start 這邊來談談java中,我對對多線程的理解在了解多線程前,先說說進程。進程就是正在運行的應用程序。 當你打開任務管理器的時候,你就會發現很多的進程。而我們要說的線程,就是依賴於進程而存在的,一個進程可以開啟多個線程。Thread類說到
Spring 新手教程(三) 註入和自己主動裝配
文件 auto 進行 上下文 xxx -s 重要 mls 上下 Spring註入是指在啟動Spring容器載入bean配置的時候。對類變量的賦值。 兩種經常使用註入方式:設值註入和構造註入 以下就這部分知識看代碼以及代碼中的註解: 1、首先看S
linux學習入門標準教程(2)
linux標準教程Linux系統篇2.1 Linux系統管理經過前兩章的學習,咱們現已可以獨立裝置Linux體系,現已把握了Linux學習的竅門,那接下來,咱們將體系的來了解Linux體系各目錄、權限及常用命令的運用。2.1. 1 Linux目錄初識通過前面的學習,我們已經能夠獨立安裝完一個linux
Java - Struts框架教程 Hibernate框架教程 Spring框架入門教程(新版) sping mvc spring boot spring cloud Mybatis
java ee cloud pac .cn java get pin nat 輕量級 https://www.zhihu.com/question/21142149 http://how2j.cn/k/hibernate/hibernate-tutorial/31.html
ArcGIS Pro 簡明教程(1)Pro簡介
配置 動畫 name app 產品 版本 鼠標拖動 nal mage ArcGIS Pro 簡明教程(1)Pro簡介 轉載地址:http://www.cnblogs.com/lazygis/p/5870545.html ArcGIS Pro 簡明教程(1)Pro簡
android入門 — 多線程(一)
xtend 分享 調用 管理 ava 導致 ui線程 rec thread android中的一些耗時操作,例如網絡請求,如果不能及時響應,就會導致主線程被阻塞,出現ANR,非常影響用戶體驗,所以一些耗時的操作,我們會想辦法放在子線程中去完成。 android的U
iptables實用教程(二):管理鏈和策略
否則 命令顯示 accept 目的 number cep 存在 當前 末尾 概念和原理請參考上一篇文章“iptables實用教程(一)”。 本文講解如果管理iptables中的鏈和策略。 下面的代碼格式中,下劃線表示是一個占位符,需要根據實際情況輸入參數,不帶下劃線的表示是