Tkinter学习系列

T k i n t e r 学 习 系 列 Tkinter学习系列 Tkinter


一 Tkinter常用组件系列


二 Tkinter事件绑定

tkinter如何绑定事件


三 Tkinter文件选择框


四 python文件操作


五 Tkinter数据库操作


tkinter常用工具函数utils


实例


tkinter实现重命名文件小软件


使用tinkter制作打标软件



tkinter在界面右击,弹出选择菜单


tkinter绘图之Canvas的使用


读取txt

    def load_file_info(self):
        if not os.path.exists(self.file_path):
            showinfo("系统消息","提供的文件名不存在!")
        else:
            try:
                with open(file=self.file_path, mode="r") as fd:
                    # 读取第一行
                    current_line = fd.readline()
                    while current_line:
                        temp_list = current_line.split(",")
                        self.user_list.append(temp_list)
                        # 读取下一行
                        current_line = fd.readline()
            except:
                showinfo("系统消息","文件读取出现异常!")

写入txt

    def write_file_info(self):
        # 1. 清空文件, 2. 写入
        try:
            with open(file=self.file_path,mode="w") as fd:
                fd.write("")
            with open(file=self.file_path,mode="a") as fd:
                for item in self.user_list:
                    fd.write(",".join(item))
        except:
            showinfo("系统消息","写入文件出现异常!")

初始一个界面展示

from tkinter import *

class LoginWindow():
    def __init__(self):
        self.frame = Tk()
        self.frame.title("登录界面")
        self.frame.geometry("600x400")

    def show(self):
        self.frame.mainloop()

if __name__ == '__main__':
    this_login = LoginWindow()
    this_login.show()
from tkinter import *
from tkinter.ttk import *


class LoginWindow(Tk):
    def __init__(self):
        super().__init__()
        self.title("登录界面")
        self.geometry("600x400")

if __name__ == '__main__':
    this_login = LoginWindow()
    this_login.mainloop()

按钮绑定事件

from tkinter import *
from tkinter import messagebox

root = Tk()
# 挂载在界面上
btn1 = Button(root)
btn1["text"] = "确定"
# 布局
btn1.pack()

def test1(e):
    messagebox.showinfo("Message","tttttttttttttttttttt")
    print("ssssssssss")
    
# 绑定函数("<Button-1>":事件左击)
btn1.bind("<Button-1>",test1)

root.mainloop()

基本GUI设计

from tkinter import *
from tkinter.ttk import *


class LoginWindow(Tk):
    def __init__(self):
        super().__init__()
        self.title("登录界面") # 设置界面标题
        self.geometry("600x400") # 设置登录界面长宽
        self.resizable(0,0)  # 禁止改变窗体大小
        self.iconbitmap(".//img//student.ico")  # 设置窗体图标
        # 加载窗体
        self.setup_ui()
        self["bg"] = "RoyalBlue"

    def setup_ui(self):
        self.Login_image = PhotoImage(file="./img/stu_login_png02.png")
        self.Label_image = Label(self,image =self.Login_image)
        self.Label_image.pack()

        self.Label_user = Label(self,text="用户名:").pack(side = LEFT,padx=10,pady=10)
        self.Entry_user = Entry(self,width=10).pack(side = LEFT,padx=10,pady=10)

        self.Label_password = Label(self,text="密码:").pack(side = LEFT,padx=10,pady=10)
        self.Entry_password = Entry(self,width=10).pack(side = LEFT,padx=10,pady=10)

        self.Button_login = Button(self,text="登录").pack(side = LEFT,padx=10,pady=10)




if __name__ == '__main__':
    this_login = LoginWindow()
    this_login.mainloop()

加载txt

