为了账号安全,请及时绑定邮箱和手机立即绑定

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 关注
  • 252 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号