#ui.py,通過ui設計師制作後直接轉換為ui.py腳本
# -*- coding: utf-8 -*-
from pyqt4 import qtcore, qtgui
try:
_fromutf8 = qtcore.qstring.fromutf8
except attributeerror:
_fromutf8 = lambda s: s
class ui_form(object):
def setupui(self, form):
form.setobjectname(_fromutf8("form"))
form.resize(400, 300)
self.retranslateui(form)
qtcore.qmetaobject.connectslotsbyname(form)
def retranslateui(self, form):
form.setwindowtitle(qtgui.qapplication.translate("form", "form", none, qtgui.qapplication.unicodeutf8))
#main.py,可視化ui.py
from pyqt4 import qtcore, qtgui, qt
from ui import *
class mainwindow(qtgui.qmainwindow):
def __init__(self,parent=none):
qtgui.qwidget.__init__(self,parent)
self.ui=ui_form()
self.ui.setupui(self)
self.setwindowflags(qt.qt.framelesswindowhint)
#視窗無邊框化,寫于qmainwindow所在子類初始化函數中
#或者self.setwindowflags(qt.qt.splashscreen)
self.setattribute(qtcore.qt.wa_translucentbackground, true)
#視窗背景透明
def mousepressevent(self,event):
#定義滑鼠點選事件
if event.button() == qtcore.qt.leftbutton:
self.dragposition = event.globalpos() - self.framegeometry().topleft()
event.accept()
def mousemoveevent(self,event):
#定義滑鼠移動事件
if event.buttons() ==qtcore.qt.leftbutton:
self.move(event.globalpos() - self.dragposition)
event.accept()
def resizeevent(self,event):
#重繪窗體背景
image=qtgui.qimage()
image.load("images/background.png")
palette=qtgui.qpalette()
palette.setbrush(qtgui.qpalette.window,qtgui.qbrush(image.scaled(event.size(),qt.qt.keepaspectratiobyexpanding,qt.qt.smoothtransformation)))
self.setpalette(palette)
if __name__ == "__main__":
import sys
app = qtgui.qapplication(sys.argv)
myapp=mainwindow()
myapp.show()
app.exec_()