Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在tkinter窗口顶部添加问号[?]按钮_Python_Tkinter_Window - Fatal编程技术网

Python 如何在tkinter窗口顶部添加问号[?]按钮

Python 如何在tkinter窗口顶部添加问号[?]按钮,python,tkinter,window,Python,Tkinter,Window,我想为我的python tkinter项目创建一个窗口,窗口顶部有一个问号按钮,如下所示: 还有什么我可以做到的吗?我想我已经成功了: 从PIL导入图像,ImageTk 将tkinter作为tk导入 导入系统 使用WINDOWS=(“系统平台中的win”) 主题选项=(“亮”、“暗”) THEME=“黑暗” 如果主题==“黑暗”: THEME_BG=“黑色” THEME_FG=“白色” 主题颜色=“灰色” 主题突出显示=“灰色” 主题\u活动\u标题栏\u BG=“黑色” 主题\u非活动\u标

我想为我的python tkinter项目创建一个窗口,窗口顶部有一个问号按钮,如下所示:


还有什么我可以做到的吗?

我想我已经成功了:

从PIL导入图像,ImageTk
将tkinter作为tk导入
导入系统
使用WINDOWS=(“系统平台中的win”)
主题选项=(“亮”、“暗”)
THEME=“黑暗”
如果主题==“黑暗”:
THEME_BG=“黑色”
THEME_FG=“白色”
主题颜色=“灰色”
主题突出显示=“灰色”
主题\u活动\u标题栏\u BG=“黑色”
主题\u非活动\u标题栏\u BG=“灰色17”
elif主题==“灯光”:
THEME_BG=“#f0ed”
THEME_FG=“黑色”
主题颜色=“灰色”
主题突出显示=“灰色”
主题\u活动\u标题栏\u BG=“白色”
主题\u非活动\u标题栏\u BG=“灰色80”
SNAP_阈值=200
分隔符大小=1
自定义按钮的数量=5
使用UNICODE=False
类自定义按钮(tk.按钮):
def uuu init_uuuu(self、master、betterroot、name=“#”,function=None,column=0):
self.betterroot=betterroot
如果函数为无:
self.callback=lambda:None
其他:
self.callback=函数
super()。uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu(master,text=name,relief=“flat”,bg=THEME\u bg,
fg=THEME\u fg,command=lambda:self.callback()
self.column=列
def显示(自身,列=无):
"""
显示屏幕上的按钮
"""
如果列为无:
column=self.column
super().grid(行=1,列=列)
def隐藏(自我):
"""
在屏幕上隐藏按钮
"""
super().grid_忘记()
类最小值按钮(tk.按钮):
定义初始值(self、master、betterroot):
self.betterroot=betterroot
如果使用UNICODE:
text=“\u2014”
其他:
text=“\”
super()。uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu(master,text=text,relief=“flat”,bg=THEME\u bg,
fg=THEME\u fg,command=self.最小化(窗口)
def\U窗口(自):
"""
最小化窗口
"""
self.betterroot.dummy_root.iconify()
self.betterroot.root.draw()
def显示(自身,列=自定义按钮的数量+2):
"""
显示屏幕上的按钮
"""
super().grid(行=1,列=列)
def隐藏(自我):
"""
在屏幕上隐藏按钮
"""
super().grid_忘记()
类全屏按钮(tk.按钮):
定义初始值(self、master、betterroot):
self.betterroot=betterroot
如果使用UNICODE:
text=“\u2610”
其他:
text=“[]”
super()。uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu(master,text=text,relief=“flat”,bg=THEME\u bg,
fg=THEME\u fg,command=self.toggle\u全屏)
def切换_全屏(自身,事件=无):
"""
切换全屏。
"""
#如果通过双击调用:
如果事件不是无:
#确保我们没有双击其他内容
如果不是self.betterroot.check_parent_titlebar(事件):
一无所获
#如果是标题栏切换全屏:
如果self.betterroot.is_全屏显示:
self.notfullscreen()
其他:
self.fullscreen()
def全屏(自):
"""
切换到全屏。
"""
如果self.betterroot.is_全屏显示:
返回“错误”
super().config(命令=self.notfullscreen)
如果使用WINDOWS:
self.betterroot.root.overrideredirect(False)
其他:
self.betterroot.root.attributes(“-type”,“normal”)
self.betterroot.root.attributes(“-fullscreen”,True)
self.betterroot.is_full_screen=真
def非全屏(自身):
"""
切换回正常(非全屏)屏幕。
"""
如果不是self.betterroot.is_全屏显示:
返回“错误”
#这将在“全屏”和“非全屏”方法之间切换
super().config(命令=self.fullscreen)
self.betterroot.root.attributes(“-fullscreen”,False)
如果使用WINDOWS:
self.betterroot.root.overrideredirect(True)
其他:
self.betterroot.root.attributes(“-type”、“splash”)
self.betterroot.is\u满屏=假
def显示(自身,列=自定义按钮的数量+3):
"""
显示屏幕上的按钮
"""
super().grid(行=1,列=列)
def隐藏(自我):
"""
在屏幕上隐藏按钮
"""
super().grid_忘记()
类关闭按钮(tk.按钮):
定义初始值(self、master、betterroot):
self.betterroot=betterroot
如果使用UNICODE:
text=“\u26cc”
其他:
text=“X”
super()。uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu(master,text=text,relief=“flat”,bg=THEME\u bg,
fg=THEME\u fg,command=self.close\u window\u协议)
def关闭窗口协议(自):
"""
生成“WM_DELETE_WINDOW”协议请求。
如果未处理,它将自动转到'root.destroy()`
"""
self.betterroot.protocol\u生成(“WM\u删除\u窗口”)
def显示(自身,列=自定义按钮的数量+4):
"""
显示屏幕上的按钮
"""
super().grid(行=1,列=列)
def隐藏(自我):
"""
在屏幕上隐藏按钮
"""
super().grid_忘记()
类BetterTk(传统框架):
"""
属性:
禁用\u北\u西\u调整大小
*钮扣*
最小化按钮
全屏按钮
关闭按钮
*所有按钮的列表*
按钮:[最小化按钮、全屏按钮、关闭按钮,…]
方法:
*新定义的方法列表*
更改标题栏背景(新背景颜色)=>无
协议_生成(协议)=>无
#定制