Qt designer-菜單欄與工具欄

一級菜單的添加

創建窗口,選擇MainWindow
在這裏插入圖片描述
點擊Type here,添加選項卡與快捷鍵注意編輯快捷鍵時使用&,例如菜單(&F),編輯完畢後,必須按下回車來確認
在這裏插入圖片描述

工具欄,與二級菜單編輯

二者都要現在右下角的Action Editor中編輯
在這裏插入圖片描述
使用new添加(shortcut爲快捷鍵)
在這裏插入圖片描述
在這裏插入圖片描述
編輯完成後
如果添加工具欄直接鼠標左鍵單擊,選擇Add Tool Bar,將編輯好的時間拖動過去即可
如果是二級菜單,則在對應一級菜單下,選擇Add Separator,拖動過去即可
在這裏插入圖片描述
測試
邏輯文件

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget ,QFileDialog
from menu import Ui_MainWindow

class MainForm(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MainForm,self).__init__()
        self.setupUi(self)
        #信號與槽
        self.fileCloseaction.triggered.connect(self.close)
        self.fileOpenaction.triggered.connect(self.openMsg)

    def openMsg(self):
        #打開執行的函數體
        file,ok=QFileDialog.getOpenFileName(self,"打開","C:/","All Files (*);;Text Files(*.txt)")
        self.statusbar.showMessage(file)

if __name__=="__main__":
    app=QApplication(sys.argv)
    win=MainForm()
    win.show()
    sys.exit(app.exec_())

運行
在這裏插入圖片描述
選擇打開後的效果
在這裏插入圖片描述

加載其他窗口

1.首先新建一個普通窗口,命名爲child
在這裏插入圖片描述
2.方便起見,主窗口使用上例,但做如下修改,在主窗口中央添加一個柵格佈局管理器並命名爲Maingridlayout
需要注意的是,要將管理器的範圍擴展到剩餘整個窗口區域
在這裏插入圖片描述
3.將ui文件轉成py文件後,再編輯邏輯文件

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget ,QFileDialog
from menu import Ui_MainWindow
from child import Ui_Form
class MainForm(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MainForm,self).__init__()
        self.setupUi(self)
        #實例化child
        self.child=ChildForm()
        self.fileCloseaction.triggered.connect(self.close)
        self.fileOpenaction.triggered.connect(self.openMsg)
        #編輯添加窗口
        self.addWinaction.triggered.connect(self.childShow)

    def childShow(self):
        #添加子窗口
        self.Maingridlayout.addWidget(self.child)
        self.child.show()

    def openMsg(self):
        file,ok=QFileDialog.getOpenFileName(self,"打開","C:/","All Files (*);;Text Files(*.txt)")
        self.statusbar.showMessage(file)

class ChildForm(QWidget,Ui_Form):
    def __init__(self):
        super(ChildForm,self).__init__()
        self.setupUi(self)

if __name__=="__main__":
    app=QApplication(sys.argv)
    win=MainForm()
    win.show()
    sys.exit(app.exec_())
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章