亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PyQt Designer 創建的菜單欄

PyQt Designer 創建的菜單欄

慕妹3146593 2021-09-28 17:15:58
我在 PyQt-Designer 中設計了一個表面并將其轉換為 .py 不,我正在嘗試將功能鏈接到菜單欄(按鈕)。有打開,保存,關閉之類的東西。。我嘗試了很多,但都沒有成功,希望您能幫我將一個簡單的功能連接到菜單欄中的打開按鈕。例如鏈接到菜單欄 menubar->open->function(open_path) 的函數:def open_path():                root= Tk()                Pfad=askdirectory()                root.destroy感謝您的幫助!
查看完整描述

1 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

首先我建議你閱讀docs,它建議不要修改Qt Designer生成的類,而是必須創建另一個繼承自widget的類,并使用Qt Designer提供的類作為接口。


另一方面,沒有必要使用 tkinter,Qt 提供了小部件來獲取像 QFileDialog 這樣的目錄路徑。


最后你必須使用 self.actionOpen 的觸發信號。


考慮到上述解決方案是:


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):

    def setupUi(self, MainWindow):

        # ...


    def retranslateUi(self, MainWindow):

        # ...


class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):

    def __init__(self, parent=None):

        super(MainWindow, self).__init__(parent)

        self.setupUi(self)

        self.actionOpen.triggered.connect(self.open_file)


    @QtCore.pyqtSlot()

    def open_file(self):

        fdirectory = QtWidgets.QFileDialog.getExistingDirectory(self, "Open Directory")

        if fdirectory:

            print(fdirectory)



if __name__ == "__main__":

    import sys

    app = QtWidgets.QApplication(sys.argv)

    w = MainWindow()

    w.show()

    sys.exit(app.exec_())


查看完整回答
反對 回復 2021-09-28
  • 1 回答
  • 0 關注
  • 270 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號