【问题标题】:PyQt cross platform installer builder [closed]PyQt 跨平台安装程序构建器 [关闭]
【发布时间】:2014-06-06 21:09:30
【问题描述】:

这是我的第一个 PyQt 项目。我正处于为各种平台制作设置/安装程序构建器的阶段。你如何构建安装程序?就像一个向导,引导用户完成接受许可、选择其他选项等步骤,最后复制您的文件。

【问题讨论】:

    标签: python qt user-interface installation pyqt


    【解决方案1】:

    就像它在这个页面的中间提到的那样:

    https://wiki.python.org/moin/DistributionUtilities

    有时需要安装程序来打包冻结工具的输出 放入包中:

    • Inno 设置 (Windows)
    • NSIS(Windows)
    • MacPython BundleBuilder (Mac OS X)

    我一直在为工作中的安装人员参与 NSIS,他们非常直接且易于使用。这主要用于 Windows 部署。

    我用于 Mac 的另一个部署工具是 DMG Creator。但这主要是针对 C++ 项目而不是 python。 Mac 和 Linux 上几乎总是有一个 Python 版本,但您可能仍然希望您的 Python 版本可用。

    希望对您有所帮助。

    【讨论】:

    • 从上面我开始意识到冻结工具和安装构建器之间存在差异。 Pyinstaller,py2exe 是冻结工具。刚刚测试过 Inno Setup,它看起来也很棒。非常感谢您的意见。
    【解决方案2】:

    PyQt 安装程序怎么样?使用 PyQt,您可以访问 QWizard 组件,您可以使用它来实现您的功能:

    import sys
    from PyQt5 import QtGui, QtCore, QtWidgets
    
    class MyApp(object):    
        def __init__(self):
            super(MyApp, self).__init__()               
            self.wizard = QtWidgets.QWizard()
    
            self.page1 = QtWidgets.QWizardPage()
            self.label = QtWidgets.QLabel("A label example")
            self.lineedit = QtWidgets.QLineEdit()
            self.vlayout = QtWidgets.QVBoxLayout()
            self.vlayout.addWidget(self.label)
            self.vlayout.addWidget(self.lineedit)
            self.page1.setLayout(self.vlayout)
            self.wizard.addPage(self.page1)
    
            self.page2 = QtWidgets.QWizardPage()
            self.wizard.addPage(self.page2)
    
            self.wizard.show()
            sys.exit(app.exec_())
    
    if __name__ == '__main__':
        app = QtWidgets.QApplication(sys.argv)
        MyApp()
    

    产生这个输出

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 2012-12-17
      • 1970-01-01
      • 2019-01-08
      • 2021-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多