红宝石鞋

sneakers的Python项目详细描述


#sneakers
一个python的tkinter包装,灵感来自ruby的gui库shoes。

这是为了更容易快速创建简单的gui界面。所有这些类都是从Tkinter对应的类中继承的,因此您可以像需要时使用原始Tkinter对应的类一样使用它们。

创建窗口使用上下文管理器创建窗口、堆栈(列)和流(行)。



<;td align="center">;
<;b>;gui<;b>;lt;b>;
<;lt;td>;
<;lt;br/><;lt;td>;
<;lt;td>;
<;lt;pre lang="python">;
<;br/><;br/>>;
<;lt;td align="center">;
>;
>;

>;

>;lt;lt;lt;lt;gt;
>;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt><;img src="示例图像s\\helloworld.png"
alt="操作按钮示例">;
<;/td>;
<;/tr>;
<;/table>;


堆栈和流的工作方式与ruby库鞋子的工作方式相同,但还不完全相同。
有关它们如何工作的信息可以在Ruby Shoes网站:http://shoesrb.com/

将decorator
``python
@button
```
添加到函数中会触发该函数的按钮。按钮位于定义函数的任何上下文管理器中。



例如,此代码将创建一个带有按钮的窗口,单击该窗口将创建一个弹出窗口;

<;table>;
<;tr>;
<;td align="center">;
<;b>;代码<;
<;td>;
<;td align="center">;
<;b>;图形用户界面<;b>;
<;td>;
<;tr>;
<;td valign="top">;
<;pre lang="python">;
从凉鞋导入*

使用window():

@按钮("创建弹出框")
def makepopubox():
showinfo单击按钮"
<;/pre>;
<;/td>;
<;td>;
<;img src="example_images\\buttonexample.png"
alt="button example">;
<;/td>;
<;/tr>;
<;/table>;

复选框、单选按钮、数字调整框、比例尺和选项菜单都可以应用为以类似的方式装饰。它们也位于函数定义的任何上下文管理器(窗口、堆栈或流)中。
例如,这里有一个简单的复选框实现,用于更改布尔值;

``python
@check box("烤箱打开了吗?",checked=true)
def ovenon(checked):
theovenson=checked
````

,下面是一个如何实现选项菜单的简单示例;

``python
label("烤箱怎么样?")
@optionmenu("clean","dirty","broken")
def ovestate(option):
打印"The oven is",option
````

所有这些装饰符也可以用作更方便的类。
操作按钮
--
,因为这些装饰符继承自它们的tkinter类,它们可以作为普通的(即不作为装饰器)使用,然后使用例如`` my_button.config(**kwargs)```来配置。

即使创建为装饰器,也可以更改按钮,因为它们是作为应用于它们的函数的函数属性添加的,因此可以通过例如`` my u f'来访问function.button``.

所有用于修改按钮的tkinter形容词,例如分别描述已禁用和已启用按钮状态的"disable"和"normal",也都被导入。

此方法用于禁用使用装饰器创建的按钮;



<;lt;table>;
<;lt;lt;lt;lt;lt;br/><;lt;td align="中"gt;
<;b>;lt;lt;b>;lt;lt;b>;lt;lt;b>;
<;lt;td>;
<;lt;td align="中"gt;
>;
>;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;gt;lt;lt;lt;gt;lt;lt;lt;lt;lt;lt;lt;gt;lt;lt;lt;lt;lt;lt;lt;lt valign="顶部">;
<;pre lang="python">;
从凉鞋导入*


with window():

@button("此按钮不起作用")
def donothing():
pass

@button("禁用按钮")
def disablebutton():
donothing.button.config(state=disabled)
<;pre>;
<;td>;
<;td>;
<;img src="example廑images\\ maniplingbuttonsesample.png"
alt="manipling buttons example">;
<;td>;
<;tr>;
<;table>;

与gui库关联;
修饰符"`@repeat`"和"`@loop`"。

一旦定义修饰函数的上下文被破坏(例如关闭一个窗口),则该线程将停止,该函数将停止重复或循环。例如,这里有一个一分钟重复一次的函数;

``python
@repeat(60)
def clock():
print"一分钟过去了"
````

签署图形用户界面。


<;b>;lt;b>;lt;b>;lt;b>;lt;b>;
<;lt;lt;br/><;lt;td align="center">;
<;b>;gui<;b>;lt;b>;
<;td>;
<;lt;tr>;
<;td>;
>;
>;
>;
>;lt;b>;
>;lt;b>;
>;
>;lt;lt;lt;b>;lt;lt;b>;gt;lt;lt;lt;lt;标签",
FONt="Verdana 24粗体下划线")
带堆栈(padx=10):
MyLabel=Label("此文本更改")
@按钮("更改上面的文本"
Font="Veranda 12 Italic")
def change_that_Text():
MyLabel.Text="omg it changed"
h flow(pady=10):
edit=edit box("edit me")
@按钮("<;-读取编辑框")
def read_edit_box():
显示信息(消息
="编辑框显示:"
+edit.text)
<;/pre>;
<;/td>;
<;td>;
<;img src="example_images\\simple example.png"
a lt="simple example">;
<;/td>;
<;<;/table>;
complete example
--

`example.py有一个更完整的示例,说明如何使用不同的方法、上下文管理器等,应该是这样;

<;table>;"<;lt;br/><;lt;td align="center">;
<;b>;gui<;lt;b>;lt;b<;b>;
<;lt;td>;
<;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;br/><;br/><;lt;lt;lt;lt;lt;lt;lt;br/>>;
>;
<;lt;lt;lt;lt;lt;lt;br/>>;
<;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;lt;表>;



待办事项列表
-添加to pip.
-添加对ttk的支持
-重写以使用tkinter网格和包。
-重新设置本自述文件。
-添加以前存储库中的属性。



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

推荐PyPI第三方库


热门话题
在Android应用程序中处理新活动时出现java NullPointerException   从PSV文件读取Java   在JavaSwing中将方法从一个类传递到另一个类   带有MongoDB错误的java Vertx ClassNotFoundException:com。mongodb。联系溪流工厂   在java中替换2D数组中的数字?   java Avro方案空布尔和双整数布尔的写并集   java导入组织。neo4j无法解决?   从另一个获取变量。使用反射的java文件   Java:以格式化字符串的形式返回具有非常不同的条目长度的2D数组   java客户端应用程序正在从IBMMQ接收不同格式的消息体   java在我的主循环中的步骤有问题   java如何正确安装来自sslforfree的证书。tomcat服务器上的com   java RecyclerView变更单永久   java如何获得屏幕的精确中间位置,即使调整了大小