猿问

PyQt Designer 创建的菜单栏

我在 PyQt-Designer 中设计了一个表面并将其转换为 .py 不,我正在尝试将功能链接到菜单栏(按钮)。有打开,保存,关闭之类的东西。。我尝试了很多,但都没有成功,希望您能帮我将一个简单的功能连接到菜单栏中的打开按钮。


例如链接到菜单栏 menubar->open->function(open_path) 的函数:


def open_path():

                root= Tk()

                Pfad=askdirectory()

                root.destroy

感谢您的帮助!


慕妹3146593
浏览 254回答 1
1回答

慕少森

首先我建议你阅读docs,它建议不要修改Qt Designer生成的类,而是必须创建另一个继承自widget的类,并使用Qt Designer提供的类作为接口。另一方面,没有必要使用 tkinter,Qt 提供了小部件来获取像 QFileDialog 这样的目录路径。最后你必须使用 self.actionOpen 的触发信号。考虑到上述解决方案是:from PyQt5 import QtCore, QtGui, QtWidgetsclass 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_())
随时随地看视频慕课网APP

相关分类

Python
我要回答