標籤:== 連結 退出 gets width ddt window usb ...
用PyQt5建notepad介面
1 # -*-coding:utf-8 -*- 2 """ 3 簡介:用PyQt5做一個對話方塊,有菜單(2個、有獨立表徵圖、快速鍵)、提示欄(只有主視窗才有提示欄),退出時有二次確認 4 思路:引用並重構PyQt5裡的方法 5 6 思考:PyQt5要求先建組件,再調用,但是可以將連線物件放在後面 7 """ 8 9 10 import sys 11 from PyQt5.QtWidgets import QApplication,QMainWindow,QAction,QMessageBox #引入組件庫裡的整體組件、主視窗、動作、彈出框(最末端,頁面上層的,必須先處理) 12 from PyQt5.QtGui import QIcon 13 14 15 class myWin(QMainWindow): #新定義類一個類,繼承並重構QMainWindow這個方法 16 def __init__(self): #這裡固定不動 17 super().__init__() 18 self.initUI() #initUI() 這個方法重構 19 20 # 建立動作對象並設定 21 def initUI(self): 22 23 #動作------------------------------------------------------------ 24 #檔案_建立 25 action_buliding=QAction(QIcon(‘1.ico‘),‘&建立(N)‘,self) 26 action_buliding.setShortcut(‘Ctrl+N‘) 27 action_buliding.setStatusTip(‘建立文字檔‘) #提示,預設沒有 28 action_buliding.triggered.connect(self.open) #連結到開啟動作------------ 29 #檔案_開啟 30 action_open=QAction(QIcon(‘1.ico‘),‘&開啟(O)‘,self) 31 action_open.setShortcut(‘Ctrl+O‘) 32 action_open.triggered.connect(self.open) #連結到開啟動作------------ 33 # 檔案_儲存 34 action_save = QAction(QIcon(‘1.ico‘), ‘&開啟(O)‘, self) 35 action_save.setShortcut(‘Ctrl+O‘) 36 action_save.triggered.connect(self.open) # 連結到開啟動作------------ 37 # 檔案_另存新檔 38 action_other_save = QAction(QIcon(‘1.ico‘), ‘&另存新檔(A)‘, self) 39 action_other_save.triggered.connect(self.open) # 連結到開啟動作------------ 40 # 檔案_頁面設計 41 action_page_design = QAction(QIcon(‘1.ico‘), ‘&頁面設計‘, self) 42 action_page_design.triggered.connect(self.open) # 連結到開啟動作------------ 43 # 檔案_列印 44 action_page_print = QAction(QIcon(‘1.ico‘), ‘&列印‘, self) 45 action_page_print.triggered.connect(self.open) # 連結到開啟動作------------ 46 #檔案_退出 47 action_close=QAction(QIcon(‘1.ico‘),‘&退出‘,self) 48 action_close.setShortcut(‘A‘) 49 action_close.setStatusTip(‘這是退出功能‘) 50 action_close.triggered.connect(self.close) 51 52 #功能表列------------------------------------------------------------------------- 53 menuBar=self.menuBar() 54 menufile=menuBar.addMenu(‘&檔案(F)‘) 55 menufile.addAction(action_buliding) #建立 56 menufile.addAction(action_open) #開啟 57 menufile.addAction(action_save) #儲存 58 menufile.addAction(action_other_save) #另存新檔 59 menufile.addAction(action_page_design) #版面設定 60 menufile.addAction(action_page_print) #列印 61 menufile.addAction(action_close) #退出 62 63 menuBar = self.menuBar() 64 menufile = menuBar.addMenu(‘&編輯(E)‘) 65 menufile.addAction(action_open) 66 67 menuBar = self.menuBar() 68 menufile = menuBar.addMenu(‘&格式(O)‘) 69 menufile.addAction(action_open) 70 71 menuBar = self.menuBar() 72 menufile = menuBar.addMenu(‘&查看(V)‘) 73 menufile.addAction(action_open) 74 75 menuBar = self.menuBar() 76 menufile = menuBar.addMenu(‘&協助(H)‘) 77 menufile.addAction(action_open) 78 79 #(新增)建立工具列------------------------------------------------------------------- 80 # toolbar=self.addToolBar("退出") 81 # toolbar.addAction(action_open***)#與上面的動作重複,需要換一個動作或臨時注掉上面 82 83 84 # toolbar=self.addToolBar("退出") 85 # toolbar.addAction(action_close***)#與上面的動作重複,需要換一個動作或臨時注掉上面 86 87 #設定狀態列 88 self.statusBar().showMessage(‘這個是狀態列,會即時顯示進行中額操作....‘) 89 90 #設定視窗屬性 91 self.setGeometry(100,300,400,400) #geometry 幾何 92 self.setWindowTitle(‘建立文字文件‘) 93 self.setWindowIcon(QIcon(‘1.ico‘)) 94 self.show() #視窗展示方式 - 阻斷進程,當有結束訊號時再關閉 95 96 def closeEvent(self,event): #關閉 97 #擷取訊息框執行個體的值 98 msg=QMessageBox.question(self,‘退出警告‘,‘你確認退出嗎??‘,QMessageBox.Yes | QMessageBox.No,QMessageBox.No) 99 #判定訊息框的傳回值100 if msg==QMessageBox.Yes:101 event.accept()102 else:103 event.ignore()104 def open(self):105 print(‘這裡代指**動作‘)106 #主方法107 if __name__==‘__main__‘:108 app=QApplication(sys.argv)109 my=myWin()110 sys.exit(app.exec_())
PyQt5_notepad介面
Python_用PyQt5 建 notepad 介面