GUI

251 阅读2分钟

1. GUI介绍

  • GraphicalUserInterface
  • GUI for python : Tkinter, wxPython, PyQt
  • Tkinter
    • 绑定的是 TK GUI工具集,用Python包装的Tcl代码
  • PYGTK
    • Tkinter的替代品
  • wxPython
    • 跨平台的Python GUI
  • PyQt
    • 跨平台的
    • 商业授权可能有问题

2.

1. 测试Tkinter的包好不好用

import tkinter
tkinter._test()

会弹出这个界面

2. 做一个hello world

这个界面就是一个GUI (图形用户界面) 一个大框

比如点击 会弹出其他框、拖拽,就是可以交互,为什么可以交互?

是因为它有一个消息机制,这个消息机制通过 mainloop() 启动

3. Tkinter 常用组件

  • 按钮

  • 文本输入组件

  • 标签

  • 菜单

  • 滚动条

  • 其他组件

1. Label 例子

2. 组件的大致使用步骤

3. 设置Label的例子

4. 设置button的例子

(周喆是我姐姐,对不起)

!!! 注意啊!!!

那个command = showLabel 这个showLabel后面函数没有括号!!没有括号!!

5. button的属性

4. 组件布局

  • 三种布局

    • pack:按照方位布局 -

    -

    • grid

      Entry 表示“输入框”

    • place

5. 消息机制

  • 消息传递机制

  • 消息格式

    1.我们在使用 bind 函数的时候,它的第一个参数就是事件 的类型了。

    2.表示鼠标左键单击,其中的 1 换成 3 表示右 键被单击,为 2 的时候表示鼠标中键,感觉不算常用。

    3.表示 A 键被按下,其中的 A 可以换成其他的键位。

    4.表示按下的是 Ctrl 和 V 键,V 可以换成其他键位。

    5.表示按下的是 F1 键,对于 Fn 系列的,都可以随便换。

    1. < Control-Shift-KeyPress-A >:同时按下三个键位

  • 事件的简单例子

6. Tkinter的绑定

7. Entry

  • 输入框举例

import tkinter

def reg():
    #从相应输入框中,得到用户的输入
    name = e1.get()
    pwd = e2.get()

    t1 = len(name)
    t2 = len(pwd)

    if name =="111" and pwd == "222":
        lb3["text"] = "登陆成功"
    else:
        lb3["text"] = "用户名或密码输入错误"
        e1.delete(0,t1)
        e2.delete(0,t2)

baseFrame = tkinter.Tk()
lb1 = tkinter.Label(baseFrame,text = "用户名")
lb1.grid(row = 0,column = 0,sticky = tkinter.W)
e1 = tkinter.Entry(baseFrame)
e1.grid(row = 0,column = 1,sticky = tkinter.E)

lb2 = tkinter.Label(baseFrame,text = "密码")
lb2.grid(row = 1,column = 0,sticky = tkinter.W)
e2 = tkinter.Entry(baseFrame)
e2.grid(row = 1,column = 1,sticky = tkinter.E)
e2['show'] = "*"

btn = tkinter.Button(baseFrame,text = "登录",command = reg)
btn.grid(row = 2,column = 1,sticky = tkinter.E)

lb3 = tkinter.Label(baseFrame,text = "")
lb3.grid(row = 3)

baseFrame.mainloop()