Python oferece várias opções para o desenvolvimento de GUI (Graphical User Interface). De todos os métodos de GUI, tkinter é o método mais comumente usado. É uma interface Python padrão para o kit de ferramentas Tk GUI fornecido com Python. Python com tkinter é a maneira mais rápida e fácil de criar aplicativos GUI. Criar uma GUI usando tkinter é uma tarefa fácil.
Para criar um aplicativo tkinter:

  1. Importando o módulo - tkinter
  2. Crie a janela principal (container)
  3. Adicione qualquer número de widgets à janela principal
  4. Aplique o evento Trigger nos widgets.

Importar tkinter é o mesmo que importar qualquer outro módulo no código Python. Observe que o nome do módulo em Python 2.x é 'Tkinter' e em Python 3.x é 'tkinter'.

importar tkinter

Existem dois métodos principais usados ​​que o usuário precisa se lembrar ao criar o aplicativo Python com GUI.

  1. Tk (screenName = None, baseName = None, className = 'Tk', useTk = 1): Para criar uma janela principal, tkinter oferece um método 'Tk (screenName = None, baseName = None, className =' Tk ', useTk = 1) '. Para alterar o nome da janela, você pode alterar o className para o desejado. O código básico usado para criar a janela principal do aplicativo é:
    m = tkinter.Tk() onde m é o nome do objeto da janela principal
  2. mainloop(): Existe um método conhecido pelo nome mainloop() que é usado quando seu aplicativo está pronto para ser executado. mainloop() é um loop infinito usado para executar o aplicativo, esperar que um evento ocorra e processar o evento, desde que a janela não esteja fechada.
    m.mainloop()
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    import tkinter
    m = tkinter.Tk()
    m.mainloop()
    chevron_right
    
    
    filter_none
    
    

O tkinter também oferece acesso à configuração geométrica dos widgets que pode organizar os widgets nas janelas pai. Existem basicamente três classes de classes do gerenciador de geometria.

  1. Método pack(): organiza os widgets em blocos antes de colocá-los no widget pai.
  2. Método grid(): Organiza os widgets em grade (estrutura semelhante a uma tabela) antes de colocá-los no widget pai.
  3. Método place(): Organiza os widgets colocando-os em posições específicas dirigidas pelo programador.

