关于tkinter自己以前是没怎么在意过的,因为我认为tkinter只能用来编写一些较为简单的图形界面,没什么技术含量,但是当自己在写毕业设计的过程中,发现了tkinter中的一些细节问题,下面就详细的说一下。
tkinter中运行程序时图形界面在左上角闪烁一下的问题
当我们修改了程序运行后界面的显示位置时,代码如下:
import tkinter as tk
window = tk.Tk()
# 设置窗口大小
winWidth = 600
winHeight = 400
# 获取屏幕分辨率
screenWidth = window.winfo_screenwidth()
screenHeight = window.winfo_screenheight()
x = int((screenWidth - winWidth) / 2)
y = int((screenHeight - winHeight) / 2)
# 设置主窗口标题
window.title("TreeView参数说明")
#更改窗口的初始显示位置和大小
window.geometry("%sx%s+%s+%s" % (winWidth, winHeight, x, y))
#固定窗口的大小
window.resizable(0, 0)
window.mainloop()
由于窗口的默认显示位置是在左上角,所以界面首先会在左上角闪烁一下,然后再显示到代码中指定的位置
解决办法
import tkinter as tk
window = tk.Tk()
###############################
#隐藏左上角闪烁一下的窗口
root.withdraw()
root.update()
###############################
# 设置窗口大小
winWidth = 600
winHeight = 400
# 获取屏幕分辨率
screenWidth = window.winfo_screenwidth()
screenHeight = window.winfo_screenheight()
x = int((screenWidth - winWidth) / 2)
y = int((screenHeight - winHeight) / 2)
#更改窗口的初始显示位置和大小
window.geometry("%sx%s+%s+%s" % (winWidth, winHeight, x, y))
################################
#显示修改显示位置的窗口
root.deiconify()
################################
# 设置主窗口标题
window.title("TreeView参数说明")
#固定窗口的大小
window.resizable(0, 0)
window.mainloop()
```
怎样将弹出窗口设置为模式窗口的问题以及怎样使弹出窗口一直悬浮与主窗口之上的问题
模式窗口:通俗点说就是当弹出的窗口没有关闭之前不能对主窗口进行操作,如下图所示:
![1](C:\Users\王保保\Desktop\1.gif)
tkinter中的实现办法
代码如下(详情请看代码中的注释):
```python
import tkinter as tk
#弹出窗口的代码
def tanchu(root):
top1 = tk.Toplevel(master=root) # 创建弹出式窗体
top1.withdraw()
top1.update()
w = 400
h = 320
ws, hs = top1.winfo_screenwidth(), top1.winfo_screenheight()
top1.geometry("%dx%d+%d+%d" %
(w, h, (ws / 2) - (w / 2), (hs / 2) - (h / 2)))
top1.deiconify()
################################################################
# 使弹出窗口一直处于主窗口前面
top1.transient(root)
# 将top1设置为模式对话框,top1不关闭无法操作主窗口
top1.grab_set()
################################################################
top1.mainloop()
#以下为主窗口的代码
window = tk.Tk()
#固定窗口的大小
window.resizable(0, 0)
# 设置窗口大小
winWidth = 600
winHeight = 400
# 获取屏幕分辨率
screenWidth = window.winfo_screenwidth()
screenHeight = window.winfo_screenheight()
x = int((screenWidth - winWidth) / 2)
y = int((screenHeight - winHeight) / 2)
# 设置主窗口标题
window.title("TreeView参数说明")
#更改窗口的初始显示位置和大小
window.geometry('400x400+600+200')
#window.geometry("%sx%s+%s+%s" % (winWidth, winHeight, x, y))
button=tk.Button(window,text='弹出窗口')
button.place(x=50,y=50)
button.bind("<Button-1>",
lambda x: tanchu(window))
window.mainloop()
tkinter中关于图形界面的一些问题就讲到这里,如果大家在阅读的过程中遇到什么问题,可以在下方评论,如果有帮助的各位的话,记得点个赞,加个关注噢!!!