tkinter 笔记

最近项目要用到tkinter,中间经过一些坑,写下来避免大家踩雷。

先贴一下我做的GUI窗口示例:

   

完成的主要功能是,寻找机器中存在的问题并显示,提供解决方案,如果提供的解决方案无法解决当前的问题,就要求外部输入新的解决方案,同时会更新到数据库中。

其中需要重点注意的是,如何从一个按钮跳转到下一个窗口,这里用到的是''command=xx'';如果建立用户输入界面,用到的是"entry"; 如何和数据库相连接,这里需要用到python xlrd,我的数据库是一个excel。

1. tkinter是什么:

Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。

2. 创建最基本的GUI程序

import tkinter as tk
myWindow = tk.Tk()  # 根窗口的实例
myWindow.title('Tester Troubleshooter') 
myWindow.mainloop()  # 窗口的主事件循环,必须的

3. 让窗口居中

width = 380
height = 200
screenwidth = myWindow.winfo_screenwidth()
screenheight = myWindow.winfo_screenheight()
alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth-width)/2, (screenheight-height)/2)
myWindow.geometry(alignstr)

4. 窗口添加文字

label = tk.Label(myWindow, text="Solution provided:", font=('Arial', 12), width=20, height=2).grid(row=5, column=3)

5. 窗口添加按钮

普通按钮:

Button(myWindow, text='EXIT', command=close_window).grid(row=8, column=1)

like this:

选择按钮:

checkbutton1 = Checkbutton(myWindow, text='YES', onvalue='YES', variable=v, command=close_yes)

like this:

选择按钮需要注意的点,我的程序会默认全部选中,所以要加

checkbutton1.deselect() #初始状态全不选
checkbutton1.grid(row=7, column=5)#确定按钮的位置

6. 怎么自动关闭窗口(如果没有写这个函数就需要点“X”才能关闭)

def close_finish():
    myWindow.destroy()

Button(myWindow, text='EXIT', command=close_finish).pack()

写一个关闭窗口的函数,然后在button语句中加上command指向这个关闭窗口的函数。

7. 怎么通过点击按钮指向另一个函数

command 很好用

checkbutton1 = Checkbutton(myWindow, text='YES', onvalue='YES', variable=v, command=close_yes)

8. 一个困扰了我很久的问题,为什么get()不到entry的内容。

虽然纠结到最后也不知道什么原因,但是在各种尝试下解决了。

就是把get()写成一个函数。

起初直接在后面加上get()是拿不到输入的内容的。

def close_window():
    global txt
    txt = entry1.get()
    myWindow.destroy()
    finish()
Label(myWindow, text="Please provide new solution:", font=('Arial', 10), width=20, height=2, padx=30, pady=30).grid(row=1, column=0)
entry1 = Entry(myWindow)
entry1.grid(row=1, column=1)
Button(myWindow, text='EXIT', command=close_window).grid(row=8, column=1)

9. 一个看起来和tk无关但是我也要加上的内容。

关于update excel

workbook = xlrd.open_workbook("C:\Tester\Error_List.xls")
oldws = workbook.sheet_by_index(0)
workbook1 = copy(workbook)
ws = workbook1.get_sheet(0)
ws.write(index_insert, 4, 1)
workbook1.save("C:\Tester\Error_List.xls")

使用扩展名xlsx运行之后打不开excel,后来查了知道需要改成xls

细节很重要啊...

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值