闪电龟龟--笔记

万物寻其根,通其堵,便能解其困。
随笔 - 169, 文章 - 0, 评论 - 1, 阅读 - 79596
  博客园  :: 新随笔  :: 管理

tk简单使用

Posted on   闪电龟龟  阅读(1605)  评论(0编辑  收藏  举报
复制代码
# 引入tk
import tkinter as tk
class UserLogin(object):
    """ 初始化窗口 """
    def __init__(self, master=None):
        self.root = master
        self.root.geometry("250x220+125+110")  # 窗体大小,注意:之间的间隔是“x”而不是“*”,后面的+是用来做居中显示
        self.username = StringVar()  # 用户名字段
        self.password = StringVar()  # 密码字段
        self.create_page()  # 调用函数
    def create_page(self):
        self.page = Frame(self.root)  # 创建一个新页面
        self.page.pack()  # 显示
root = tk.Tk()
# 获取窗口大小
# print(root.winfo_screenwidth(), root.winfo_screenheight())  # 电脑屏幕大小
# print(root.winfo_reqwidth(), root.winfo_reqheight())  # 创建改程序的窗口大小
root.title('这是定义的显示在左上角的名称')  # 程序名称
UserLogin(root)
root.mainloop()  # 进入循环队列
复制代码

tk.Tk()是调用tkinter模块来创建窗口

在实现页面之后,可以使用Button、Entry、Label等组件来实现功能

Button 按钮,和HTML功能相似 Button(第一个参数为创建的页面; 参数为text,显示的提示信息; 参数command,实现点击事件)
Label 标签,显示提示信息 Label(第一个参数为创建的页面, 参数为text,显示的提示信息)
Entry 输入框,相当于HTML里面的input Entry(第一个参数为创建的页面, 参数为textvariable,关联的字段; 参数show用来显示使用信息是否保密)

具体使用案例:

 Button(self.page, text='群组', width=9, font=("Arial, 12"), command=self.friend_groups).grid(row=1, column=2, sticky='W')

Label(self.page, text=self.username).grid(row=0, column=1, sticky='W')

Entry(self.page, textvariable=self.username).grid(row=2, column=1, columnspan=2, sticky='E')

 

关于grid:

复制代码
    def create_page(self):
        self.page = Frame(self.root)  # 创建一个新页面
        self.page.pack()
        # 表单的实现
        """
        grid(row, cloumn, cloumnspan, rowspan, sticky)
            row:表示从第几行开始
            coumn:表示从第几列开始显示
            cloumnspan:表示往后合并几列
            rowspan:表示往后合并几行
            sticky:表示对齐方式,N/S/E/W 分别表示:上/下/右/左
        """
        self.page.title_label = Label(self.page, text='用户登录').grid(row=0, column=1, sticky='N,S,E,W')  # 创建一个标题
        self.page.white_label1 = Label(self.page, text=" ").grid(row=1, sticky='N')
        self.page.username_label = Label(self.page, text="帐号:").grid(row=2, sticky='W')
        self.page.username_input = Entry(self.page, textvariable=self.username).grid(row=2, column=1, columnspan=2, sticky='E')  # 创建一个输入框
        self.page.white_label2 = Label(self.page, text=" ").grid(row=3, sticky='N')
        self.page.password_label = Label(self.page, text="密码:").grid(row=4, sticky='W')
        self.page.password_input = Entry(self.page, textvariable=self.password, show='*').grid(row=4, column=1, columnspan=2, sticky='E')
        self.page.white_label3 = Label(self.page, text=" ").grid(row=5, sticky='N')
        self.page.button_login = Button(self.page, text='登录', command=self.login).grid(row=6, column=1, sticky='W')
        self.page.button_register = Button(self.page, text='注册', command=self.register).grid(row=6, column=2, sticky='W')
复制代码

 

关于滚动条的使用:

复制代码
    def showInfoMesssage(self):
        if self.page1:
            self.page1.destroy()  # 如果有缓存,那么就删除缓存界面
        self.page1 = Frame(self.oldroot)
        scrolly = Scrollbar(self.page1)
        scrolly.pack(side=RIGHT, fill=Y)
        ListViews = Listbox(self.page1, yscrollcommand=scrolly.set, width=60, height=20)
        showMessageLists = []  # 用来当要显示的消息容器
        InfoMessages = self.networkMesssage(self.fids)  # 获取发送信息
        InfoMessages_recv = self.networkMesssage(self.ownerids)  # 获取接收信息
        dealed_infos = self.dealLists([InfoMessages, InfoMessages_recv])  # 处理信息
        if dealed_infos:
            for dealed_info in dealed_infos:
                ListViews.insert(END, dealed_info)
        else:
            ListViews.insert(END, InfoMessages['error'])
        ListViews.pack()
        scrolly.config(command=ListViews.yview)
        self.page1.pack()
复制代码

 

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示