树莓派论坛

 找回密码
 立即注册

Getting started with GUIs

teddy2017 发表于 2017-8-17 22:25:02 | 显示全部楼层 |阅读模式
Getting started with GUIs
1eae257e44aa9d5b
clip_image001.png
·       Introduction

GUI GraphicalUser Interface简称,GUI用于你的程序和用户交互,例如按钮,下拉菜单,文本输入等。
·       What you will do

本章将使用Python编程制作一个简单的GUI
·       What you will need

Computer(Rpi/windows/mac)
Python 3 guizero
若安装于macraspberry设备上,需使用下列命令安装pip
sudo pip3 install guizero
若使用windows,则需:
python -m pip install -U pip
安装guizero库:

pip install guizero
·       Getting started

1.Python,新建一个文件,增加一行代,从guizero中中App
from guizeroimport App
2.显示app标题名:
app= App(title="Hello world")
app.display()

保存文件,F5刷新后,GUI将会如下展示:
clip_image003.png
恭喜你,完成第一步。
·       添加控件
在增加控件至面板前,有如下几个规则:
使用import导入新控件:
from guizeroimport App
1.如需使用文本控件,则需(每一种类型空间只需增加一次,若需添加多个控件,则在后面添加即可):
from guizeroimport App, Text
2增加控件的代码必须在eventloop 开始前增加:
clip_image005.png
·       Text控件
welcome_message= Text(app, text="Welcome to my app")




我们创建了一个名为welcome_messageText控件,第一个参数定义为app,则表示text控件被app对象所命令,其中可以控制其sizefont等其他关键字。
clip_image007.png
·       TextBox控件
my_name = TextBox(app)
·       PushButton控件
用于创建一个按钮,当按钮按下时,功能需要被调用,所以我们在app启动前,将函数代码添加进去。
def say_my_name():
   welcome_message.set( my_name.get() )
我们需要将TextBox中的输入值显示到Text中,也就是说将welcome_message的值写入到my_name控件中,这里定义了一个 say_my_name函数,setget方法用于控件值的更新。
增加PushButton控件:
update_text= PushButton(app, command=say_my_name, text="Display myname")
appbosscommand表示按钮按下时,将调用此函数,text则表示PushButton空间上的显示值。
clip_image009.png
·       Slider控件
用于用户控制范围的控件,如调节音量大小。
同样在app启动前,添加函数代码用于被Slider调用:

def change_text_size(slider_value):
   welcome_message.font_size(slider_value)

其中有个slider_value参数用于slider控件移动时自动发送当前值至函数。此处则当前值设置成welcome_messagefont_size

text_size= Slider(app, command=change_text_size, start=10, end=80)

增加Slider控件。
·       Picture控件
导入一张图片至面板,不过前提只能使用GIF格式,而且生成出来是静态的。将gif图放入代码目录:

my_cat= Picture(app, image="cat.gif")
clip_image011.png
Congratulations
from guizero importApp, Text, TextBox, PushButton, Slider, Picture
app = App(title='Hello World')
def say_my_name():
   welcome_message.set(my_name.get())
def change_text_size(slider_value):
   welcome_message.font_size(slider_value)
welcome_message = Text(app, text='Welcometo my app', size=30, font='Arial', color='#ff4040')   
text_size = Slider(app,command=change_text_size, start=10, end=80)
my_name = TextBox(app, width=30)
update_text = PushButton(app,command=say_my_name, text='Display my name')
my_wechat = Picture(app, image='wechat.gif')
app.display()


Wechat .jpg

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版 | Archiver | 树莓派论坛 ( 粤ICP备15075382号-1 )