Vid*_*dar 13 python windows tkinter
我有一个python程序,它打开一个新窗口来显示一些"关于"信息.这个窗口有自己的关闭按钮,我已经使它不可调整大小.然而,最大化和最小化它的按钮仍然存在,我希望它们消失.
我正在使用Tkinter,包装所有信息以显示在Tk类中.
到目前为止的代码如下.我知道它不漂亮,我打算扩展信息使其成为一个类,但我希望在移动之前对此问题进行排序.
任何人都知道如何管理Windows管理器显示哪些默认按钮?
def showAbout(self):
if self.aboutOpen==0:
self.about=Tk()
self.about.title("About "+ self.programName)
Label(self.about,text="%s: Version 1.0" % self.programName ,foreground='blue').pack()
Label(self.about,text="By Vidar").pack()
self.contact=Label(self.about,text="Contact: adress@gmail.com",font=("Helvetica", 10))
self.contact.pack()
self.closeButton=Button(self.about, text="Close", command = lambda: self.showAbout())
self.closeButton.pack()
self.about.geometry("%dx%d+%d+%d" % (175,\
95,\
self.myParent.winfo_rootx()+self.myParent.winfo_width()/2-75,\
self.myParent.winfo_rooty()+self.myParent.winfo_height()/2-35))
self.about.resizable(0,0)
self.aboutOpen=1
self.about.protocol("WM_DELETE_WINDOW", lambda: self.showAbout())
self.closeButton.focus_force()
self.contact.bind('<Leave>', self.contactMouseOver)
self.contact.bind('<Enter>', self.contactMouseOver)
self.contact.bind('<Button-1>', self.mailAuthor)
else:
self.about.destroy()
self.aboutOpen=0
def contactMouseOver(self,event):
if event.type==str(7):
self.contact.config(font=("Helvetica", 10, 'underline'))
elif event.type==str(8):
self.contact.config(font=("Helvetica", 10))
def mailAuthor(self,event):
import webbrowser
webbrowser.open('mailto:adress@gmail.com',new=1)
Run Code Online (Sandbox Code Playgroud)
tzo*_*zot 30
一般来说,WM(窗口管理器)决定显示的装饰不能像Tkinter这样的工具包轻易指定.所以,让我总结一下我所知道的以及我发现的内容:
import Tkinter as tk
root= tk.Tk()
root.title("wm min/max")
# this removes the maximize button
root.resizable(0,0)
# # if on MS Windows, this might do the trick,
# # but I wouldn't know:
# root.attributes(toolwindow=1)
# # for no window manager decorations at all:
# root.overrideredirect(1)
# # useful for something like a splash screen
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
对于Toplevel除根目录之外的窗口,还可以执行以下操作:
toplevel.transient(1)
Run Code Online (Sandbox Code Playgroud)
这将删除最小/最大按钮,但它也取决于窗口管理器.从我读到的,MS Windows WM确实删除它们.
小智 12
from tkinter import *
qw=Tk()
qw.resizable(0,0) #will disable max/min tab of window
qw.mainloop()
Run Code Online (Sandbox Code Playgroud)
from tkinter import *
qw=Tk()
qw.overrideredirect(1) # will remove the top badge of window
qw.mainloop()
Run Code Online (Sandbox Code Playgroud)
这是在 tkinter 中禁用最大化和最小化选项的两种方法
请记住图像中显示的按钮代码不在示例中,因为这是有关如何使最大/最小选项卡不起作用或如何删除的解决方案
对于 Windows,您可以像这样使用 -toolwindow 属性:
root.attributes('-toolwindow', True)
Run Code Online (Sandbox Code Playgroud)
所以如果你想要完整的代码,就是这样
from tkinter import *
from tkinter import ttk
root = Tk()
root.attributes('-toolwindow', True)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
其他 window.attributes 属性:
-alpha
-transparentcolor
-disabled
-fullscreen
-toolwindow
-topmost
Run Code Online (Sandbox Code Playgroud)
重要说明这仅适用于 Windows。不是 MacOS
使用 mac,您可以使用过度重定向属性和“x”按钮来关闭窗口,这将完成这项工作。:D 像这样:
from tkinter import *
from tkinter import ttk
window = Tk()
window.overredirect(True)
Button(window, text="x", command=window.destroy).pack()
window.mainloop()
Run Code Online (Sandbox Code Playgroud)
灵感来自https://www.delftstack.com/howto/python-tkinter/how-to-create-full-screen-window-in-tkinter/
对我来说,它正在工作,我有一个 Windows 7。
如果我有错误,请评论我。
| 归档时间: |
|
| 查看次数: |
28974 次 |
| 最近记录: |