tutorial - tkinter python3教程




如何使用Python创建可直接执行的跨平台GUI应用程序? (8)

PySimpleGUI包装了tkinter并在Python 3和2.7上运行。 它还可以在Qt,WxPython和Web浏览器中运行,并且所有平台都使用相同的源代码。

您可以创建自定义GUI,以利用在tkinter中找到的所有相同窗口小部件(滑块,复选框,单选按钮等)。 该代码往往非常紧凑且易读。

#!/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

Python可在多种平台上工作,并且可用于桌面和Web应用程序,因此,我得出结论,有某种方法可以将其编译为Mac,Windows和Linux的可执行文件。

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


bbfreeze是py2exe的替代工具,它可以为Windows和Linux生成可执行文件。 它比py2exe更新,并且可以很好地处理鸡蛋。 我发现,无需为各种应用程序进行配置,魔术效果更好。


对于GUI本身:

PyQT几乎是参考。

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

另外,如果您选择lubos hasko建议的Tkinter选项,则可能要尝试Portablepy使您的应用程序在Windows环境下运行而无需使用Python。


您可以使用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从命令行进行pip install appjar


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


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

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

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


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

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

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

完整列表位于http://wiki.python.org/moin/GuiProgramming

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

单个可执行文件(Windows)

单个可执行文件(Linux)

  • Freeze -与py2exe相同,但以Linux平台为目标

单个可执行文件(Mac)

  • py2app再次像py2exe一样工作,但以Mac OS为目标

# I'd use tkinter for python 3

import tkinter

tk = tkinter.Tk()
tk.geometry("400x300+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 ...对于Apple 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并选择在此处启动cmd)
4)用cmd编写:> python setup.py py2exe
5)在dist文件夹中,您需要所有文件
6)您可以将其压缩并分发

py安装程序

从cmd安装

**

点安装pyinstaller

**

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

**

pyinstaller file.py

**





release-management