本文概述
- 什么是appJar
- 1.安装appJar
- 2.使用AppJar
- 例子
什么是appJar appJar是教师在教室中为学生编写的有用软件包。 appJar设计为可在尽可能多的Python版本上运行, 因此它几乎可以在任何地方运行。没有其他依赖项, 因此你只需下载, 解压缩并将其放入代码文件夹中即可。使用appJar创建基本交互界面的操作非常简单, 非常棒, 它使其成为学习如何使用Python进行编码的最佳软件包之一, 也非常适合你不需要未来派UI的非常简单的程序。
Python本身很难实现GUI, 因此, 如果你是想开始使用python并为简单应用程序创建自己的UI的初学者, appJar是最可靠的解决方案之一。
1.安装appJar appJar的首选安装方法是通过pip。打开终端并运行以下命令:
python -m pip install appjar
安装后, 你可以随时更新软件包:
python -m pip install appjar --upgrade
而且你显然可以从python代码导入appJar命名空间。有关这个很棒的库的更多信息, 请在此处访问Github的官方存储库或访问官方网站。
2.使用AppJar 与许多其他用于可视化GUI设计的工具(例如Visual Studio)不同, 你将需要使用纯代码(即每行一行)构建自己的GUI。 AppJar提供了很多组件, 因此在此处列出它们是不合适的。这就是为什么我们仅描述该库的功能以及使用起来很容易的原因。
- 设计尽可能简单, 但仍提供许多tkinter功能
- 为大多数窗口小部件提供3个功能:
- add(name, value)这会添加一个新的小部件(通常带有一个名称和一个值)
- set(name, value)这将更新命名小部件的值
- get(name)这将获取命名小部件的值
- 使用网格布局
- 添加小部件时, 最多可以提供4个数字”
位置”
:
- column-要显示的列, 从0开始
- row-要出现的行, 从0开始
- columnspan-跨越多少列
- rowspan-向下扩展多少行
- 在核心tkinter之外提供额外的零碎负载
- 其中一些来自@ http://effbot.org的优秀资源
- 其中一些来自于如何解决常见问题的斜线示例
- 其中一些已从其他人的模块中合并:
- 迈克尔·兰格(Michael Lange)的工具提示
- Johann C.Rocholl的tkinter_png支持
- Martin J. Fiedler的NanoJPEG库
- 我试图在不使用任何其他模块的情况下, 尽可能多地在该库中获取功能
# import the libraryfrom appJar import gui# create a GUI variable called appapp = gui()# add &
configure widgets - widgets get a name, to help referencing them laterapp.addLabel("title", "Welcome to appJar")app.setLabelBg("title", "red")# start the GUIapp.go()
这使得该库非常容易通过简单的脚本使用。
例子 以下示例实现了一个非常基本的登录表单, 该表单遵循具有某些自定义方法(它们不遵循任何模式)的类结构应用程序。要运行它, 请创建一个新的python文件, 即main.py, 并将以下内容放入其中:
# main.pyfrom appJar import gui# Example of a semi-structured applicationclass MyApplication():# Build the GUIdef Prepare(self, app):# Form GUIapp.setTitle("Login Form")app.setFont(16)app.setStopFunction(self.BeforeExit)# Add labels &
entries# in the correct row &
columnapp.addLabel("userLab", "Username:", 0, 0)app.addEntry("username", 0, 1)app.addLabel("passLab", "Password:", 1, 0)app.addSecretEntry("password", 1, 1)app.addButtons( ["Submit", "Cancel"], self.Submit, colspan=2)return app# Build and Start your applicationdef Start(self):# Creates a UIapp = gui()# Run the prebuild method that adds items to the UIapp = self.Prepare(app)# Make the app class-accesibleself.app = app# Start appJarapp.go()# Callback execute before quitting your appdef BeforeExit(self):return self.app.yesNoBox("Confirm Exit", "Are you sure you want to exit the application?")# Define method that is executed when the user clicks on the submit buttons# of the formdef Submit(self, btnName):if btnName == "Submit":username = self.app.getEntry("username")password = self.app.getEntry("password")# Very stupid login system (both strings equal to ourcodeworld)if username and password == "ourcodeworld":self.app.infoBox("Logged in", "You are now logged in !")else:self.app.errorBox("Error", "Your credentials are invalid !")# Run the application# `python main.py`if __name__ == '__main__':# Create an instance of your applicationApp = MyApplication()# Start your app !App.Start()
然后, 使用以下命令在终端中运行脚本:
python main.py
这将使用你的基本用户界面启动一个新窗口, 如下图所示:
文章图片
【使用appJar(基于Tkinter的UI)使用Python创建非常简单的图形用户界面】编码愉快!
推荐阅读
- 如何解决Puppeteer TimeoutError(导航超时超过30000 ms)
- 如何在Windows中使用pyinstaller从Python脚本创建可执行文件(.exe)
- 如何使用浏览器中的JavaScript从剪贴板检索图像
- 如何使用JavaScript将PDF转换为文本(从PDF提取文本)
- 使用浏览器工具或创建自己的基准来使用JavaScript衡量功能的性能
- 如何在浏览器中使用JavaScript创建Gameboy Advance Emulator(GBA)
- Linux(内核剖析):09---进程调度之Linux调度的实现(struct sched_entityschedule())
- Linux(内核剖析):08---进程调度之Linux调度算法(调度器类公平调度(CFS))
- helm v3 在k8s 上面的部署skywalking