pyqt4 繪製點,橢圓,線,矩形

2021-07-11 13:57:58 字數 2022 閱讀 7520

#-*- coding:utf-8 -*-

#######pyqt繪製點,線,矩形,圓

frompyqt4.qtcoreimport*

frompyqt4.qtguiimport*

importsys

fromrandomimport*

classmywindow(qdialog,qwidget):

def__init__(self,parent = none):

super(mywindow,self).__init__(parent)

self.resize(800,800)

self.mainlayout = qgridlayout(self)

defpaintevent(self, e):########畫圖事件,每次update都會進入,想畫啥根據注釋進行,雙擊重畫

qp = qpainter()

qp.begin(self)

#self.drawlines(qp)######畫線

#self.drawpoints(qp) ###畫點

#self.drawrect(qp) ##畫矩形

self.drawellipse(qp) ##畫圓,橢圓

qp.end()

defmousedoubleclickevent(self, *args, **kwargs):

self.update()

defdrawpoints(self, qp):

qp.setpen(qpen(qt.red,10)) ######可以試下畫刷 setbrush,10指定點的大小

foriinrange(10):

qp.drawpoint(randint(1, self.width()), randint(1, self.height()) )

defdrawlines(self,qp):#######畫線

loc_list =

foriinxrange(4):

color = choice([qt.black,qt.white,qt.darkgray,qt.red,qt.green,qt.blue,qt.cyan,qt.magenta,qt.yellow,qt.darkred,qt.darkgreen,qt.darkblue,qt.darkcyan,qt.darkmagenta,qt.darkyellow])

qp.setpen(qpen(color, randint(0,10), randint(1,6)))####前乙個random是線條粗線,後乙個random是線條型別

foriinxrange(4):

qp.drawline(loc_list[i][0],loc_list[i][1],loc_list[(i+1)%4][0],loc_list[(i+1)%4][1])

defdrawrect(self,qp):

qp.setpen(qpen(qt.red,2,qt.solidline))

qp.drawrect(200,200,400,400)

defdrawellipse(self,qp):########橢圓,圓

qp.setpen(qpen(qt.blue,2,qt.solidline))

qp.drawellipse(100,200,300,300)

window=mywindow()

window.show()

pyqt4學習筆記

訊號與槽機制作為qt最重要的特性,提供了任意兩個qt物件之間的通訊機制。其中,訊號會在某個特定情況或動作下被觸發,槽是用於接收並處理訊號的函式。例如,要將乙個視窗中的變化情況通知給另乙個視窗,則乙個視窗傳送訊號,另乙個視窗的槽接收此訊號並進行相應的操作,即可實現兩個視窗之間的通訊。這比傳統的圖形化程...

PyQt4學習資料彙總

乙個月前研究了下pyqt4,感覺比較不錯。相比wxpython,介面美觀了很多,並且將介面設計與 邏輯很好的分離了開來。關於pyqt4的資料也不少,這裡我將我找到的資料彙總一下,以防自己以後忘得一乾二淨。1.pyqt4資料鏈結 2.寫 時,最好的幫助文件 static docs pyqt4 html...

PyQt4學習資料彙總

乙個月前研究了下pyqt4,感覺比較不錯。相比wxpython,介面美觀了很多,並且將介面設計與 邏輯很好的分離了開來。關於pyqt4的資料也不少,這裡我將我找到的資料彙總一下,以防自己以後忘得一乾二淨。1.pyqt4資料鏈結 2.寫 時,最好的幫助文件 static docs pyqt4 html...