Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności: PyData Warsaw :: https://pydata.org/warsaw2018/
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: pycharm 2018.1.4 i tkinter  (Przeczytany 3777 razy)
« : 12:10 19/07/18 »
kustosz Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Płeć: Mężczyzna
Wiadomości: 10


Jak zaimportować tkinter żeby zadziałał.
Niby się uruchamia ale okna nie wyświetla (win7)
w idle działa ok.
A może to wina że to wersja darmowa PyCharm?

from tkinter import *
tk=Tk()
p = Canvas(tk, width=500, height=500)
p.pack()
p.create_rectangle(10, 10, 50, 300)
Zapisane
« Odpowiedz #1 : 08:16 20/07/18 »
guest013 Offline
Advanced Python User

Zobacz profil
**

Reputacja: 21
Wiadomości: 156


Czy to jest cały kod? Pytam, bo żeby pojawiło się czyste okienko należy napisać trzy linijki kodu. A w tym kodzie brakuje ostatniej linijki.

Kod
from tkinter import Tk
 
root = Tk()
 
?????????????
Zapisane

Expect nothing and you will never be dissapointed
« Odpowiedz #2 : 09:07 20/07/18 »
kustosz Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Płeć: Mężczyzna
Wiadomości: 10


nie bardzo rozumiem bo kod ma 5 linii i co to jest root=Tk()?
no i dlaczego ma być import tylko Tk z tkinter?
czy mógł byś napisać te trzy linie kodo które wyświetlą okno?
Bo tak jak mówiłem w idle-u mi wszystko działa.
W pycharm po wykonaniu dostaję tylko komunikat:
Process finished with exit code 0
Zapisane
« Odpowiedz #3 : 09:19 20/07/18 »
guest013 Offline
Advanced Python User

Zobacz profil
**

Reputacja: 21
Wiadomości: 156


To jest podstawa do tworzenia czegokolwiek w tkinter

Kod
# Lubię importować tylko to, czego apka używa a nie wszystko *
from tkinter import Tk
 
#Zamiast 'root' możesz wstawić nazwę jaka ci się podoba. Ja się przyzwyczaiłem do root
root = Tk()
 
#Tej linijki brakowało. Trzeba wystartować pętlę
root.mainloop()

W przypadku twojego kodu powinno być tak:
Kod
from tkinter import Tk, Canvas
tk=Tk()
p = Canvas(tk, width=500, height=500)
p.pack()
p.create_rectangle(10, 10, 50, 300)
tk.mainloop()

I zapraszam do lektury
https://docs.python.org/3/library/tkinter.html#module-tkinter
Zapisane

Expect nothing and you will never be dissapointed
« Odpowiedz #4 : 10:03 20/07/18 »
kustosz Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Płeć: Mężczyzna
Wiadomości: 10


Dziękuję teraz jest dobrze ale dlaczego w idlu to chodziło bez tej pętli?
Zapisane
« Odpowiedz #5 : 10:34 20/07/18 »
guest013 Offline
Advanced Python User

Zobacz profil
**

Reputacja: 21
Wiadomości: 156


Bez ostatniej linii nic użytkownikowi się nie wyświetli. Jest sposób na napisanie kodu pomijającego metodę mainloop() ale jest to sposób niepolecany, ponieważ nie działa obsługa zdarzeń.

A dlaczego u ciebie działało, to nie wiem. Może samo IDLE jest tak skonfigurowane u ciebie. Nie wiem czy wiesz ale IDLE jest napisane właśnie za pomocą tkinter
Zapisane

Expect nothing and you will never be dissapointed
« Odpowiedz #6 : 12:15 20/07/18 »
kustosz Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Płeć: Mężczyzna
Wiadomości: 10


Nie wiedziałem ale to może jest powód dla którego kod dział bo w literaturze z której korzystałem w kodach nie ma mainloop() ale tam polecają do wykonania kodu właśnie idle instalowane wraz z pythonem. Jeszcze raz dziękuję.
Zapisane
« Odpowiedz #7 : 20:57 31/07/18 »
DJangoL Offline
Professional Python User

Zobacz profil
***

Reputacja: 27
Wiadomości: 377


Zajrzyj na zetcode.com - masz tutki do kilku GUI pythonowskich, całkiem nieźle zrobione.
Zapisane
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2018 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot