色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PyQT5中的QPainter類支持與圖元支持實(shí)現(xiàn)圖形繪制

OpenCV學(xué)堂 ? 來源:OpenCV開發(fā)者聯(lián)盟 ? 2023-02-10 11:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

圖形與圖像繪制支持是一個GUI框架庫的核心模塊之一,從Java的Graphics2D到AndroidCanvas類支持到PyQT5中的QPainter類支持與圖元支持,都很好的滿足了GUI庫的圖形繪制與渲染需求。

QPainter類介紹

QPainter類是PyQT5中圖形繪制類,支持圓、橢圓、矩形、圓角矩形、線段、文本、圖像、多邊形、弧形等常見幾何形狀的繪制與填充,支持顏色、旋轉(zhuǎn)、狀態(tài)復(fù)位、平移、錯切等設(shè)置操作。所有的QWidget類都繼承了paintEvent方法,繪制代碼都應(yīng)該在paintEvent方法中完成執(zhí)行。一個典型的paintEvent方法繪制代碼如下:

def paintEvent(self, paintEvent):
    painter = QPainter(self)
    painter.setPen(Qt.blue)
    painter.setFont(QFont("Arial", 30))
    painter.drawText(rect(), Qt.AlignCenter, "OpenCV學(xué)堂")
上述代碼首先獲取畫筆,然后設(shè)置顏色與字體,最后繪制文本。通過用戶創(chuàng)建Painter實(shí)例的方式繪制,繪制結(jié)束之后需要顯式銷毀,通過系統(tǒng)的painter繪制則無需這樣,對比如下: 用戶創(chuàng)建繪制
def paintEvent(self, paintEvent):
    p = QPainter()
    p.begin(self)
    p.drawLine(...)         # drawing code
    p.end()

調(diào)用系統(tǒng)繪制

def paintEvent(self, paintEvent):
    p = QPainter(self)
    p.drawLine(...)         # drawing code
所有繪制的函數(shù)支持都是draw開頭,所有填充的函數(shù)都是fill開頭,什么繪制與填充,請看下圖:

1470c278-a8da-11ed-bfe3-dac502259ad0.png

綜合代碼演示

代碼實(shí)現(xiàn)了繪制與填充不同的幾何形狀,支持不同顏色設(shè)置,線寬設(shè)置,風(fēng)格設(shè)置等。運(yùn)行結(jié)果如下圖:

1492bf90-a8da-11ed-bfe3-dac502259ad0.png

添加上顯示圖像功能之后如下:

14b1a4a0-a8da-11ed-bfe3-dac502259ad0.png

相關(guān)自定義繪制類代碼如下:

 1fromPyQt5importQtWidgets
 2fromPyQt5importQtGui
 3fromPyQt5importQtCore
 4importsys
 5
 6
 7classMyCustomCanvas(QtWidgets.QWidget):
 8def__init__(self):
 9super().__init__()
10print("createmycustomcanvas")
11
12defpaintEvent(self,event):
13painter=QtGui.QPainter(self)
14#設(shè)置為反鋸齒
15painter.setRenderHint(QtGui.QPainter.Antialiasing)
16
17#填充黑色背景
18painter.fillRect(self.rect(),QtCore.Qt.black)
19
20#繪制圖像
21pic=QtGui.QPixmap("test3.png")
22painter.drawPixmap(self.rect(),pic)
23
24#設(shè)置字體與顏色,繪制文本
25pen=QtGui.QPen(QtCore.Qt.green,5,QtCore.Qt.DashLine)
26painter.setPen(pen)
27font=QtGui.QFont()
28font.setBold(True)
29font.setPointSizeF(24)
30painter.setFont(font)
31painter.drawText(QtCore.QPoint(20,50),"OpenCV學(xué)堂")
32
33#5表示線寬
34pen=QtGui.QPen(QtCore.Qt.red,5,QtCore.Qt.DashLine)
35painter.setPen(pen)
36painter.drawLine(50,100,50,400)
37
38#繪制矩形
39pen=QtGui.QPen(QtCore.Qt.yellow,5,QtCore.Qt.DotLine)
40painter.setPen(pen)
41painter.drawRect(QtCore.QRect(100,100,200,200))
42painter.fillRect(100,100,200,200,QtCore.Qt.green)
43
44#繪制圓
45pen=QtGui.QPen(QtCore.Qt.red,5,QtCore.Qt.DotLine)
46painter.setPen(pen)
47
48#設(shè)置為填充模式
49painter.setBrush(QtGui.QBrush(QtCore.Qt.yellow,QtCore.Qt.SolidPattern))
50
51#直接繪制
52painter.drawEllipse(QtCore.QRect(300,300,150,150))
53
54#貝塞爾曲線
55painter.setBrush(QtGui.QBrush(QtCore.Qt.red,QtCore.Qt.SolidPattern))
56self.drawBezierCurve(painter)
57
58defdrawBezierCurve(self,qp):
59path=QtGui.QPainterPath()
60path.moveTo(450,100)
61path.cubicTo(450,100,550,200,450,350)
62qp.drawPath(path)






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2987

    瀏覽量

    107984
  • GUI
    GUI
    +關(guān)注

    關(guān)注

    3

    文章

    677

    瀏覽量

    40972
  • pyqt5
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    3503

