Удаление минимизирует/кнопки развертывания окна в 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)
13
задан Vadim Kotov 12 July 2017 в 15:34
поделиться

1 ответ

В общем, то, какие декорации 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()

Существует также возможность, что для Toplevel окна, отличного от корневого, вы можете сделать:

toplevel.transient(1)

и это удалит кнопки min/max, но это также зависит от оконного менеджера. Из того, что я читал, MS Windows WM действительно удаляет их.

30
ответ дан 1 December 2019 в 19:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: