IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【Python GUI】Tkinter开发之保姆级入门·相信我,一篇就够了。注释比代码多系列 -> 正文阅读

[Python知识库]【Python GUI】Tkinter开发之保姆级入门·相信我,一篇就够了。注释比代码多系列

全部都是我自己学习过程中的笔记,注释也是根据我初学时候会遇到的问题补充上的,绝对不会糊弄别人。一共有3个模块。

时间:2022.1.24

第一个ui.py

"""tkinter学习笔记"""

import tkinter
import ui_ini
from tkinter import ttk  # 有部分组件在这里面

# 生成一个主窗口对象
top = tkinter.Tk()

# 设置标题
top.title('增删改查')

# 获取电脑屏幕的大小, 常用于计算窗口居中位置
# win_width, win_height = top.maxsize()

# 初始化窗口大小(这里参数是字符串,长宽之间用一个x表示, 后面两个参数是窗口中心分别相对屏幕左边和上边的距离)
top.geometry('750x500+400+200')

# 设置窗口是否可以缩放(拉大拉小)
top.resizable(width=False, height=False)

"""添加组件"""
# 标签组件(标签就是文本)
label1 = tkinter.Label(top, text='学生信息管理系统', font=('华文彩云', 20))
# label1.pack()  # 将标签添加到窗口(默认居中)
label1.place(x=265, y=0)  # 也可以自己计算位置放置(推荐)

# 按钮组件, 注意command里面的函数不加括号
button1 = tkinter.Button(top, text='说明', command=ui_ini.SM)
# button1.pack()
button1.place(x=355, y=40)  # 也可以自己计算位置放置(推荐)

# 输入框组件的使用
label2 = tkinter.Label(top, text='账号:', font=('FangSong', 20))
label2.place(x=200, y=100)
label3 = tkinter.Label(top, text='密码:', font=('FangSong', 20))
label3.place(x=200, y=150)
# 账号
entry_text1 = tkinter.StringVar()
entry_text1.set('请输入账号')
entry1 = tkinter.Entry(top, font=('FangSong', 20), width=20, textvariable=entry_text1)
entry1.place(x=340, y=100)
# 密码
entry_text2 = tkinter.StringVar()
entry2 = tkinter.Entry(top, font=('FangSong', 20), width=20, textvariable=entry_text2, show='*')
entry2.place(x=340, y=150)

# 获得输入框输入数据  button调用传参函数实例——lambda。实现无参调用有参函数
button2 = tkinter.Button(top, text='登录', command=lambda: ui_ini.DL_input(entry_text1))
button2.place(x=400, y=200)
button3 = tkinter.Button(top, text='注册', command=ui_ini.ZCbutton)
button3.place(x=600, y=200)

# 菜单组件(5步法)
# 1
menu = tkinter.Menu(top)
# 2  tearoff就是把菜单拉出去,可以设置成1看看,其实没有用
submenu = tkinter.Menu(menu, tearoff=0)
# 3  添加下拉选项, 注意command函数不能加括号!!!
submenu.add_command(label='说明1', command=ui_ini.SM)
# submenu.add_separator()  # 子菜单分割线
submenu.add_command(label='说明2', command=ui_ini.SM)
# 4  创建主菜单文件
menu.add_cascade(label='特殊', menu=submenu)
# 5
top.config(menu=menu)

# 下拉列表组件
language_text = tkinter.StringVar()
languages_list = ['汉语', '英语', '日语', '韩语']
languages = ttk.Combobox(top,
                         font=('FangSong', 10),
                         textvariable=language_text,
                         values=languages_list,
                         state='readonly',
                         width=5)
languages.current(2)  # 默认选中项目(索引)
languages.place(x=650, y=470)

# 单选组件
radio_text = tkinter.StringVar()
# 注意是variable, 不是textvariable, variable起到分组的作用
ttk.Radiobutton(top, variable=radio_text, value='男', text='男').place(x=225, y=300)
ttk.Radiobutton(top, variable=radio_text, value='女', text='女').place(x=350, y=300)

# 复选组件
# 和单选组件不同的地方:每一组variable不一样, 每一个复选框有2个value, 单选框用StringVar, 复选框使用Intvar
check_text1 = tkinter.IntVar()
check_text2 = tkinter.IntVar()
ttk.Checkbutton(top, variable=check_text1, text='复选框1', onvalue=1, offvalue=0).place(x=225, y=350)
ttk.Checkbutton(top, variable=check_text2, text='复选框2', onvalue=1, offvalue=0).place(x=350, y=350)

# 开启消息循环
top.mainloop()

第二个ui_ini.py模块

"""辅助模块"""

from tkinter import messagebox
import tkinter
from tkinter import Toplevel

# 登录按钮按下
def SM():
    t = tkinter.Tk()
    t.geometry('300x50')
    t.resizable(width=False, height=False)
    tkinter.Label(t, text='使用时请严格遵守国家法律哦!', font=('FangSong', 10)).place(x=0, y=0)
    t.mainloop()

# 登录输入框处理
def DL_input(entry_text):
    zh = entry_text.get()
    if zh == '':
        # 消息框
        messagebox.showerror(title='出错了', message='账号不能为空')
    else:
        # 消息框
        messagebox.showinfo(title='欢迎', message='登陆成功')
        print(zh)

# 注册按钮按下
def ZCbutton():
    # 这也是一个窗体建立的方法,但他(Toplevel)是基于当前窗体(Tk)的子窗体
    top = Toplevel()
    top.title('注册')
    top.resizable(width=False, height=False)
    top.geometry('750x500+400+200')

    # 组件的使用和Tk一样
    # text多行文本框组件
    text = tkinter.Text(top, font=('华文彩云', 10), width=100)
    text.place(x=15, y=20)

    top.mainloop()

第三个:绘图控件.py

"""绘图控件使用"""

import tkinter

root = tkinter.Tk()

canvas = tkinter.Canvas(
    root,
    width=600,
    height=480,
    bg='white'  # 背景色
)

# tkinter  image对象正确的使用方法
im = tkinter.PhotoImage(file='各位自行脑补路径')

# 将打开的照片添加到绘图控件
canvas.create_image(300, 50, image=im)

# 绘制文字
canvas.create_text(
    300, 70,
    text='哈哈哈',
    fill='blue'
)

# 绘制直线
canvas.create_line(
    250, 130, 350, 130
)

# 下面方法参数就不写了,都是差不多的
# canvas.create_polygon()  绘制六边形
# canvas.create_arc()   绘制圆弧
# canvas.create_rectangle()   绘制矩形
# canvas.create_oval()   绘制椭圆
# ...

root.mainloop()

!!!这一篇文章以后可能会有补充,欢迎大家关注!!!

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-25 10:32:27  更:2022-01-25 10:33:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:25:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码