Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于浏览器的应用程序还是独立的GUI应用程序?_Python_User Interface_Browser - Fatal编程技术网

Python 基于浏览器的应用程序还是独立的GUI应用程序?

Python 基于浏览器的应用程序还是独立的GUI应用程序?,python,user-interface,browser,Python,User Interface,Browser,我肯定以前有人问过这个问题,但我找不到 与使用普通GUI框架相比,为独立应用程序使用基于浏览器的界面有哪些好处/限制 我正在开发一个Python程序,该程序目前使用wxPython为GUI实现。应用程序只是用户输入表单和对话框。我正在考虑迁移到PyQt,因为它有很多小部件(用于将来的扩展),然后我意识到我可能只需要使用浏览器就可以完成很多相同的事情 该应用程序目前不需要互联网接入,但将来也有可能。如果我选择基于浏览器的方式,我会考虑将其用于web框架 编辑澄清一下,从现在起,该应用程序将基于浏

我肯定以前有人问过这个问题,但我找不到

与使用普通GUI框架相比,为独立应用程序使用基于浏览器的界面有哪些好处/限制

我正在开发一个Python程序,该程序目前使用wxPython为GUI实现。应用程序只是用户输入表单和对话框。我正在考虑迁移到PyQt,因为它有很多小部件(用于将来的扩展),然后我意识到我可能只需要使用浏览器就可以完成很多相同的事情

该应用程序目前不需要互联网接入,但将来也有可能。如果我选择基于浏览器的方式,我会考虑将其用于web框架



编辑澄清一下,从现在起,该应用程序将基于浏览器,而不是基于web。所有信息都将本地存储在客户端计算机上;不需要进行服务器调用,也不需要访问Internet(不过可能会在稍后进行)。它将只是一个浏览器GUI,而不是wxPython/PyQt GUI。希望这是有意义的。

基于浏览器的明显优势:

  • 无论平台如何,都可以呈现相同的UI
  • 您可以轻松升级应用程序,并且所有用户都可以运行相同版本的应用程序
  • 您知道应用程序将运行的环境(服务器硬件/操作系统),与GUI应用程序将安装在的众多操作系统/硬件配置相比,这使得测试和支持更加容易
对于基于GUI的:

  • 有些应用程序(例如:图像编辑)在本机GUI应用程序中工作得更好
  • 不需要网络访问
另见我的评论:

跨平台GUI是一个由来已久的问题。Qt、GTK、wxWindows、javaawt、javaswing、XUL——它们都面临着同样的问题:生成的GUI并非在每个平台上都是本地的。更糟糕的是,每个平台都有略微不同的外观和感觉,因此,即使您能够以某种方式获得一个在每个平台上看起来都是本地的工具包,您也必须以某种方式将应用程序编码为在每个平台上都是本地的

归根结底,这取决于一个决定:您是希望最大限度地减少开发工作量,并使GUI在每个平台上的外观和感觉都不太正确,还是希望最大限度地提高用户体验?如果选择第二个选项,则需要为每个平台开发一个公共后端和一个自定义UI。[编辑:或使用web应用程序。]


我刚才有一个想法:你还需要考虑你的应用程序操纵的数据类型以及存储在哪里,以及用户会如何感觉。人们显然可以将他们的facebook个人资料数据存储在Web服务器上,但如果您正在编写一个像MYOB这样的财务应用程序,并且希望将他们所有的个人财务详细信息存储在您的服务器上,他们可能会有不同的感觉。您可能能够实现这一点,但要实现所需的安全性并确保用户群的数据是安全的,需要付出大量的努力。在这种情况下,如果使用本机GUI应用程序,您可能会认为总体工作量较低。

浏览器可以通过internet访问任何地方,并部署到服务器上。桌面应用程序必须部署到他们的计算机上,每台计算机都有自己的独特性,即使使用相同的操作系统和版本。这会给你带来很多麻烦。
选择web。

当涉及到使用用户输入表单的简单数据输入时,我认为使用基于浏览器的解决方案可能更容易、更快地开发

除非您的核心功能是界面本身(“如果它是一个核心业务功能——不管怎样,您自己动手吧。”,请参见),否则我觉得浏览器能够更好地执行表单呈现和处理,而不必从头开发GUI。此外,更不用说编写GUI代码需要更长的时间,而不是在浏览器发布HTML表单后生成并处理它们

我过去发现,一位朋友让我写一个应用程序,输入调查结果。起初,我正在编写一个Java小程序来显示调查本身以及所有的广播框,这时我突然想到,最好编写一个简单的HTTP服务器来生成表单并对其进行处理

真正的问题在于你是否正在发展:

  • 用户界面
  • 数据输入应用程序

  • 如果您正在制作数据输入应用程序,则将用户界面留给浏览器,并将重点放在您的核心功能上。

    基于浏览器的界面的好处:

    • 易于管理:无需在用户计算机上安装,升级只需在服务器端执行,所有用户均可立即使用。数据备份可以在一台机器上执行,因为数据不会分散到多个客户端
    • 应用程序可以通过浏览器从任何机器访问
    • 可以轻松一致地支持多个平台
    • 由于可以在服务器上执行密集操作,因此客户端的内存和CPU需求可能会大大减少
    • 提高了安全性:数据存储在一台服务器上,而不是多台客户机上,并且可以更好地控制访问
    • 集中式环境的许多其他好处,包括日志记录、从多个源输入的数据可以立即从其他客户端获得,等等
    • 根据我的经验,调试通常更容易,开发基于web的解决方案则更快
    基于GUI的界面的好处:

    • 可能更容易设计出更灵敏、更流畅的界面
    • 可以利用浏览器可能无法提供的特定于操作系统的功能
    • 不一定需要网络访问
    • 别胡闹