Função para Abrir uma Interface do tkinter no Centro da Tela em Python
Publicado por Mauricio Ferrari em 07/10/2021
[ Hits: 11.650 ]
Blog: https://www.youtube.com/@LinuxDicasPro
def center(win):
# :param win: the main window or Toplevel window to center
# Apparently a common hack to get the window size. Temporarily hide the
# window to avoid update_idletasks() drawing the window in the wrong
# position.
win.update_idletasks() # Update "requested size" from geometry manager
# define window dimensions width and height
width = win.winfo_width()
frm_width = win.winfo_rootx() - win.winfo_x()
win_width = width + 2 * frm_width
height = win.winfo_height()
titlebar_height = win.winfo_rooty() - win.winfo_y()
win_height = height + titlebar_height + frm_width
# Get the window position from the top dynamically as well as position from left or right as follows
x = win.winfo_screenwidth() // 2 - win_width // 2
y = win.winfo_screenheight() // 2 - win_height // 2
# this is the line that will center your window
win.geometry('{}x{}+{}+{}'.format(width, height, x, y))
# This seems to draw the window frame immediately, so only call deiconify()
# after setting correct window position
win.deiconify()
import tkinter as tk
main_app = tk.Tk()
main_app.attributes('-alpha', 0.0) # Opcional, para deixar a janela totalmente transparente até os ajustes serem feitos.
main_app.minsize(500, 300)
center(main_app) # A função
main_app.attributes('-alpha', 1.0) # A interface fica visível novamente.
main_app.mainloop()
Transmageddon 1.5 no Slackware Current e no Python 3.9 - É sério!
RecordMyDesktop no Slackware Funcionando no KDE Plasma 5
Grub não detecta outras partições após a atualização do Slackware [Resolvido]
Sed - Adicionar uma Linha em Branco no Final do Arquivo
Executando um Comando ou Programa como Outro Usuário
Python com Ninja-IDE no Fedora
Como descobrir seu chat_id no Telegram
Novo TradutorOOoNote substitui texto e envia o antigo para anotação
Obtendo mirrors mais velozes no Arch Linux
Referenciando linhas anteriores em um arquivo csv usando Pandas
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Atualizei meu ubuntu e desliguei e ele não inicia corretamente (17)
Podem me chamar de 1mbecil :) (6)









