python创建gui应用程序_用户界面 – 如何使用Python创建可直接执行的跨平台GUI应用程序?…

  • Post author:
  • Post category:python


用户界面 – 如何使用Python创建可直接执行的跨平台GUI应用程序?

Python可以在多个平台上运行,可以用于桌面和Web应用程序,因此我得出结论,有一些方法可以将它编译成Mac,Windows和Linux的可执行文件。

问题是我不知道从哪里开始或如何用它来编写GUI,任何人都可以对此有所了解并指出我正确的方向吗?

11个解决方案

243 votes

首先,您将需要一些带有Python绑定的GUI库,然后(如果您需要)一些程序将您的python脚本转换为独立的可执行文件。

具有Python绑定的跨平台GUI库(Windows,Linux,Mac)

当然,有很多,但我在野外看到的最受欢迎的是:

Tkinter – 基于Tk GUI工具包(事实上的python标准GUI库,免费用于商业项目)

WxPython – 基于WxWidgets(流行,免费用于商业项目)

Qt使用PyQt绑定或Qt用于Python。 前者不适用于商业项目。 后者不太成熟,但可以免费使用。

完整清单见[http://wiki.python.org/moin/GuiProgramming]

单可执行文件(所有平台)

PyInstaller – 最活跃的

fbs – 如果你选择Qt以上

单个可执行文件(Windows)

py2exe – 曾经是最受欢迎的

单个可执行文件(Linux)

冻结 – 以与py2exe相同的方式工作,但目标是Linux平台

单个可执行文件(Mac)

py2app – 再次,像py2exe一样工作,但目标是Mac OS

lubos hasko answered 2019-02-17T20:17:20Z

49 votes

另一个系统(尚未在接受的答案中提及)是PyInstaller,当py2exe不能时,它可以用于我的PyQt项目。 我发现它更容易使用。

[http://www.pyinstaller.org/]

Pyinstaller基于Gordon McMillan的Python安装程序。 哪个不再可用。

Jamie answered 2019-02-17T20:17:56Z

14 votes

py2exe的另一个工具是bbfreeze,它为windows和linux生成可执行文件。 它比py2exe更新,可以很好地处理鸡蛋。 我发现如果没有配置适用于各种各样的应用程序,它会神奇地工作。

Michael Twomey answered 2019-02-17T20:18:20Z

11 votes

还有PyGTK,它基本上是Gnome Toolkit的Python包装器。 我发现比Tkinter更容易包围我,因为之前几乎不了解GUI编程。 它工作得很好,并有一些很好的教程。 不幸的是,还没有适用于Windows的Python 2.6安装程序,可能暂时还没有。

Tofystedeth answered 2019-02-17T20:18:44Z

6 votes

由于现在默认情况下几乎每个非Windows操作系统都安装了python,因此您唯一需要确保的是安装了所有非标准库。

话虽如此,可以构建包含python解释器的可执行文件,以及您使用的任何库。 但是,这可能会创建一个大型可执行文件。

MacOS X甚至包括Xcode IDE中的支持,用于创建完整的独立GUI应用程序。 这些可以由运行OS X的任何用户运行。

Matthew Schinckel answered 2019-02-17T20:19:20Z

4 votes

我不确定这是最好的方法,但是当我在Windows上部署Ruby GUI应用程序(不是Python,但就.exe而言有相同的“问题”)时,我只写了一个 C#中的短发射器调用我的主脚本。 它编译成可执行文件,然后我有一个应用程序可执行文件。

Brian Warshaw answered 2019-02-17T20:19:44Z

4 votes

对于GUI本身:

PyQT几乎是参考。

开发快速用户界面的另一种方法是编写Web应用程序,让它在本地运行并在浏览器中显示应用程序。

另外,如果你选择lubos hasko建议的Tkinter选项您可能想尝试使用portablepy让您的应用在Windows环境中运行没有Python。

fulmicoton answered 2019-02-17T20:20:27Z

2 votes

# I’d use tkinter for python 3

import tkinter

tk = tkinter.Tk()

tk.geometry(“400×300+500+300”)

l = Label(tk,text=””)

l.pack()

e = Entry(tk)

e.pack()

def click():

e[‘text’] = ‘You clicked the button’

b = Button(tk,text=”Click me”,command=click)

b.pack()

tk.mainloop()

# After this I would you py2exe

# search for the use of this module on stakoverflow

# otherwise I could edit this to let you know how to do it

py2exe

然后你应该使用py2exe,例如,引入一个文件夹运行应用程序所需的所有文件,即使用户在他的电脑上没有python(我说的是windows …对于苹果os,没有必要 我认为,一个可执行文件,因为它带有python而不需要安装它。

创建此文件

1)创建setup.py

使用此代码:

from distutils.core import setup

import py2exe

setup(console=[‘l4h.py’])

将其保存在文件夹中

2)将您的程序放在setup.py的同一文件夹中在此文件夹中放入您想要使其可分发的程序:es:l4h.py

ps:更改文件的名称(从l4h到你想要的任何东西,这是一个例子)

3)从该文件夹运行cmd(在文件夹上,右键单击+ shift并在此处选择start cmd)

4)写入cmd:> python setup.py py2exe

5)在dist文件夹中有你需要的所有文件

6)你可以拉链并分发它

Pyinstaller

从cmd安装它

**

pip install pyinstaller

**

从文件所在的文件夹中的cmd运行它

**

pyinstaller file.py

**

Giovanni Gianni answered 2019-02-17T20:22:41Z

1 votes

您不需要为Mac / Windows / Linux编译python。 它是一种解释型语言,因此您只需要在您选择的系统上安装Python解释器(它可用于所有三个平台)。

对于跨平台工作的GUI库,Python的Tk / Tcl小部件库运行良好,我相信是足够的跨平台。

Tkinter是Tk / Tcl的python接口

从python项目网页:

Tkinter并不是唯一的GuiProgramming   Python工具包。 然而,它是   最常用的一个,几乎是   只有一个便于携带   Unix,Mac和Windows

Justin Standard answered 2019-02-17T20:23:31Z

0 votes

您可以使用pip install appjar进行基本的GUI开发。

from appJar import gui

num=1

def myfcn(btnName):

global num

num +=1

win.setLabel(“mylabel”, num)

win = gui(‘Test’)

win.addButtons([“Set”], [myfcn])

win.addLabel(“mylabel”, “Press the Button”)

win.go()

请参阅appJar网站上的文档。

从命令行使用pip install appjar进行安装。

shahar_m answered 2019-02-17T20:24:07Z

0 votes

PySimpleGUI包装tkinter并适用于Python 3和2.7。 您可以使用在tkinter中找到的所有相同小部件(滑块,复选框,单选按钮等)制作自定义GUI。 代码往往非常紧凑和可读。

#!/usr/bin/env python

import sys

if sys.version_info[0] >= 3:

import PySimpleGUI as sg

else:

import PySimpleGUI27 as sg

layout = [[ sg.Text(‘My Window’) ],

[ sg.Button(‘OK’)]]

window = sg.Window(‘My window’).Layout(layout)

button, value = window.Read()

如PySimpleGUI文档中所述,要构建运行的.EXE文件:

pyinstaller -wF MyGUIProgram.py

MikeyB answered 2019-02-17T20:24:44Z



版权声明:本文为weixin_39921023原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。