使用单独的文本文件创建简单Tkinter gui的包

simpleTk的Python项目详细描述


simpletk

使用单独的文本文件创建简单tkinter gui的包

说明

simpletk是一个类,它用合适的语法解释文本文件 给一个Tkinter图形用户界面(就像Kivy一样)。

实施
导入
fromtkinterimport*fromSimpleTkimportSimpleTk
初始化
root=Tk()stk=SimpleTk(root,"project/testGUI.stk")# "gui.stk" is the standard value root.mainloop()
更改小部件属性
stk.buttonName1["text"]="I'm a button"stk.frameName1.bind("<Button-1>",lambdae:print("Click Event"))
文件语法

在附加的文本文件中,必须注意特定的语法。 当前版本仍然对错误敏感。

要点:

  • 使用tab缩进子窗口小部件
  • 行的末尾或中间没有tabs
  • command无法添加到小部件属性(必须在程序代码中随后添加)
  • 使用^ {CD4}}声明父控件的最大列数(网格控件将在该小部件中使用)
    • 没有这些括号的行将使用pack geometry manager放置子窗口小部件
  • 使用..在字符串参数中键入空格(更好的解决方案正在使用)
  • 使用>您可以使用此行键入纯python代码(例如,调用小部件上的方法)
  • 使用#从这一点注释掉行

示例:

  • 概述:
    • Widget-Class: WidgetName(Properties){Columns}
  • 示例:
    • Label: label1(text="This is a label", bg="lightblue"){3}

要定义一个childwidget,只需在父widget下将这一行缩进一行。

样式

您可以为特定的小部件预定义参数:

示例:

  • 概述:
    • Style: WidgetName(Properties)
  • 示例:
    • Style: Label(bg="lightgreen", fg="gold")
动机

simpletk是一个将基本的gui实现外包到外部文件中的机会。 更清晰、更结构化的语法。尤其是当你有一个巨大的设计或者你只是想测试 一些东西。

比较

tkinter:

frame1=Frame(root,bg="white")frame1.pack(padx=5,pady=5,expand=True,fill=BOTH)lf1=LabelFrame(frame1,text="Header",bg="gold")lf1.grid(row=0,column=0,padx=5,pady=5,sticky=N+S+E+W)label1=Label(lf1,text="My first GUI",bg="lightblue")label1.grid(row=0,column=0,padx=5,pady=5,sticky=N+S+E+W)button1=Button(lf1,text="This is a Button")button1.grid(row=0,column=1,padx=5,pady=5,sticky=N+S+E+W)entry1=Entry(lf1,bg="white")entry1.grid(row=1,column=0,padx=5,pady=5,sticky=N+S+E+W)lf2=LabelFrame(frame1,text="Footer",bg="gold")lf2.grid(row=1,column=0,padx=5,pady=5,sticky=N+S+E+W)label2=Label(lf2,text="Footer",bg="lightblue")label2.pack(padx=5,pady=5,expand=True,fill=BOTH)cb1=ttk.Combobox(lf2)cb1.pack(padx=5,pady=5,expand=True,fill=BOTH)cb1.set("Selection")

simpletk:

Style: Label(bg = "lightblue")    
Style: LabelFrame(bg = "gold")

Frame: frame1 (bg = "white") {1}      
    LabelFrame: lf1 (text = "Header") {2}    
        Label: label1 (text = "My..first..GUI")     
        Button: button1 (text = "Thi..i..a..Button")  
        Entry: entry1 (bg = "white")        
    LabelFrame: lf2 (text = "Footer")    
        Label: label2 (text = "Footer")
        ttk.Combobox: cb1 ()

> cb1.set("Selection")

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

推荐PyPI第三方库


热门话题
使用硬件相关VM参数(重新)启动Java应用程序的正确方法?   java有一个Eclipse插件弹出菜单,只有在选择文件夹时才会出现   java演示简单Ajax ans Servelt实现失败   java如何在不需要OAuth授权的情况下代表组织用户提供密码   java检查一个字符串是否等于另一个字符串的子字符串   java我可以从for循环中的1开始初始化2D数组吗   使用选择排序的java排序2D数组   java如何在一轮投票后重新开始,而不在其中存储统计数据   我的Java代码不断向文本文件添加重复项   java MapReduce Hadoop字长频率不起作用   试图保存Iterable时执行独立工作时发生java错误   java这两个源是同一个场景生成器吗?   java计划重试关联的JMS消息