Python_用PyQt5 建 notepad 介面

來源:互聯網
上載者:User

標籤:==   連結   退出   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 介面

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.