网站网站注册,营口网站制作公司,电子商务网站建设策划书的流程,广州建设交易中心网站基本使用
基于tkinter创建 GUI基本四步#xff1a;窗口-组件-布局-事件
1.创建窗口对象
from tkinter import *root Tk() # 创建窗口root.mainloop() # 进入事件循环
2.创建组件
按钮文本等组件
btn Button(root) # 创建Button组件#xff0c;使组件在…基本使用
基于tkinter创建 GUI基本四步窗口-组件-布局-事件
1.创建窗口对象
from tkinter import *root Tk() # 创建窗口root.mainloop() # 进入事件循环
2.创建组件
按钮文本等组件
btn Button(root) # 创建Button组件使组件在root窗口展示
btn[text] 我是按钮 # 组件属性参数
3.布局管理
管理组件的大小位置样式
btn.pack() # 布局管理器组件的大小位置样式
4.事件
通过与组件绑定获取组件所触发的事件
def btn_event(obj): # obj 即事件对象print(控制台输出触发了事件) # 输出到控制台
btn.bind(Button-1, btn_event) # 事件和组件进行绑定
案例
from tkinter import *
from tkinter import messageboxroot Tk() # 创建窗口btn Button(root) # 创建Button组件使组件在root窗口展示
btn[text] 我是按钮
btn.pack() # 布局管理器配置组件的样式def btn_event(obj): # obj 即事件对象messagebox.showinfo(Message,触发了事件) # 弹出新的窗口并展示内容print(控制台输出触发了事件) # 输出到控制台btn.bind(Button-1, btn_event) # 事件绑定事件和组件进行绑定 Button-1 :鼠标左键点击一次 Button-2:鼠标右键点击一次if __name__ __main__:root.mainloop() # 进入事件循环主窗口
title(窗口标题)
geometry(wxh ± x, ±y)
w:宽度h:高度x:距屏幕左边的距离-x:距屏幕右边的距离y:距屏幕上边的距离-y:距屏幕下边的距离
root.geometry(500x300100200) # 宽度500高度300距左边100距上边200组件
Toplevel顶层容器类可为其他组件提供单独的容器类似窗口Button按钮按钮点击组件Ganvas画布提供绘图功能CheckButton复选框可勾选的复选框Entry单行输入框可输入内容Frame容器用于装载其他组件LabelFrame容器类似Frame,但可以添加标题label标签显示不可编辑的文本或图标Listbox列表框可列出多个选项Menu菜单菜单组件MenuButton菜单按钮包含菜单的按钮包括下拉层叠式等OptionMenuu菜单按钮MenuButton的子类可通过按钮打开一个菜单Message消息框可以显示多行文档 Frame容器
GUI编程就是编写一个个组件界面由组件组成组件内又可以创建组件这种组件即为容器
import tkinter as tk
from tkinter import Frameroot tk.Tk()
root.title(包含容器的GUI)
root.geometry(500x300200200)
frame Frame(masterroot) # 在root中创建容器
frame.pack()root.mainloop() 经典的面向对象的GUI
import tkinter as tk
from tkinter import *
from tkinter import messageboxroot tk.Tk()
root.title(经典的面向对象的GUI)
root.geometry(500x300200200)class Application(Frame):def __init__(self, master):super().__init__(master)self.master masterself.pack()self.create_widget()def create_widget(self):创建各种组件self.btn01 Button(self, text容器的按钮01, commandself.btn01_event) # 创建button组件在Frame中显示这里的self是Frameself.btn01.pack()self.btn02 Button(self, text退出, commandroot.destroy)self.btn02.pack()def btn01_event(self):messagebox.showinfo(Message, 触发了事件)print(控制台输出 触发了事件) # 输出到控制台def main():app Application(root)root.mainloop()if __name__ __main__:main() Label
font:字体和大小1个中文宽度两个字符高度一个字符image:图片目前支持giffg:前景色bg:背景色justigy:对齐方式left、center、rightwidth:宽度heigth:高度
import tkinter as tk
from tkinter import *
from tkinter import messageboxroot tk.Tk()
root.title(我是窗口)
root.geometry(500x300200200)class Application(Frame):def __init__(self, master):super().__init__(master)self.master masterself.pack()self.create_widget()def create_widget(self):创建各种组件# 文件标签self.text_label Label(self, textlabel组件,width10, height2, bgblack, fgwhite, font(黑体, 15), justifyleft, borderwidth1)self.text_label.pack()self.text_label2 Label(self, textlabel组件\nlabel组件内容不能修改\n哈哈,bgblack, fgwhite, font(黑体, 15), justifyleft, borderwidth1)self.text_label2.pack()# 图片标签global PHOTOPHOTO PhotoImage(fileimg.gif) # 注意图片最好是全局变量self.photo_label Label(root, imagePHOTO)self.photo_label.pack()def main():app Application(root)root.mainloop()if __name__ __main__:main()Button
import tkinter as tk
from tkinter import *
from tkinter import messageboxroot tk.Tk()
root.title(我是窗口)
root.geometry(500x300200200)PHOTO PhotoImage(fileimg.gif) # 注意图片最好是全局变量class Application(Frame):def __init__(self, master):super().__init__(master)self.master masterself.pack()self.create_widget()def create_widget(self):创建各种组件self.login_btn Button(self, text登录, commandself.login_event) # 创建button组件在Frame中显示这里的self是Frameself.login_btn.pack()self.image_btn Button(self, imagePHOTO, commandself.image_event)self.image_btn.pack()self.image_btn[state] disable # 按钮禁止点击def image_event(self):messagebox.showinfo(Message, 点击了图片)def login_event(self):messagebox.showinfo(Message, 登录成功)# print(控制台输出 触发了事件) # 输出到控制台def main():app Application(root)root.mainloop()if __name__ __main__:main()Entry
import tkinter as tk
from tkinter import *
from tkinter import messageboxroot tk.Tk()
root.title(我是窗口)
root.geometry(500x300200200)class Application(Frame):def __init__(self, master):super().__init__(master)self.master masterself.pack()self.create_widget()def create_widget(self):创建各种组件self.user_label Label(self, text用户)self.user_label.pack()user_value StringVar() # 定义变量要用来接收Entry输入的值user_value.set(admin) # StringVar 的默认值self.user_entry Entry(self, textvariableuser_value) # StringVar变量绑定到Entry组件self.user_entry.pack()print(user_value.get())print(self.user_entry.get())self.pwd_label Label(self, text密码)self.pwd_label.pack()pwd_value StringVar()self.pwd_entry Entry(self, textvariablepwd_value, show*) # 用户输入的内容展示成 *self.pwd_entry.pack()self.user_btn Button(self, text提交, commandself.login)self.user_btn.pack()def login(self):print(用户名 self.user_entry.get()) # 获取输入框的值print(用户密码 self.pwd_entry.get()) # 获取输入框的值messagebox.showinfo(Message, 登录成功)def main():app Application(root)root.mainloop()if __name__ __main__:main()