个性化阅读
专注于IT技术分析

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

本文概述

尽管有很多用于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 library
from appJar import gui


# create a GUI variable called app
app = gui()

# add & configure widgets - widgets get a name, to help referencing them later
app.addLabel("title", "Welcome to appJar")
app.setLabelBg("title", "red")

# start the GUI
app.go()

这使得该库非常容易通过简单的脚本使用。

例子

以下示例实现了一个非常基本的登录表单, 该表单遵循具有某些自定义方法(它们不遵循任何模式)的类结构应用程序。要运行它, 请创建一个新的python文件, 即main.py, 并将以下内容放入其中:

# main.py
from appJar import gui

# Example of a semi-structured application
class MyApplication():

    # Build the GUI
    def Prepare(self, app):
        # Form GUI
        app.setTitle("Login Form")
        app.setFont(16)
        app.setStopFunction(self.BeforeExit)

        # Add labels & entries
        # in the correct row & column
        app.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 application
    def Start(self):
        # Creates a UI
        app = gui()

        # Run the prebuild method that adds items to the UI
        app = self.Prepare(app)

        # Make the app class-accesible
        self.app = app

        # Start appJar
        app.go()

    # Callback execute before quitting your app
    def 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 form
    def 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 application
    App = MyApplication()
    # Start your app !
    App.Start()

然后, 使用以下命令在终端中运行脚本:

python main.py

这将使用你的基本用户界面启动一个新窗口, 如下图所示:

适用于Python的AppJar UI

编码愉快!

赞(0)
未经允许不得转载:srcmini » 使用appJar(基于Tkinter的UI)使用Python创建非常简单的图形用户界面

评论 抢沙发

评论前必须登录!