【问题标题】:Application with both console and gui mode具有控制台和 gui 模式的应用程序
【发布时间】:2010-05-13 14:28:25
【问题描述】:

我有一个 python 控制台应用程序。像大多数 python 控制台应用程序一样,它使用 OptionParser 模块来获取参数。我现在使用 wxPython 为我的应用程序开发了一个 GUI,我想将两者集成。我希望我的应用程序既可以从控制台运行,也可以从操作系统的 UI 运行。当从控制台调用它时,它作为控制台应用程序运行,当它在操作系统的 UI 中双击时,它作为 GUI 应用程序运行。我怎么能做这样的事情?有人可以告诉我__main__ 块应该是什么样的吗?

非常感谢。

【问题讨论】:

    标签: python user-interface wxpython console-application optionparser


    【解决方案1】:

    您可以将 args 传递给应用程序然后使用 arg 解析器吗?

    if __name__ == "__main__":
      from  optparse import OptionParser
    
      parser = OptionParser() 
      parser.add_option("-g","--gui_mode",
                        dest="guimode",
                        help="start program in gui mode",
                       action="store_true")
    
      (options,args) = parser.parse_args()
    
      if (options.guimode):
          print "start wx app"
      else:
          print "start cmd line app"
    

    编辑: 抱歉,误读了,我以为你想从另一个 Wx 应用程序开始。而不是来自“OS UI” 我不知道有一种很棒的跨平台方式来做到这一点。问题是在 windows 中.py 文件通常与 python.exe 相关联.pyw 文件类似,但没有控制台窗口。
    所以你实际上必须修改操作系统来支持这种行为。例如,您可以创建一个快捷方式(在 windows/gnome/kde 中),该快捷方式使用 --gui_mode 启动程序,或者使用 *nix 操作系统中建议的 @Austin 之类的机制。 如果您正在安装应用程序,disttools 可以自动执行其中一些内容

    【讨论】:

      【解决方案2】:

      试试:

      import os
      print os.environ
      

      并在您通过双击执行脚本时将 os.environ['TERM'] 输出到 tkinter 窗口。

      对我来说,它是“xterm-color”。

      您使用的是什么操作系统?如何确保双击 .py 文件会导致其执行?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多