Я разрабатываю графический интерфейс с использованием Python tkinter в Linux на основе Debian .
Всякий раз, когда я удаляю строку заголовка окна root и toplevel, используя overrideredirect (True) метод Я сталкиваюсь с нижеуказанными проблемами .
- Поле ввода не работает ( не получает фокус / не получает ввод ), когда я нажимаю на него.
- Всякий раз, когда я использую клавишу Alt + Tab, фокусируется только она.
- Затем я должен удерживать нажатой левую или правую кнопку мыши в нажатом положении, тогда только поле ввода принимает ввод, в противном случае ввод записывается в окне терминала.
Может ли кто-нибудь предложить альтернативный способ удаления заголовка заголовка или скрытия строки заголовка в tkinter в системе на основе Linux. Этот код хорошо работает в системе Windows.
Возник вопрос Переадресация Tkinter предотвращает определенные события в Mac и Linux , что похоже на мою проблему, но я не смог найти ее решение.
from tkinter import *
class GuiApp:
def __init__(self,master):
master_frame = Frame(master,background= 'blue')
master_frame.grid()
b1 = Button(master_frame,
height=3,text="BUTTON",width=15, font=14,command=lambda parent=master: self.create_top_window(parent))
b1.grid(row=0, column=0, pady=3, padx=5)
master_frame.grab_set()
def create_top_window(self,parent):
toplevel = Toplevel(parent, bg='red', bd=5, relief=RIDGE)
toplevel.geometry('350x250')
toplevel.wm_overrideredirect(True)
# toplevel.wm_attributes('-type','splash')
label=Label(toplevel,text='Entry:')
entry=Entry(toplevel,width=10,font=13)
button = Button(toplevel, text='close', font=('TkTextFont', 14), command=toplevel.destroy)
label.grid(row=0,column=0,padx=5,pady=5)
entry.grid(row=0,column=1,padx=5,pady=5)
button.grid(row=1, column=0, padx=1, pady=1)
toplevel.grab_set()
root = Tk()
root.wm_overrideredirect(True)
#root.wm_attributes('-type','splash')
app = GuiApp(root)
root.mainloop()