网站首页 > 知识剖析 正文
关于tkinter自己以前是没怎么在意过的,因为我认为tkinter只能用来编写一些较为简单的图形界面,没什么技术含量,但是当自己在写毕业设计的过程中,发现了tkinter中的一些细节问题,下面就详细的说一下。
1.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()
2.怎样将弹出窗口设置为模式窗口的问题以及怎样使弹出窗口一直悬浮与主窗口之上的问题
模式窗口:通俗点说就是当弹出的窗口没有关闭之前不能对主窗口进行操作,如图1所示:
tkinter中的实现办法
代码如下(详情请看代码中的注释):
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中关于图形界面的一些问题就讲到这里,如果大家在阅读的过程中遇到什么问题,可以在下方评论,如果有帮助的各位的话,记得点个赞,加个关注噢!!!
- 上一篇: 深入浅出 Viewport 设计原理
- 下一篇: 【LearnOpenGL】11.网格基础
猜你喜欢
- 2025-01-02 界面交互篇:个人中心页布局样式与逻辑交互开发
- 2025-01-02 Python 开发Word转PDF工具实现
- 2025-01-02 程序员用Python实现自动化控制键盘和鼠标
- 2025-01-02 JSX和RN样式以及和web的不同之处
- 2025-01-02 原神增大视野范围方法 原神怎么增加可视范围
- 2025-01-02 137.Python——PySide6:QInputDialog输入对话框的创建与使用
- 2025-01-02 科目二倒车入库模拟机程序代码
- 2025-01-02 用 Python 和 Pygame 实现一个图形界面的俄罗斯方块小游戏
- 2025-01-02 软件测试|超好用超简单的Python GUI库——tkinter(二)
- 2025-01-02 红色警戒轻松搞定高分辨率全屏
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)