PyQt 學習筆記1 自定義視窗框架

2022-03-12 23:21:25 字數 2355 閱讀 2006

自定義乙個屬於自己的視窗,初始化時自動設定好在螢幕**顯示,重寫退出事件的觸發器 closeevent(),並增加了設定圖示,簡化設定標題的函式名,其它類可以繼承它:

1#-*- coding: utf-8 -*-23

import

time

4import

sys5

from pyqt4 import

qtgui, qtcore67

8class

myqwidget(qtgui.qwidget):910

def__init__(self, title=none, icon=none):

11 qtgui.qwidget.__init__

(self)

12 self.setgeometry(300, 200, 600, 500)

13self.center()

14self.settitle(title)

15self.seticon(icon)

1617

def settitle(self, title=none):

18if title !=none:

19self.setwindowtitle(title)

2021

def seticon(self, icon=none):

22if icon !=none:

23self.setwindowicon(qtgui.qicon(icon))

2425

defresize(self, width, height):

26qtgui.qwidget.resize(self, width, height)

27self.center()

2829

defcenter(self):

30 screen =qtgui.qdesktopwidget().screengeometry()

31 size =self.geometry()

32 self.move((screen.width() - size.width()) / 2,

33 (screen.height() - size.height()) / 2)

3435

defcloseevent(self, event):

36 reply =qtgui.qmessagebox.question(

37 self, '

message

', '

are you sure to close?

', qtgui.qmessagebox.yes, qtgui.qmessagebox.no)

38if reply ==qtgui.qmessagebox.yes:

39event.accept()

40else:41

event.ignore()

4243

44class

widget2(myqwidget):

45pass

4647

48class

mainwindow(qtgui.qmainwindow, myqwidget):

4950

def__init__(self, parent=none):

51 qtgui.qmainwindow.__init__

(self)

52 self.resize(300, 200)

53 self.settitle('

statusbar')

54 self.statusbar().showmessage('

ready')

5556

5859 w1 = widget2(icon='

image\\rk.gif

', title='

myqwidget')

60w1.show()

6162 w2 =widget2()

63 w2.settitle('

hehe')

64 w2.seticon('

image\\fire.gif')

65 w2.resize(400, 300)

66w2.show()

6768 w3 =mainwindow()

69w3.show()

70view code

執行後截圖如下:(均處於整個螢幕的**)

QT學習筆記(二)自定義視窗

主函式 main.cpp include include mywidget.h include int main int argc,char argv 標頭檔案 mywidget.h ifndef mywidget h define mywidget h include class mywidget...

PyQt自定義控制項之實現全透明視窗

一般我們設計的普通視窗是這樣子的 class mywidget qwidget def init self super mywidget self init self resize 320 240 視窗的大小 self setwindowtitle test 視窗標題 self setobjectn...

PyQt5 自定義對話方塊呼叫

目錄 1.概況 2.模態對話方塊 2.1 模態對話方塊滿足的條件 2.2 模態對話方塊的呼叫 3.非模態對話方塊 3.1 對話方塊設定條件 3.2 對話方塊呼叫 desc 自定義命令執行 from pyqt5.qtwidgets import qdialog from customcommand i...