改寫linux視窗程式設計的Qt例子 5

2021-06-19 07:46:25 字數 4221 閱讀 1047

第三十六例子 乙個簡單的繪圖工具

首先,先說明下,不知道為什麼,反正各種線段的型別,感覺不明顯,不知道是程式不對還是怎麼了

求大神指點。。。

__author__ = '[email protected]'

try:

from pyside import qtgui

from pyside import qtcore

except importerror:

from pyqt4 import qtgui

from pyqt4 import qtcore

class pianarea(qtgui.qwidget):

def __init__(self):

super(pianarea,self).__init__()

self.setpalette(qtgui.qpalette(qtcore.qt.white))

self.setautofillbackground(true)

self.setminimumsize(400,400)

self.pix = qtgui.qpixmap(self.size())

self.pix.fill(qtcore.qt.white)

self.mypen = qtgui.qpen()

self.mypen.setstyle(qtcore.qt.solidline)

self.mypen.setcolor( qtcore.qt.red)

self.mypen.setwidth(5)

self.startpos = qtcore.qpoint(0,0)

def setpenstyle(self,newstyle):

self.mypen.setstyle(qtcore.qt.dashdotdotline)

self.update()

def setcolor(self,newcolor):

self.mypen.setcolor(newcolor)

def setwidth(self,newwidth):

self.mypen.setwidth(newwidth)

def clear(self):

self.pix = qtgui.qpixmap(self.size())

self.pix.fill(qtcore.qt.white)

self.update()

def resizeevent(self, e):

if self.height() > self.pix.height() or self.width() > self.pix.width():

newpaint = qtgui.qpixmap(self.size())

newpaint.fill(qtcore.qt.white)

p = qtgui.qpainter(newpaint)

p.setpen(self.mypen)

p.drawpixmap(qtcore.qpoint(0,0),self.pix)

self.pix = newpaint

super().resizeevent(e)

def mousepressevent(self, e):

self.startpos = e.pos()

def mousemoveevent(self, e):

temppainter = qtgui.qpainter(self.pix)

temppainter.setpen(self.mypen)

temppainter.drawline(self.startpos,e.pos())

self.startpos = e.pos()

self.update()

def paintevent(self, e):

newpaint = qtgui.qpainter(self)

newpaint.setpen(self.mypen)

newpaint.drawpixmap(qtcore.qpoint(0,0),self.pix)

class mainwindow(qtgui.qmainwindow):

def __init__(self):

super(mainwindow,self).__init__()

self.area = pianarea()

self.setcentralwidget(self.area)

self.createcrt()

def slotwidth(self,newwidth):

self.area.setwidth(newwidth)

def slotcolor(self):

newcolor = qtgui.qcolordialog.getcolor()

if newcolor:

self.pencolorshow.setpalette(newcolor)

self.area.setcolor(newcolor)

def slotstyle(self,index):

if index == -1:

return

newstyle = self.penstyle.itemdata(index)

self.area.setpenstyle(newstyle)

def createcrt(self):

self.penwidth = qtgui.qspinbox()

self.penwidth.setrange(1,15)

self.penwidth.valuechanged.connect(self.slotwidth)

self.pencolorshow = qtgui.qframe(self)

self.pencolorshow.setautofillbackground(true)

self.pencolorshow.setpalette(qtgui.qpalette(qtcore.qt.red))

self.pencolorshow.setminimumsize(20,25)

self.pencolor = qtgui.qpushbutton("畫筆顏色")

改寫linux視窗程式設計的Qt例子 6

第三十七例子 改變的透明度 首先,書上的很多列子,沒有給全,有些 片段是我自己加的。我水平不是很高,如果,有些 加的不是合適,懇請各位大神指點!另外,關於注釋的話,書上都講的很清楚了,我這裡沒有必要畫蛇添足了。如果,實在有不懂的地方,麻煩告訴我,如果我懂的話,我會告訴你!如下 author 3751...

Linux 改寫rm命令,讓刪除程式設計備份

習慣了會經常使用 rm rf,這樣 資料就會丟失,如果這樣寫後,可以考慮獲取最後乙個引數,或者最後多個引數 這裡是獲取第1個引數 file 1 pre path echo file grep e absolute path file if n pre path then absolute path ...

Qt的視窗設定

qt的視窗右上角的 隱藏 setwindowflags qt windowclosebuttonhint 別聽下面的各求所需 qt的視窗右上角的 隱藏 setwindowflags qt dialog qt windowclosebuttonhint 感覺我這個比較好,上面有時會有問題 qt的視窗右...