pythongui应用程序的操作系统菜单快捷方式、正确的任务栏行为和环境激活

desktop-app的Python项目详细描述


桌面应用程序

desktop-app简化了Python GUI应用程序的安装、启动和行为 在Windows和 Linux(计划支持Macos)。在

如果您的应用程序是一个Python模块,可以从命令行以python -m mymodule的形式运行,那么使用最小配置desktop-app可以:

  • 创建一个运行应用程序的启动程序脚本(或在windows上为.exe
    • 激活conda环境或虚拟环境(如果有)后
    • 如果在Windows上,则使用隐藏的控制台
  • 安装开始菜单快捷方式(Windows)或.desktop文件(Linux)以启动 桌面应用程序菜单中的应用程序
  • 确保您的应用程序在任务栏中显示正确的名称和图标, 并且可以正确固定。在

基本用途

在_这里_ , _我们_将_按照_这个_存储_库_中_的_示例_ , _为_一_个_名_为_ ^{<_cd7_>} _的_模块_开发_ 。_ 在老麦克唐纳的农场。在老麦克唐纳听说desktop-app之前,他有一个 包装如下:

.
├── oink
│   ├── __init__.py
│   └── __main__.py
└── setup.py

其中setup.py是:

^{pr2}$

__main__.py是:

importtkinterroot=tkinter.Tk()root.geometry("300x300")w=tkinter.Label(root,text="Oink!")w.place(relx=0.5,rely=0.5,anchor=tkinter.CENTER)root.mainloop()

并且__init__.py为空。在

在某个地方安装了这个软件包之后,MacDonald就可以用 python -m oink,它显示了一个小窗口

[自述仍在进行中!]在

原因

为什么在Windows上使用隐藏控制台?在

运行pythongui应用程序的通常建议是使用Pythonw.exe,它 不创建控制台窗口。但是,在Pythonw.exe下运行时,一个简单的 print()调用将引发异常,certain low-level output redirection 由于stdoutstderr文件句柄不存在,的子进程无法工作。 此外,某些工具可能会创建调用cmd.exe,或Python.exe的子进程, 暂时弹出他们自己的控制台窗口,因为一个还不存在。在

为了能够忽略这些问题,并像使用 控制台,在Windows中,启动程序脚本使用 Python.exe,但是带有CREATE_NO_WINDOW标志以便控制台存在,但是 不可见。在

为什么要激活环境?在

除非在Windows上使用conda,否则严格来说不需要激活环境 在这种情况下,一些已编译的扩展(特别是Qt库)不能导入,除非 环境是活跃的。在

但是,即使在其他平台上激活环境也可以简化运行其他 可能安装到虚拟机的bin/Scripts目录的程序 否则,环境调用代码将不得不手动查找此目录并 提供要运行的程序的完整路径。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android首选项相同getPreference()值的不同数据   字符串如何在Java中连接两个列表中的单词   安卓 Java Socket编程:检测客户端和服务器是否连接   使用JTextField的java无法将值转换为int   在java中,如何在不通过超级构造函数设置的情况下将消息设置为自定义异常类   用于标识属性值的java正则表达式模式   Android中的java不可见谷歌地图   java正确取消启动ExecutorService的JavaFX任务   在非活动java类中使用安卓的融合位置提供程序,并在主活动类中获取经度和纬度   spring为什么我的大摇大摆不能用springboot在java中工作?   java JSF(2.2)ViewScope在Weblogic 12.2.1.2和JDK 8上使用Spring 4.3.7(在Mac OS和Docker Oracle Linux环境上)   java如何用一个按钮提高计时器速度   java如何检查字符是否是元音?   注册表引用了不存在的Java运行时环境安装或运行时已损坏错误   来自ResultSet java的mysql getDateTime   maven LanguageTool Java API是否具有“无用”依赖关系?   twitter api身份验证的java Trycatch问题   java在Apache Struts 1.1中是否可以显式白名单?   安卓致命异常:主java。lang.RuntimeException:被问及未知片段