第三十六例子 乙個簡單的繪圖工具
首先,先說明下,不知道為什麼,反正各種線段的型別,感覺不明顯,不知道是程式不對還是怎麼了
求大神指點。。。
__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的視窗右...