原文標(biāo)題:PyQT5開發(fā)之自定義QWegdit實(shí)現(xiàn)圖形繪制

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    可視可交互!H618上用OpenCV讀取圖像顯示到PyQt5窗口上

    pyqt5窗口1. 用Qt Designer畫個窗口 這里我在電腦上使用designer軟件,創(chuàng)建一個Main Window類型窗體。從左邊組件欄拖出一個label放到窗口中間。點(diǎn)一下放在窗口中的label
    發(fā)表于 01-10 09:55

    使用PyQt5自動初始化OpenVINO?環(huán)境出現(xiàn)報錯怎么解決?

    編寫了一個程序以使用 PyQt5 自動初始化OpenVINO?環(huán)境:從 PyQt5 導(dǎo)入 QtWidgets 導(dǎo)入操作系統(tǒng) #import時間 導(dǎo)入系統(tǒng) 如果__name__
    發(fā)表于 03-07 06:35

    PyQt

    PyQt是一個創(chuàng)建GUI應(yīng)用程序的工具包。它是Python編程語言和Qt庫的成功融合。Qt庫是目前最強(qiáng)大的庫之一。PyQt實(shí)現(xiàn)了一個Python模塊集。它有超過300,將近6000個
    發(fā)表于 04-14 10:26

    【Firefly RK3399試用體驗(yàn)】第二篇:PyQt5大戰(zhàn)點(diǎn)燈

    ;/sys/class/leds/ firefly:yellow:use/brightness//黃燈亮之后對PyQt5的安裝做一下介紹,ubuntu的包管理安裝PyQt5時會自動安裝依賴的Python等
    發(fā)表于 06-12 07:49

    【Firefly RK3399試用體驗(yàn)】PyQt5信號檢測系統(tǒng)(結(jié)項(xiàng))

    是RK3399上PyQt顯示的內(nèi)部通道波形的FFT由于手里沒有信號源等啥設(shè)備,只好用直流電壓進(jìn)行測試,channel0,如下所示接下來重點(diǎn)闡述PyQt5部分設(shè)計,PyQt5部分涉及到網(wǎng)口通信部分我
    發(fā)表于 07-13 12:55

    主要介紹繪圖QPainter

    Qt開發(fā)技術(shù):Qt繪圖系統(tǒng)(二)前話 紅胖子,來也! Qt的圖形繪制系統(tǒng),本篇主要介紹繪圖QPainter。繪圖:QPainter
    發(fā)表于 07-26 07:39

    利用PyQt5編輯軟件界面的簡單步驟

    的操作以及利用PyQt5編輯軟件界面的簡單步驟。實(shí)現(xiàn)難度不大,但需要運(yùn)行第二線程運(yùn)行輸出脈沖的程序。 首先,推薦一下PyQt5和Eric6的學(xué)習(xí)資料...
    發(fā)表于 09-16 07:48

    如何使用Python配合PyQT5模塊來開發(fā)圖形化應(yīng)用程序

    By Toradex秦海1).簡介隨著Python在互聯(lián)網(wǎng)人工智能領(lǐng)域的流行,大家也慢慢感受到Python開發(fā)的便利,本文就基于嵌入式ARM平臺,介紹使用Python配合PyQT5模塊來開發(fā)圖形
    發(fā)表于 12-24 06:41

    魯班貓0 ubuntu20 解決python3.10安裝pyqt5

    前面用pip install pyqt5,總是安裝不成功。經(jīng)查閱資料,最后用:udo apt install python3-pyqt5成功安裝cat@lubancat:~$
    發(fā)表于 04-09 11:04

    Python PyQt5工具在Windows平臺上的安裝方法

    Python PyQt5工具安裝步驟:1. 安裝Python3.4.1,默認(rèn)安裝路徑:C:\Python34;2. 安裝PyQt5,會根據(jù)Python的安裝路徑自動進(jìn)行安裝,不需要修改;3. 測試安裝是否成功。創(chuàng)建一個py文件,寫入以下代碼,運(yùn)行后彈出widget窗口就說
    發(fā)表于 02-13 10:45 ?2691次閱讀

    PyQt5的中文教程電子書免費(fèi)下載

     本教程的目的是帶領(lǐng)你入門PyQt5。教程內(nèi)所有代碼都在Linux上測試通過。PyQt4 教程是PyQt4的教程,PyQt4是一個Python(同時
    發(fā)表于 08-06 08:00 ?19次下載
    <b class='flag-5'>PyQt5</b>的中文教程電子書免費(fèi)下載

    OpenCV+PyQT5開發(fā)桌面應(yīng)用幾個重要的坑與解決

    大概去年八月份的時候,我打算用OpenCV+PyQT5開發(fā)一套OpenCV教學(xué)演示與快速驗(yàn)證桌面軟件,說實(shí)話那個時候我對PyQT5的理解就是Hello World水平。經(jīng)過一年多開發(fā)錘煉,不斷實(shí)踐
    的頭像 發(fā)表于 12-13 11:55 ?2136次閱讀

    請問PyQT5是如何構(gòu)建YOLOv8界面應(yīng)用程序的

    PyQT5引用OpenMV2023版本支持SDK,實(shí)現(xiàn)二次開發(fā)使用。OpenMV算法層已經(jīng)開放SDK調(diào)用支持,從圖像處理、分析、測量到深
    的頭像 發(fā)表于 02-14 17:07 ?1821次閱讀

    使用pycharm開發(fā)上位機(jī)配置pyqt5的環(huán)境

    在上位機(jī)的開發(fā)過程,使用QT的圖形化界面,是開發(fā)上位機(jī)最好最簡單的選擇,因此我將講述配置pyqt5的環(huán)境。 軟件安裝: 安裝:pycharm的社區(qū)2021.02版 QT(安裝參考https
    發(fā)表于 05-29 16:12 ?0次下載
    使用pycharm開發(fā)上位機(jī)配置<b class='flag-5'>pyqt5</b>的環(huán)境

    基于PyQT5與ONNXRUNTIME實(shí)現(xiàn)風(fēng)格遷移應(yīng)用

    2023年一月份跟二月份創(chuàng)建了一個PyQT5人工智能軟件開發(fā)系列的文章系列,過去的兩個月都沒怎么更新,心里一直想有時間繼續(xù)更新下去,今天又更新了一篇,基于PyQT5實(shí)現(xiàn)多線程、界面化、風(fēng)格遷移模型的實(shí)時推理。
    的頭像 發(fā)表于 10-25 10:35 ?686次閱讀
    基于<b class='flag-5'>PyQT5</b>與ONNXRUNTIME<b class='flag-5'>實(shí)現(xiàn)</b>風(fēng)格遷移應(yīng)用
    主站蜘蛛池模板: 人妻免费久久久久久久了 | 成人女人A级毛片免费软件 成人免费在线视频 | 雪恋电影完整版免费观看 | 中国老妇xxxhd| 好大的太粗好深BL | 精品国产成a人在线观看 | 日韩亚洲不卡在线视频 | 学生精品国产在线视频 | 日本不卡不码高清免费 | 果冻传媒色AV国产播放 | 在线亚洲国产日韩欧洲专区 | 久久一区精品 | 最新高清无码专区在线视频 | 18未满不能进的福利社 | 久久久久伊人 | 乱码中字在线观看一二区 | 吃奶摸下的羞羞漫画 | 诱人的女邻居9中文观看 | 护士日本xx厕所 | 99婷婷久久精品国产一区二区 | 日本高清天码一区在线播放 | 特级aa 毛片免费观看 | 国产精品九九九久久九九 | 国产永久免费观看视频软件 | 在线观看国产人视频免费中国 | 欧美丰满熟妇无码XOXOXO | 麻豆免费观看高清完整视频在线 | 国产精品无码AV天天爽人妻蜜桃 | 亚洲免费三区 | 洗濯屋H纯肉动漫在线观看 羲义嫁密着中出交尾gvg794 | 亚洲综合国产在不卡在线 | 一区两区三不卡 | 上课失禁丨vk | 青苹果乐园在线观看电视剧 | 国内精品人妻无码久久久影院蜜桃 | 久久免费资源福利资源站 | 亚洲一区在线视频观看 | 涩涩在线观看免费视频 | 99久久久久精品国产免费麻豆 | 久久秋霞理论电影 | 欧美18videosex性欧美老师 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品