Okienko Tkintera nie wyświetla się

Odpowiedz Nowy wątek
2019-05-10 10:20

Rejestracja: 6 lat temu

Ostatnio: 55 minut temu

0

Kod napisany obiektowo po uruchomieniu nie zwraca interfejsu graficznego.

from tkinter import *

class Root(Tk):
    def __init__(self):
        super(Root, self).__init__()
        self.title("Exif Data")

        self.minsize(640,480)

root = Root()
root.mainloop

Po dodaniu do kodu

root3=tk.Tk()
root3.mainloop()

O dziwo uruchamia oba okienka. Po dodaniu labelFrame i button w klasie nie pokazują się one w okienku.


Life is Strange
W którym miejscu dodajesz labelFrame, bo jeśli po root.mainloop() to nie ma się co dziwić. Gdybyś użył debuggera to byś wiedział że on nigdy ich nie stworzy, bo na mainloopie() okno 'trwa', i dopóki trwa, to nie wykona późniejszych instrukcji. Przy okazji, w jedenastej linii masz root.mainloop bez nawiasów wywołujących mainloop - Guaz 2019-05-10 11:01

Pozostało 580 znaków

2019-05-10 11:05

Rejestracja: 3 lata temu

Ostatnio: 1 miesiąc temu

Lokalizacja: Częstochowa

2

Ogólnie zrobiłeś to źle, dlatego się nie uruchamia, najlepiej spojrzeć na przykład z dokumentacji, coś czego wiele osób unika na rzecz (często) g**no wartych poradników :).

import tkinter as tk

class Application(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.pack()
        self.create_widgets()

    def create_widgets(self):
        self.hi_there = tk.Button(self)
        self.hi_there["text"] = "Hello World\n(click me)"
        self.hi_there["command"] = self.say_hi
        self.hi_there.pack(side="top")

        self.quit = tk.Button(self, text="QUIT", fg="red",
                              command=self.master.destroy)
        self.quit.pack(side="bottom")

    def say_hi(self):
        print("hi there, everyone!")

root = tk.Tk()
app = Application(master=root)
app.mainloop()

https://docs.python.org/3/lib[...]#a-simple-hello-world-program
Tu link do dokumentacji, fragmentu w którym jest kod podstawowej konstrukcji.


Linux Mint
Arduino / Python 3.5.2

Pozostało 580 znaków

2019-05-10 12:25

Rejestracja: 4 lata temu

Ostatnio: 23 godziny temu

1

Brakuje nawiasów w ostatniej linijce

root.mainloop
Już to napisałem w komentarzu :D - Guaz 2019-05-11 11:17

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0