from tkinter import *
from tkinter.ttk import *
import os
from tkinter.messagebox import *
class LoginWindow(Tk):
    def __init__(self):
        super().__init__()
        self.title("登录界面") # 设置界面标题
        self.geometry("600x400+500+300") # 设置登录界面长宽,和显示位置
        self.resizable(0,0)  # 禁止改变窗体大小
        self.iconbitmap(".//img//student.ico")  # 设置窗体图标
        self["bg"] = "RoyalBlue" # 设置窗口背景
        # 加载窗体
        self.setup_ui()

        # 定义变量
        self.file_path = "student.txt"
        self.user_list = []

        # 自动执行文件中账号的加载
        self.load_file_info()



    def setup_ui(self):
        self.Login_image = PhotoImage(file="./img/stu_login_png02.png")
        self.Label_image = Label(self,image =self.Login_image)
        self.Label_image.pack()

        self.Label_user = Label(self,text="用户名:").pack(side = LEFT,padx=10,pady=10)
        self.Entry_user = Entry(self,width=10).pack(side = LEFT,padx=10,pady=10)

        self.Label_password = Label(self,text="密码:").pack(side = LEFT,padx=10,pady=10)
        self.Entry_password = Entry(self,width=10).pack(side = LEFT,padx=10,pady=10)

        self.Button_login = Button(self,text="登录").pack(side = LEFT,padx=10,pady=10)


    def load_file_info(self):

        if not os.path.exists(self.file_path):
            showinfo("系统消息","文件不存在")
        else:
            try:
                with open(file=self.file_path,mode="r") as fd:
                    # 读取一行
                    current_line = fd.readline()
                    # 遍历所有行
                    while current_line:
                        temp_list = current_line.split(",")
                        self.user_list.append(temp_list)
                        # 读取下一行
                        current_line = fd.readline()

            except:
                showinfo("系统消息","文件读取出现异常!")

        print(self.user_list)






if __name__ == '__main__':
    this_login = LoginWindow()
    this_login.mainloop()

打开另一个界面

from tkinter import *
from tkinter.ttk import *
import os
from tkinter.messagebox import *
import maingui

class LoginWindow(Tk):
    def __init__(self):
        super().__init__()
        self.title("登录界面") # 设置界面标题
        self.geometry("600x400+500+300") # 设置登录界面长宽,和显示位置
        self.resizable(0,0)  # 禁止改变窗体大小
        self.iconbitmap(".//img//student.ico")  # 设置窗体图标
        self["bg"] = "RoyalBlue" # 设置窗口背景
        # 加载窗体
        self.setup_ui()

        # 定义变量
        self.file_path = "student.txt"
        self.user_list = []

        # 自动执行文件中账号的加载
        self.load_file_info()



    def setup_ui(self):
        self.Login_image = PhotoImage(file="./img/stu_login_png02.png")
        self.Label_image = Label(self,image =self.Login_image)
        self.Label_image.pack()

        self.Label_user = Label(self,text="用户名:").pack(side = LEFT,padx=10,pady=10)
        self.var_user = StringVar()
        self.Entry_user = Entry(self,width=10,textvariable = self.var_user).pack(side = LEFT,padx=10,pady=10)

        self.Label_password = Label(self,text="密码:").pack(side = LEFT,padx=10,pady=10)
        self.var_passward = StringVar()
        self.Entry_password = Entry(self,width=10,textvariable = self.var_passward).pack(side = LEFT,padx=10,pady=10)

        self.Button_login = Button(self,text="登录",command = self.login).pack(side = LEFT,padx=10,pady=10)


    def load_file_info(self):

        if not os.path.exists(self.file_path):
            showinfo("系统消息","文件不存在")
        else:
            try:
                with open(file=self.file_path,mode="r") as fd:
                    # 读取一行
                    current_line = fd.readline()
                    # 遍历所有行
                    while current_line:
                        temp_list = current_line.split(",")
                        self.user_list.append(temp_list)
                        # 读取下一行
                        current_line = fd.readline()

            except:
                showinfo("系统消息","文件读取出现异常!")

        print(self.user_list)

    def login(self):
        # 获取输入的用户名和密码
        user = self.var_user.get()
        password = self.var_passward.get()

        showinfo(message="用户名:"+user+"\n密码:"+password)
        if 1:
            self.load_main()


    def load_main(self):
         self.destroy()
         main_window = maingui.MainWindow()





if __name__ == '__main__':
    this_login = LoginWindow()
    this_login.mainloop()

被打开界面

from tkinter import *
from tkinter.ttk import *


class MainWindow(Tk):
    def __init__(self):
        super().__init__()
        self.title("登录界面")
        self.geometry("600x400+200+200")

if __name__ == '__main__':
    this_login = MainWindow()
    this_login.mainloop()


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值