python menu实例_Python高级进阶#019 pyqt5菜单menu应用,新建多窗体
知識回顧:
1.掌握的是QCalendarWidget日歷控件
2.click點擊事件(信號)觸發
3.掌握日期的格式化QDate
本節知識視頻教程
以下開始文字講解:
一、案例:菜單
1.新建第一個窗體
2.一級菜單的配置
3.二級菜單的配置
4.利用菜單功能實現界面跳轉,實現一個多窗體的打開
5.利用菜單功能實現溫馨提示
效果圖
二、開發思路
1.導入類QMainWindow。
2.使用Qmenu菜單類,這個菜單我們可以從窗體本身的方法進行獲取。
3.利用Qmenu的功能,來實現多級菜單addAtion這是一個直接產生點擊事件的行為;也可以用addMenu功能來增加子菜單。
4.每次都要彈出新窗體,這個新窗體,我們要制作成全局的窗體。
5.使用Qmessagebox來實現一個簡單的幫助。
三、開發過程要點
這里的簡便方法在哪里?
本例就是運用了QMainWindow本身功能的繼承
載入菜單的簡單功能
#利用窗體本身有的菜單欄功能進行載入
mymenu=self.menuBar()
mymenu.addAction(“新建”) 這里是要新建一個菜單按鈕功能
mymenu.addAction("運行")
mymenu.addAction("調試")
mymenu.addAction("幫助")
菜單按鈕行為的觸發要點
actHelp=QAction("幫助",self)
利用Qaction的triggered信號實現菜單按鈕的功能。這個信號也稱為“觸發”
actHelp.triggered.connect(self.ljyHelp)
mymenu.addAction(actHelp)
幫助按鈕的顯示內容,通過消息框進行提示。
msgbox=QMessageBox(QMessageBox.Information,"幫助","歡迎加老劉微信selidev交流",QMessageBox.Ok,self)
msgbox.show() 這里千萬不要忘記show出來
子菜單的書寫
這里要注意,直接將子菜單寫在父級菜單的下方。
這樣的好處,更多的也可以幫助我們進行二次理解。
子菜單的添加,通過addMenu功能
mymenu=self.menuBar()
mymenu.addMenu("文件")
子菜單的核心代碼
這里要注意,子菜單的寫法,是一級一級下來的,并且每一級的書寫,都有一個范圍對象。
mymenu=self.menuBar() 總菜單欄的返回對象
fileMenu=mymenu.addMenu(“文件”) 文件菜單的返回對象
fileMenu.addAction("新建")
recentFiles=fileMenu.addMenu(“最新的..”) 最新的…菜單項的返回對象
recentFiles.addAction("文件1")
recentFiles.addAction("文件2")
recentFiles.addAction("文件3")
對于新窗體的建議
建議一個窗體就寫一個類。那么每一次新的窗體出現的時候,就是實例化這個類。
注意:想要讓這個窗體被一直死循環監聽,必須要把這個窗體作為程序的全局變量。否則就會出現閃退現象。
新建一個窗體的寫法
1.直接寫一個自定義的類窗體
2.將這個類窗體先不要show
3.將這個類窗體在main中進行實例化,作為全局變量
4.在槽的行為中,將這個窗體show出來。
新建多個窗體
1.這里的思想要實例化多個窗體,且這些窗體都是全局變量
2.這里我們要考慮使用列表作為全局變量來承載這些窗體對象
3.此時,我們需要在自定義的類中書寫show的代碼
四、總結強調
1.掌握菜單欄的書寫
2.掌握菜單按鈕的單擊行為跳轉功能
3.掌握子菜單的建立
4.掌握多窗體的書寫注意點
本節教程源代碼:import sysfrom PyQt5.QtWidgets import QApplication,QWidget,QMainWindow,QAction,QMessageBox
class MyClass(QMainWindow): def __init__(self): super().__init__() self.initUI()
def initUI(self): self.setWindowTitle("劉金玉編程") self.setGeometry(300,100,400,300) #制作菜單 #利用窗體本身有的菜單欄功能進行載入 mymenu=self.menuBar() fileMenu=mymenu.addMenu("文件") actNewWin=QAction("新建窗體",self) actNewWin.triggered.connect(self.myNewWin)
fileMenu.addAction(actNewWin) recentFiles=fileMenu.addMenu("最新的..") recentFiles.addAction("文件1") recentFiles.addAction("文件2") recentFiles.addAction("文件3")
mymenu.addAction("運行") mymenu.addAction("調試") actHelp=QAction("幫助",self) actHelp.triggered.connect(self.ljyHelp) mymenu.addAction(actHelp)
self.show()
def myNewWin(self): list1.append(MyClass2())
def ljyHelp(self): msgbox=QMessageBox(QMessageBox.Information,"幫助","歡迎加老劉微信selidev交流",QMessageBox.Ok,self) msgbox.show()
class MyClass2(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle("編程創造城市http://bcczcs.com") self.show()
if __name__=="__main__": app=QApplication(sys.argv) mc=MyClass() list1=[]
app.exec_()
總結
以上是生活随笔為你收集整理的python menu实例_Python高级进阶#019 pyqt5菜单menu应用,新建多窗体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python如何处理表格_Python是
- 下一篇: python怎么计算时间_python怎