使用appJar(基于Tkinter的UI)使用Python创建非常简单的图形用户界面

本文概述

  • 什么是appJar
  • 1.安装appJar
  • 2.使用AppJar
  • 例子
尽管有很多用于python的UI框架, 但是其中大多数并不是那么容易使用和实现。至少对于不是python语言的编程初学者而言, 这不是为什么, 因此今天我们要介绍如何使用appJar包使用最常见的UI元素(如Dropbox, 单选框, 文本输入, 按钮等)创建基本用户界面。蟒蛇。
什么是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库
  • 我试图在不使用任何其他模块的情况下, 尽可能多地在该库中获取功能
使用UI初始化应用程序可以很简单, 如以下代码所示:
# 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创建非常简单的图形用户界面

文章图片
【使用appJar(基于Tkinter的UI)使用Python创建非常简单的图形用户界面】编码愉快!

    推荐阅读