Existem vários widgets que você pode colocar em seu aplicativo tkinter. Alguns dos principais widgets são explicados abaixo:



  1. Botão : para adicionar um botão em seu aplicativo, este widget é usado.
    A sintaxe geral é:
    w = Botão (mestre, opção = valor)

    master é o parâmetro usado para representar a janela pai.
    Existem várias opções que são usadas para alterar o formato dos botões. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • activebackground : para definir a cor de fundo quando o botão está sob o cursor.
    • activeforeground : para definir a cor do primeiro plano quando o botão está sob o cursor.
    • bg : para definir a cor de fundo normal.
    • comando : para chamar uma função.
    • fonte : para definir a fonte no rótulo do botão.
    • imagem : para definir a imagem no botão.
    • largura : para definir a largura do botão.
    • altura : para definir a altura do botão.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    import tkinter as tk
    r = tk.Tk()
    r.title('Counting Seconds')
    button = tk.Button(r, text='Stop', width=25, command=r.destroy)
    button.pack()
    r.mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  2. Tela: é usada para desenhar imagens e outros layouts complexos, como gráficos, texto e widgets.
    A sintaxe geral é:
    w = Canvas (mestre, opção = valor)
    master é o parâmetro usado para representar a janela pai.

    Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • bd : para definir a largura da borda em pixels.
    • bg : para definir a cor de fundo normal.
    • cursor : para definir o cursor usado na tela.
    • destaque cor : para definir a cor mostrada no destaque do foco.
    • largura : para definir a largura do widget.
    • altura : para definir a altura do widget.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
    master = Tk()
    w = Canvas(master, width=40, height=60)
    w.pack()
    canvas_height=20
    canvas_width=200
    y = int(canvas_height / 2)
    w.create_line(0, y, canvas_width, y )
    mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  3. CheckButton: Para selecionar qualquer número de opções, exibindo uma série de opções para um usuário como botões de alternância. A sintaxe geral é:
    w = CheckButton (mestre, opção = valor)

    Existem várias opções que são usadas para alterar o formato deste widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • Título : para definir o título do widget.
    • activebackground : para definir a cor de fundo quando o widget está sob o cursor.
    • activeforeground : para definir a cor do primeiro plano quando o widget está sob o cursor.
    • bg : para definir a esteganografia normal

      Pausa

      Codigo secreto:

      Anexar um arquivo: nd color.

    • comando : para chamar uma função.
    • fonte : para definir a fonte no rótulo do botão.
    • imagem : para definir a imagem no widget.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
    master = Tk()
    var1 = IntVar()
    Checkbutton(master, text='male', variable=var1).grid(row=0, sticky=W)
    var2 = IntVar()
    Checkbutton(master, text='female', variable=var2).grid(row=1, sticky=W)
    mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  4. Entrada: É usado para inserir a entrada de texto de uma linha do usuário. Para entrada de texto de várias linhas, o widget de Texto é usado.
    A sintaxe geral é:

    w = entrada (mestre, opção = valor)

    master é o parâmetro usado para representar a janela pai.
    Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • bd : para definir a largura da borda em pixels.
    • bg : para definir a cor de fundo normal.
    • cursor : para definir o cursor usado.
    • comando : para chamar uma função.
    • destaque cor : para definir a cor mostrada no destaque do foco.
    • largura : para definir a largura do botão.
    • altura : para definir a altura do botão.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
    master = Tk()
    Label(master, text='First Name').grid(row=0)
    Label(master, text='Last Name').grid(row=1)
    e1 = Entry(master)
    e2 = Entry(master)
    e1.grid(row=0, column=1)
    e2.grid(row=1, column=1)
    mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  5. Frame: atua como um recipiente para armazenar os widgets. É usado para agrupar e organizar os widgets. A sintaxe geral é:
    w = Frame (mestre, opção = valor)
    master é o parâmetro usado para representar a janela pai.

    Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • highlightcolor : para definir a cor do destaque de foco quando o widget precisa ser focalizado.
    • bd : para definir a largura da borda em pixels.
    • bg : para definir a cor de fundo normal.
    • cursor : para definir o cursor usado.
    • largura : para definir a largura do widget.
    • altura : para definir a altura do widget.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
      
    root = Tk()
    frame = Frame(root)
    frame.pack()
    bottomframe = Frame(root)
    bottomframe.pack( side = BOTTOM )
    redbutton = Button(frame, text = 'Red', fg ='red')
    redbutton.pack( side = LEFT)
    greenbutton = Button(frame, text = 'Brown', fg='brown')
    greenbutton.pack( side = LEFT )
    bluebutton = Button(frame, text ='Blue', fg ='blue')
    bluebutton.pack( side = LEFT )
    blackbutton = Button(bottomframe, text ='Black', fg ='black')
    blackbutton.pack( side = BOTTOM)
    root.mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  6. Etiqueta : refere-se à caixa de exibição onde você pode colocar qualquer texto ou imagem que pode ser atualizado a qualquer momento conforme o código.
    A sintaxe geral é:
    w = Rótulo (mestre, opção = valor)
    master é o parâmetro usado para representar a janela pai.

    Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • bg : para definir a cor de fundo normal.
    • bg para definir a cor de fundo normal.
    • comando : para chamar uma função.
    • fonte : para definir a fonte no rótulo do botão.
    • imagem : para definir a imagem no botão.
    • largura : para definir a largura do botão.
    • height ”para definir a altura do botão.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
    root = Tk()
    w = Label(root, text='GeeksForGeeks.org!')
    w.pack()
    root.mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  7. Caixa de listagem : oferece ao usuário uma lista da qual o usuário pode aceitar qualquer número de opções.
    A sintaxe geral é:
    w = caixa de listagem (mestre, opção = valor)
    master é o parâmetro usado para representar a janela pai.

    Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • highlightcolor : para definir a cor do destaque de foco quando o widget precisa ser focalizado.
    • bg : para definir a cor de fundo normal.
    • bd : para definir a largura da borda em pixels.
    • fonte : para definir a fonte no rótulo do botão.
    • imagem : para definir a imagem no widget.
    • largura : para definir a largura do widget.
    • altura : para definir a altura do widget.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
      
    top = Tk()
    Lb = Listbox(top)
    Lb.insert(1, 'Python')
    Lb.insert(2, 'Java')
    Lb.insert(3, 'C++')
    Lb.insert(4, 'Any other')
    Lb.pack()
    top.mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  8. Botão de menu : É uma parte do menu superior que fica na janela o tempo todo. Cada botão de menu tem sua própria funcionalidade. A sintaxe geral é:
    w = MenuButton (mestre, opção = valor)
    master é o parâmetro usado para representar a janela pai.

    Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • activebackground : Para definir o fundo quando o mouse está sobre o widget.
    • activeforeground : Para definir o primeiro plano quando o mouse estiver sobre o widget.
    • bg : para definir a cor de fundo normal.
    • bd : para definir o tamanho da borda ao redor do indicador.
    • cursor : Para aparecer o cursor ao passar o mouse sobre o botão do menu.
    • imagem : para definir a imagem no widget.
    • largura : para definir a largura do widget.
    • altura : para definir a altura do widget.
    • highlightcolor : para definir a cor do destaque de foco quando o widget precisa ser focalizado.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
      
    top = Tk()
    mb =  Menubutton ( top, text = "GfG")
    mb.grid()
    mb.menu  =  Menu ( mb, tearoff = 0 )
    mb["menu"]  =  mb.menu
    cVar  = IntVar()
    aVar = IntVar()
    mb.menu.add_checkbutton ( label ='Contact', variable = cVar )
    mb.menu.add_checkbutton ( label = 'About', variable = aVar )
    mb.pack()
    top.mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  9. Menu : serve para criar todos os tipos de menus utilizados pela aplicação.
    A sintaxe geral é:
    w = Menu (mestre, opção = valor)
    master é o parâmetro usado para representar a janela pai.

    Existem várias opções que são usadas para alterar o formato deste widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • título : Para definir o título do widget.
    • activebackground : para definir a cor de fundo quando o widget está sob o cursor.
    • activeforeground : para definir a cor do primeiro plano quando o widget está sob o cursor.
    • bg : para definir a cor de fundo normal.
    • comando : para chamar uma função.
    • fonte : para definir a fonte no rótulo do botão.
    • imagem : para definir a imagem no widget.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
          
    root = Tk()
    menu = Menu(root)
    root.config(menu=menu)
    filemenu = Menu(menu)
    menu.add_cascade(label='File', menu=filemenu)
    filemenu.add_command(label='New')
    filemenu.add_command(label='Open...')
    filemenu.add_separator()
    filemenu.add_command(label='Exit', command=root.quit)
    helpmenu = Menu(menu)
    menu.add_cascade(label='Help', menu=helpmenu)
    helpmenu.add_command(label='About')
    mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  10. Mensagem : Refere-se ao texto multilinha e não editável. Funciona da mesma forma que Label.
    A sintaxe geral é:

    w = Mensagem (mestre, opção = valor)
    master é o parâmetro usado para representar a janela pai.

    Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • bd : para definir a borda ao redor do indicador.
    • bg : para definir a cor de fundo normal.
    • fonte : para definir a fonte no rótulo do botão.
    • imagem : para definir a imagem no widget.
    • largura : para definir a largura do widget.
    • altura : para definir a altura do widget.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
    main = Tk()
    ourMessage ='This is our Message'
    messageVar = Message(main, text = ourMessage)
    messageVar.config(bg='lightgreen')
    messageVar.pack( )
    main.mainloop( )
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  11. RadioButton: É usado para oferecer opção de múltipla escolha ao usuário. Ele oferece várias opções ao usuário e o usuário deve escolher uma opção.
    A sintaxe geral é:
    w = RadioButton (mestre, opção = valor)

    Existem várias opções que são usadas para alterar o formato deste widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • activebackground : para definir a cor de fundo quando o widget está sob o cursor.
    • activeforeground : para definir a cor do primeiro plano quando o widget está sob o cursor.
    • bg : para definir a cor de fundo normal.
    • comando : para chamar uma função.
    • fonte : para definir a fonte no rótulo do botão.
    • imagem : para definir a imagem no widget.
    • largura : para definir a largura do rótulo em caracteres.
    • altura : para definir a altura da etiqueta em caracteres.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
    root = Tk()
    v = IntVar()
    Radiobutton(root, text='GfG', variable=v, value=1).pack(anchor=W)
    Radiobutton(root, text='MIT', variable=v, value=2).pack(anchor=W)
    mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  12. Escala: é usado para fornecer um controle deslizante gráfico que permite selecionar qualquer valor daquela escala. A sintaxe geral é:
    w = Escala (mestre, opção = valor)
    master é o parâmetro usado para representar a janela pai.

    Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • cursor : Para alterar o padrão do cursor quando o mouse está sobre o widget.
    • activebackground : Para definir o fundo do widget quando o mouse está sobre o widget.
    • bg : para definir a cor de fundo normal.
    • orientar : Configure para HORIZONTAL ou VERTICAL de acordo com a necessidade.
    • from_ : Para definir o valor de uma extremidade do intervalo da escala.
    • para : Para definir o valor da outra extremidade do intervalo da escala.
    • imagem : para definir a imagem no widget.
    • largura : para definir a largura do widget.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
    master = Tk()
    w = Scale(master, from_=0, to=42)
    w.pack()
    w = Scale(master, from_=0, to=200, orient=HORIZONTAL)
    w.pack()
    mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  13. Barra de rolagem : refere-se ao controlador de slide que será usado para implementar os widgets listados.
    A sintaxe geral é:
    w = barra de rolagem (mestre, opção = valor)
    master é o parâmetro usado para representar a janela pai.

    Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • largura : para definir a largura do widget.
    • activebackground : Para definir o fundo quando o mouse está sobre o widget.
    • bg : para definir a cor de fundo normal.
    • bd : para definir o tamanho da borda ao redor do indicador.
    • cursor : Para aparecer o cursor ao passar o mouse sobre o botão do menu.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
    root = Tk()
    scrollbar = Scrollbar(root)
    scrollbar.pack( side = RIGHT, fill = Y )
    mylist = Listbox(root, yscrollcommand = scrollbar.set )
    for line in range(100):
       mylist.insert(END, 'This is line number' + str(line))
    mylist.pack( side = LEFT, fill = BOTH )
    scrollbar.config( command = mylist.yview )
    mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  14. Texto: para editar um texto de várias linhas e formatar da maneira como deve ser exibido.
    A sintaxe geral é:
    w = Texto (mestre, opção = valor)

    Existem várias opções que são usadas para alterar o formato do texto. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • highlightcolor : para definir a cor do destaque de foco quando o widget precisa ser focalizado.
    • insertbackground : Para definir o fundo do widget.
    • bg : para definir a cor de fundo normal.
    • fonte : para definir a fonte no rótulo do botão.
    • imagem : para definir a imagem no widget.
    • largura : para definir a largura do widget.
    • altura : para definir a altura do widget.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
    root = Tk()
    T = Text(root, height=2, width=30)
    T.pack()
    T.insert(END, 'GeeksforGeeks\nBEST WEBSITE\n')
    mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  15. TopLevel: Este widget é controlado diretamente pelo gerenciador de janelas. Não precisa de nenhuma janela pai para trabalhar. A sintaxe geral é:
    w = TopLevel (mestre, opção = valor)

    Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • bg : para definir a cor de fundo normal.
    • bd : para definir o tamanho da borda ao redor do indicador.
    • cursor : Para aparecer o cursor ao passar o mouse sobre o botão do menu.
    • largura : para definir a largura do widget.
    • altura : para definir a altura do widget.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
    root = Tk()
    root.title('GfG')
    top = Toplevel()
    top.title('Python')
    top.mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  16. SpinBox: É uma entrada do widget 'Entrada'. Aqui, o valor pode ser inserido selecionando um valor fixo de números. A sintaxe geral é:
    w = SpinBox (mestre, opção = valor)

    Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • bg : para definir a cor de fundo normal.
    • bd : para definir o tamanho da borda ao redor do indicador.
    • cursor : Para aparecer o cursor ao passar o mouse sobre o botão do menu.
    • comando : Para chamar uma função.
    • largura : para definir a largura do widget.
    • activebackground : Para definir o fundo quando o mouse está sobre o widget.
    • disabledbackground : Para desativar o fundo quando o mouse está sobre o widget.
    • from_ : Para definir o valor de uma extremidade do intervalo.
    • para : Para definir o valor da outra extremidade do intervalo.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
    master = Tk()
    w = Spinbox(master, from_ = 0, to = 10)
    w.pack()
    mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

  17. PannedWindow É um widget de contêiner que é usado para lidar com o número de painéis dispostos nele. A sintaxe geral é:
    w = PannedWindow (mestre, opção = valor)

    master é o parâmetro usado para representar a janela pai.
    Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.

    • bg : para definir a cor de fundo normal.
    • bd : para definir o tamanho da borda ao redor do indicador.
    • cursor : Para aparecer o cursor ao passar o mouse sobre o botão do menu.
    • largura : para definir a largura do widget.
    • altura : para definir a altura do widget.
    filter_none

    editar
    fechar

    play_arrow

    link
    brilho_4
    código

    from tkinter import *
    m1 = PanedWindow()
    m1.pack(fill = BOTH, expand = 1)
    left = Entry(m1, bd = 5)
    m1.add(left)
    m2 = PanedWindow(m1, orient = VERTICAL)
    m1.add(m2)
    top = Scale( m2, orient = HORIZONTAL)
    m2.add(top)
    mainloop()
    chevron_right
    
    
    filter_none
    
    

    Resultado:

Este artigo é uma contribuição de Rishabh Bansal . Se você gosta de GeeksforGeeks e gostaria de contribuir, você também pode escrever um artigo usando contribute.geeksforgeeks.org ou enviar o seu artigo para contribute@geeksforgeeks.org. Veja o seu artigo que aparece na página principal do GeeksforGeeks e ajude outros Geeks.

Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima.