精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解 Qt 2D繪圖之Qt坐標系統深入

移動開發
本文介紹的是 Qt 2D繪圖之Qt坐標系統深入,一個很好的實例,基于鼠標事件,先來看內容。

Qt 2D繪圖之Qt坐標系統深入是本文要介紹的內容,了解了 Qt 坐標系統的概念,通過對幾個函數的應用,應該已經對Qt坐標系統有了一個模糊的認識。那么現在就來讓我們更深入地研究一下Qt窗口的坐標。希望大家把這一節的例子親手做一下,不要被筆者所說的東西搞暈了!

我們還是在以前的工程中進行操作。

獲得坐標信息:

為了更清楚地獲得坐標信息,我們這里利用鼠標事件,讓鼠標點擊左鍵時輸出該點的坐標信息。

1、在工程中的dialog.h文件中添加代碼。

添加頭文件: #include <QMouseEvent>

在public中添加函數聲明:void mousePressEvent(QMouseEvent *);

然后到dialog.cpp文件中:

添加頭文件: #include <QDebug>

定義函數:

  1. void Dialog::mousePressEvent(QMouseEvent *event)  
  2. {  
  3.    qDebug() << event->pos();  

這里應用了qDebug()函數,利用該函數可以在程序運行時將程序中的一些信息輸出,在Qt Creator中會將信息輸出到其下面的Application Output窗口。這個函數很有用,在進行簡單的程序調試時,都是利用該函數進行的。我們這里利用它將鼠標指針的坐標值輸出出來。

2、然后更改重繪事件函數。

  1. void Dialog::paintEvent(QPaintEvent *)  
  2. {  
  3.     QPainter painter(this);  
  4.     painter.drawRect(0,0,50,50);  

我們繪制了一個左上頂點為(0,0),寬和高都是50的矩形。

3、這時運行程序。并在繪制的矩形左上頂點點擊一下鼠標左鍵。效果如下。(點擊可看大圖)

Qt 2D繪圖之Qt坐標系統深入

因為鼠標點的不夠準確,所以輸出的是(1,0),我們可以認為左上角就是原點(0,0)點。你可以再點擊一下矩形的右下角,它的坐標應該是(50,50)。這個方法掌握了以后,我們就開始研究這些坐標了。

#p#

研究放大后的坐標

1、我們現在進行放大操作,然后查看其坐標的變化。

  1. void Dialog::paintEvent(QPaintEvent *)  
  2. {  
  3.     QPainter painter(this);  
  4.     painter.scale(2,2);    //橫縱坐標都擴大2倍  
  5.     painter.drawRect(0,0,50,50);  

我們將橫縱坐標都擴大2倍,然后運行程序,查看效果:

Qt 2D繪圖之Qt坐標系統深入

我們點擊矩形右下頂點,是(100,100),比以前的(50,50)擴大了2倍。

研究QPixmap或QImage的坐標

對于QWidget,QPixmap或QImage等都是繪圖設備,我們都可以在其上利用QPainter進行繪圖。現在我們研究一下QPixmap的坐標(QImage與其效果相同)。

1、我們更改重繪事件函數如下。

  1. void Dialog::paintEvent(QPaintEvent *)  
  2. {  
  3.     QPainter painter(this);  
  4.     QPixmap pix(200,200);  
  5.     pix.fill(Qt::red);   //背景填充為紅色  
  6.     painter.drawPixmap(0,0,pix);  

這里新建了一個寬、高都是200像素的QPixmap類對象,并將其背景顏色設置為紅色,然后從窗口的原點(0,0)點添加該QPixmap類對象。為了表述方便,在下面我們將這個QPixmap類對象pix稱為畫布。

我們運行程序,并在畫布的左上角和右下角分別點擊一下,效果如下:

Qt 2D繪圖之Qt坐標系統深入

可以看到其左上角為(0,0)點,右下角為(200,200)點,是沒有問題的。

#p#

2、我們再將函數更改如下。

  1. void Dialog::paintEvent(QPaintEvent *)  
  2. {  
  3.     QPainter painter(this);  
  4.     QPixmap pix(200,200);  
  5.     pix.fill(Qt::red);   //背景填充為紅色  
  6.     painter.drawPixmap(100,100,pix);  

這時我們從窗口的(100,100)點添加該畫布,那么此時我們再點擊畫布的右上角,其坐標會是多少呢?

Qt 2D繪圖之Qt坐標系統深入

可以看到,它是(100,100),沒錯,這是窗口上的坐標,那么這是不是畫布上的坐標呢?

3、我們接著更改函數。

  1. void Dialog::paintEvent(QPaintEvent *)  
  2. {  
  3.     QPainter painter(this);  
  4.     QPixmap pix(200,200);  
  5.     pix.fill(Qt::red);   //背景填充為紅色  
  6.     QPainter pp(&pix);   //新建QPainter類對象,在pix上進行繪圖  
  7.     pp.drawLine(0,0,50,50);     //在pix上的(0,0)點和(50,50)點之間繪制直線  
  8.     painter.drawPixmap(100,100,pix);  

這里我們又新建了一個QPainter類對象pp,其中pp(&pix)表明,pp所進行的繪圖都是在畫布pix上進行的。

現在先說明一下:

QPainter painter(this) ,this就表明了是在窗口上進行繪圖,所以利用painter進行的繪圖都是在窗口上的,painter進行的坐標變化,是變化的窗口的坐標系;而利用pp進行的繪圖都是在畫布上進行的,如果它進行坐標變化,就是變化的畫布的坐標系。

我們在畫布上的(0,0)點和(50,50)點之間繪制了一條直線。這時運行程序,點擊這條直線的兩端,看看其坐標值。

Qt 2D繪圖之Qt坐標系統深入 

#p#

結果是直線的兩端的坐標分別是(100,100),(150,150)。我們從中可以得出這樣的結論:

第一,QWidget和QPixmap各有一套坐標系統,它們互不影響。可以看到,無論畫布在窗口的什么位置,它的坐標原點依然在左上角,為(0,0)點,沒有變。

第二,我們所得到的鼠標指針的坐標值是窗口提供的,不是畫布的坐標。

下面我們繼續研究:

4、比較下面兩個例子。

例子一:

  1. void Dialog::paintEvent(QPaintEvent *)  
  2. {  
  3.     QPainter painter(this);  
  4.     QPixmap pix(200,200);  
  5.     qDebug() << pix.size();   //放大前輸出pix的大小  
  6.     pix.fill(Qt::red);    
  7.     QPainter pp(&pix);    
  8.     pp.scale(2,2);           //pix的坐標擴大2倍  
  9.     pp.drawLine(0,0,50,50);     //在pix上的(0,0)點和(50,50)點之間繪制直線  
  10.     qDebug() << pix.size();    //放大后輸出pix的大小  
  11.     painter.drawPixmap(0,0,pix);  

Qt 2D繪圖之Qt坐標系統深入

例子二:

  1. void Dialog::paintEvent(QPaintEvent *)  
  2. {  
  3.     QPainter painter(this);  
  4.     QPixmap pix(200,200);  
  5.     qDebug() << pix.size();   //放大前輸出pix的大小  
  6.     painter.scale(2,2);     //窗口坐標擴大2倍  
  7.     pix.fill(Qt::red);  
  8.     QPainter pp(&pix);  
  9.     pp.drawLine(0,0,50,50);     //在pix上的(0,0)點和(50,50)點之間繪制直線  
  10.     qDebug() << pix.size();    //放大后輸出pix的大小  
  11.     painter.drawPixmap(0,0,pix);  

Qt 2D繪圖之Qt坐標系統深入

兩個例子中都使直線的長度擴大了兩倍,但是第一個例子是擴大的畫布的坐標系,第二個例子是擴大的窗口的坐標系,你可以看一下它們的效果。

你仔細看一下輸出,兩個例子中畫布的大小都沒有變。

如果你看過了我寫的那個繪圖軟件的教程(鏈接過去),現在你就能明白我在其中講“問題一”時說的意思了:雖然畫布看起來是大了,但是其大小并沒有變,其中坐標也沒有變。變的是像素的大小或者說像素間的距離。

但是,有一點你一定要搞明白,這只是在QPixmap與QWidget結合時才出現的,是相對的說法。其實利用scale()函數是會讓坐標變化的,我們在開始的例子已經證明了。

現在是不是已經很亂了,一會兒是窗口,一會兒是畫布,一會兒坐標變化,一會兒又不變了,到底是怎么樣呢?其實只需記住一句話:所有的繪圖設備都有自己的坐標系統,它們互不影響。(本文章原創于www.yafeilinux.com )

小結:Qt 2D繪圖之Qt坐標系統深入的內容介紹完了,希望本篇文章對你有幫助!

責任編輯:zhaolei 來源: 網絡轉載
相關推薦

2013-05-22 14:38:44

iOS開發Cocos2d-x坐標系統

2011-07-27 14:48:21

iPhone Cocos2D 坐標

2011-06-23 14:05:32

Qt 事件機制

2011-06-23 13:38:27

QT 元對象 信號

2011-08-11 18:07:55

iPhoneQuratz 2D

2021-10-03 15:08:32

Android

2012-05-08 10:20:36

HTML5

2011-08-08 17:17:55

Cocos2D 坐標 OpenglES

2011-06-23 11:16:39

Qt Excel

2011-06-24 10:05:51

QT 對象 父對象

2011-06-23 13:25:42

QT 源碼 窗口

2011-06-29 14:06:15

Qt 串口

2011-06-28 15:01:01

Qt PIMPL

2011-06-20 17:33:58

Qt MeegoTouch Maemo

2011-06-23 15:32:05

Qt Windows消息

2011-06-23 15:10:39

Qt 窗體

2011-06-20 09:26:38

Linux qtopia QT

2012-12-24 09:11:58

iOSUnity3D

2011-06-20 13:05:53

Qt 4.7 Qt Quick

2011-06-13 17:17:22

Qt 繪圖 QWT
點贊
收藏

51CTO技術棧公眾號

亚洲视频免费在线| 三级久久三级久久| 亚洲精品www久久久久久广东| 亚洲国产精品久久久久婷蜜芽| 日本中文字幕电影在线观看| 男人操女人的视频在线观看欧美 | 国产成人亚洲综合91精品| 国产又粗又黄又猛| 成人精品毛片| 欧美日韩中文字幕一区二区| 日韩专区第三页| yw在线观看| 国产成人精品aa毛片| 国产97在线视频| 黄页网站免费观看| 欧美精品一区二区三区精品| 欧美xxx久久| www欧美激情| 黄在线观看免费网站ktv| 中文字幕一区视频| 欧美日韩三区四区| 男人天堂网在线视频| 精品在线播放免费| 国产精品第一页在线| 日韩大片免费在线观看| 国产精品久久天天影视| 亚洲人成电影网站色| 美女扒开腿免费视频| 97久久中文字幕| 日本福利一区二区| 日本一道本久久| 中文字幕中文字幕在线十八区 | av动漫免费观看| 男人久久精品| 91亚洲精华国产精华精华液| av在线亚洲男人的天堂| 一级aaaa毛片| 蜜臀va亚洲va欧美va天堂 | 在线精品国产成人综合| 亚洲黄色免费在线观看| 91久久精品无嫩草影院| 555www色欧美视频| 岛国毛片在线播放| 成人国产一区| 在线观看欧美精品| 三年中国国语在线播放免费| 北岛玲heyzo一区二区| 午夜精品久久久久久久久久| av 日韩 人妻 黑人 综合 无码| 日韩黄色影院| 国产精品卡一卡二| 在线免费观看一区二区三区| 尤物在线视频| 成人免费一区二区三区在线观看| 亚洲成人av动漫| 四虎久久免费| 国产精品国产自产拍在线| 亚洲高清视频一区| 久草资源在线观看| 亚洲欧美韩国综合色| 国产精品av免费| 粗大黑人巨茎大战欧美成人| 亚洲欧美激情视频在线观看一区二区三区| 中文字幕一区二区三区四区五区人 | 亚洲国产婷婷香蕉久久久久久 | 国产精品人妖ts系列视频| 日韩欧美视频一区二区| 69久久精品| 最新日韩av在线| 欧美日韩dvd| а√在线天堂官网| 欧美在线一区二区| 国产高清999| 国产一区丝袜| 亚洲视频在线免费观看| 无码人妻精品中文字幕 | 国产日韩欧美电影| 自拍另类欧美| 性欧美ⅴideo另类hd| 亚洲成a人v欧美综合天堂下载 | 亚洲精品大尺度| 一区二区黄色片| 久久精品国产68国产精品亚洲| 久久精品91久久久久久再现| 精国产品一区二区三区a片| 一本久道久久综合狠狠爱| 国产99久久久欧美黑人| 国产精品主播一区二区| 成年人网站91| 亚洲7777| 欧美另类tv| 色久综合一二码| 中文 日韩 欧美| 思热99re视热频这里只精品| 日韩在线视频网站| 在线观看免费国产视频| 老司机精品视频在线| 国产成人av一区二区三区| 国产免费a∨片在线观看不卡| 亚洲人成小说网站色在线 | 理论电影国产精品| 国内精品一区二区| 好了av在线| 欧美日韩一区免费| 久久无码人妻一区二区三区| 女人av一区| 欧美日韩国产第一页| 中文字幕永久在线| 成人蜜臀av电影| 一区二区成人国产精品| 黄在线观看免费网站ktv| 在线成人免费观看| 我和岳m愉情xxxⅹ视频| 欧美日本一区| 国产欧美日韩免费| 日本午夜在线视频| 亚洲国产日韩一区二区| 亚洲va在线va天堂va偷拍| 亚洲精品中文字幕99999| 欧美xxxx14xxxxx性爽| 蜜臀99久久精品久久久久小说| 国产91精品一区二区麻豆亚洲| 日本一区视频在线| 男女羞羞在线观看| 精品国产三级a在线观看| 波兰性xxxxx极品hd| 日韩av不卡一区二区| 久久国产精品久久| 美洲精品一卡2卡三卡4卡四卡| 777久久久精品| 国精产品一区一区| 男人操女人的视频在线观看欧美 | 涩视频在线观看| 亚洲女同中文字幕| 91精品在线影院| 日本中文字幕在线观看| 在线观看日产精品| 亚洲最大成人综合网| 亚洲欧美日韩国产一区| 国新精品乱码一区二区三区18| h片在线观看网站| 欧美精三区欧美精三区| 97人妻人人揉人人躁人人| 久久久久欧美精品| 欧洲精品在线一区| 欧美一区 二区 三区| 亚洲欧美日韩中文在线| 亚洲天堂一区在线| 久久麻豆一区二区| 青青青国产在线视频| 国产一区二区三区不卡视频网站| 亲爱的老师9免费观看全集电视剧| 亚洲色图 校园春色| 欧美日韩国产一中文字不卡| 大黑人交xxx极品hd| 香蕉久久国产| 欧美一区二区三区精美影视| 日韩不卡免费高清视频| 中文字幕亚洲精品| 一级片aaaa| 亚洲色图欧美偷拍| 黄页网站在线看| 狠狠爱成人网| 精品在线不卡| 亚洲第一二三四区| 精品国偷自产在线| www.久久久久久久久久| 五月综合激情婷婷六月色窝| 9.1成人看片免费版| 日韩高清不卡在线| 少妇熟女一区二区| 国产精品成人自拍| 日本中文字幕成人| 免费的黄网站在线观看| 日韩欧美在线不卡| 中文字幕激情小说| 中文字幕不卡在线观看| 在线成人免费av| 国产精品日本| 一本一道久久a久久综合精品 | 欧美一区二区三区喷汁尤物| 国产一级免费av| 久久亚洲精华国产精华液| 亚洲成人av免费看| 国产精品成人一区二区网站软件| 精品在线视频一区二区| 亚洲天堂网站| 2019精品视频| 黄色免费网站在线| 日韩av在线导航| 97久久人国产精品婷婷| 精品国产91久久久久久| 性生交大片免费全黄| 91视频国产观看| 免费在线观看污网站| 亚洲免费婷婷| 日韩精品福利片午夜免费观看| 思热99re视热频这里只精品| 亚洲精品免费在线视频| 欧美黄色三级| 欧美精品videossex性护士| 国产女人在线视频| 亚洲精品xxxx| av男人天堂av| 欧美视频自拍偷拍| 欧美激情亚洲综合| 亚洲综合男人的天堂| 国产精品www爽爽爽| 白白色 亚洲乱淫| 涩多多在线观看| 男人操女人的视频在线观看欧美 | 久久网免费视频| 国产精品天美传媒| 在线免费观看污视频| 国产成人自拍在线| 97超碰人人爽| 久久中文字幕一区二区三区| 亚洲精品久久久久久久蜜桃臀| 99tv成人| 亚洲国产精品久久久久婷婷老年| 色老板在线视频一区二区| av一区二区三区四区电影| 日日夜夜一区| 国产精品午夜一区二区欲梦| 在线免费看h| 97久久久久久| 超黄网站在线观看| 色综合久综合久久综合久鬼88| 三区四区电影在线观看| 国产一区二区免费| 欧美3p视频在线观看| 亚洲国产精品va在线观看黑人| www.com欧美| 欧美一区三区二区| 国产乱码一区二区| 欧美男女性生活在线直播观看| 午夜精品久久久久久久蜜桃| 狠狠躁天天躁日日躁欧美| 日本在线观看中文字幕| 亚洲国产视频直播| 国产精选第一页| 亚洲线精品一区二区三区八戒| 日本黄色小说视频| 亚洲精品国产品国语在线app| 男人av资源站| 一区二区中文视频| 懂色av懂色av粉嫩av| 综合精品久久久| 欧美被狂躁喷白浆精品| 一区二区三区不卡视频| 亚洲欧美一区二区三区四区五区| 亚洲欧美色图小说| 免费网站看av| 亚洲国产精品人人做人人爽| 久久久久99精品| 欧美日韩国产激情| 无码人妻久久一区二区三区不卡| 91成人看片片| 一级全黄裸体免费视频| 5566中文字幕一区二区电影| 国产福利资源在线| 欧美精品一区二区三区四区| 色视频在线看| 国产亚洲一区二区在线| 麻豆tv在线| 欧美激情喷水视频| 亚洲女色av| 国产精品入口夜色视频大尺度| 日韩成人精品一区二区三区| 91手机在线观看| 美国十次av导航亚洲入口| 欧美亚洲精品日韩| 婷婷亚洲五月色综合| 99久久久精品视频| 久久福利精品| 在线免费观看av网| 白白色 亚洲乱淫| 中文字幕在线观看免费高清 | 好色先生视频污| 一区二区三区四区五区精品视频 | 久久这里只有精品视频首页| 牛牛电影国产一区二区| 日韩av电影国产| 99视频这里有精品| 精品国产一区二区三区久久久久久| 国产一区二区三区不卡视频网站| 成人性做爰片免费视频| 免费看黄裸体一级大秀欧美| 日韩在线一区视频| 99精品一区二区| 四虎884aa成人精品| 精品福利在线视频| 国产精品毛片久久久久久久av| 精品国产一区二区三区久久影院 | 婷婷成人在线| 日韩视频在线免费播放| 国产欧美日韩一级| 亚洲一区二区三区观看| 久久综合色天天久久综合图片| 麻豆天美蜜桃91| 欧美影片第一页| 天堂在线资源8| 久热精品视频在线免费观看| 成人性生交大片免费观看网站| 91av免费看| 日本大胆欧美| 久久网站免费视频| 国产91丝袜在线观看| 成人三级视频在线观看| 色综合一区二区三区| 亚洲精品第五页| 日韩在线激情视频| 成人看片网页| 久久亚洲午夜电影| 精品二区久久| 欧美国产日韩在线视频| 久久久精品免费免费| 日韩精品视频播放| 欧美成人综合网站| 免费av在线网址| 国产精品美女www爽爽爽视频| 欧美顶级毛片在线播放| 欧美黄色免费网址| 狠狠色丁香久久婷婷综| 国产在线免费av| 91久久香蕉国产日韩欧美9色| 欧美一区二区在线观看视频| 欧美美女18p| 国产精品一区二区美女视频免费看 | 亚洲欧洲日韩一区二区三区| 337p粉嫩色噜噜噜大肥臀| 亚洲精品在线视频| 小h片在线观看| 蜜桃传媒视频麻豆第一区免费观看 | 亚洲综合精品在线| 中文字幕一区二区三区电影| 亚洲www.| 亚洲欧美日产图| 麻豆久久一区二区| 又嫩又硬又黄又爽的视频| 在线观看欧美黄色| 永久av在线| 国产精品一二区| 99精品在线免费在线观看| 亚洲福利精品视频| 国产精品全国免费观看高清| 最近中文字幕在线免费观看| 伊人久久久久久久久久| 国产精品蜜月aⅴ在线| 日韩电影免费观看高清完整| 久久av最新网址| 欧美成人国产精品一区二区| 91高清在线观看| av电影在线观看一区二区三区| 国产精品视频白浆免费视频| 久久精品国产99久久| 国产黄色一区二区三区| 亚洲亚洲人成综合网络| 五月天婷婷视频| 国产精品99久久久久久久久| sdde在线播放一区二区| 一级片黄色免费| 亚洲图片自拍偷拍| 黄网在线观看| 国产日韩精品在线观看| 女人色偷偷aa久久天堂| 艳妇乳肉亭妇荡乳av| 一本一道久久a久久精品 | 欧美精品成人91久久久久久久| 国产一区二区三区不卡av| 欧洲熟妇精品视频| 亚洲视频网在线直播| 黄色片一区二区三区| 日韩av电影免费观看高清| 99热精品久久| 亚洲av成人精品一区二区三区| 色美美综合视频| 成人免费视屏| 美女三级99| 国产在线一区观看| 国产无人区码熟妇毛片多| 中文字幕视频在线免费欧美日韩综合在线看 | 激情综合色综合久久综合| 久久久久成人网站| 亚洲欧美制服另类日韩| 国产不卡精品| 欧美污视频网站| 亚洲欧美日韩国产成人精品影院 | 国产精品嫩草99a| 亚洲国产999| 国产第一区电影| 午夜久久99| 老熟妇一区二区| 精品美女一区二区三区| 69堂精品视频在线播放| 妞干网视频在线观看| 欧美激情一区在线| 日韩有码第一页| **亚洲第一综合导航网站| 久久这里有精品15一区二区三区|