Tkinter - Textový editor – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Tkinter - Textový editor – Python – Fórum – Programujte.comTkinter - Textový editor – Python – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Poky
~ Anonymní uživatel
5 příspěvků
25. 8. 2008   #1
-
0
-

Zdravím, začínám s pythonem a chtěl jsem si vyzkoušet udělat ten textový editor...
Skončil jsem u první části, vše co bylo potřeba jsem opsal akorát když to chci spustit píše mi to tuto chybu:

poky@MyPc:~$ python /home/poky/Plocha/editor.py

Otevírám soubor: /home/poky/.aptitude/config
Traceback (most recent call last):
File "/home/poky/Plocha/editor.py", line 25, in <module>
self.lista=Frame(self.okno)
NameError: name 'self' is not defined
poky@MyPc:~$

nevim čim to je...

přikládám celej kód:

# -*- coding: utf-8 -*-

from Tkinter import*
import Image, ImageTk
import tkFileDialog


class Editor:
def __init__(self):
self.obrazky=[]
"vytvoření uživatelského rozhraní."
def otevrit(self):
"získa od uživatele jmeno souboru a otevře ho."
def ulozit(self):
"uloží právě otevřený dokument."
def novy_soubor(self):
"vytvoří nový soubor."



cesta=tkFileDialog.askopenfilename(title='Vyberte soubor')
print "Otevírám soubor: ",cesta



self.lista=Frame(self.okno)
self.lista.pack(fill=X)
Button(self.lista,image=self.vrat_obrazek("2.gif"),command=self.ulozit).pack(side=LEFT,fill=Y)

def vrat_obrazek(self, cesta):
obr=Image.open(cesta)
obr=ImageTk.PhotoImage(obr)
self.obrazky.append(obr)
self.okno.image=self.obrazky
return obr

hlavniMenu = Menu(self.okno)
menuSoubor = Menu(hlavniMenu, tearoff=0)
menuSoubor.add_command(label="Nový soubor")
menuSoubor.add_command(label="Otevřít")
menuSoubor.add_command(label="Uložit")
menuSoubor.add_command(label="Konec")
hlavniMenu.add_cascade(label="Soubor", menu=menuSoubor)
okno.config(menu=hlavniMenu)

cesta=tkFileDialog.askopenfilename(title=u"Otevřít...")
if cesta:
self.text.delete(1.0,END)
soubor=file(cesta,'r')
self.text.insert(END,soubor.read())
soubor.close()

self.text=Text(self.okno)
self.text.pack(fill=BOTH,expand=1)

obal=Frame(self.okno)
obal.pack(fill=BOTH,expand=1)
posuvnikY=Scrollbar(obal)
posuvnikY.pack(side=RIGHT,fill=Y)
posuvnikX=Scrollbar(obal, orient=HORIZONTAL)
posuvnikX.pack(fill=X,side=BOTTOM)
self.text=Text(obal,yscrollcommand=posuvnikY.set,xscrollcommand=posuvnikX.set,wrap=NONE)
self.text.pack(fill=BOTH,expand=1)
self.text.focus_set()
posuvnikX["command"]=self.text.xview
posuvnikY["command"]=self.text.yview

obrazek=Image.open("1.gif")
obrazek=ImageTk.PhotoImage(obrazek)


cesta=tkFileDialog.asksaveasfilename(title=u"Uložit jako...")
if cesta:
soubor=file(cesta,'w')
soubor.write(self.text.get(1.0,END))
soubor.close()

















nevíte čím to je? díky :)

Nahlásit jako SPAM
IP: 85.207.18.–
Reklama
Reklama
Spectator0
Věrný člen
25. 8. 2008   #2
-
0
-

Člověče, to je ZOO.
Ta chybka co ti to píše je proto, protože žádné self.okno neexistuje.
Ale řeknu ti to takhle, až opravíš tuhle chybu, budeti jich to hlásit ještě pěknej balík.
Hlavně jsi tam nejspíš zapomněl zkopírovat část kde začíná třída a kde se vytváří právě to self.okno.
Paksi taky dej pozor na odsazování, máš to dost zmatený.

Pokud začínáš s pythonem,raději jdi pomalu od základu, abys věděl přesně co jak pracuje, pak to bude jednodušší.

Nahlásit jako SPAM
IP: 82.150.166.–
. . .
Poky
~ Anonymní uživatel
5 příspěvků
25. 8. 2008   #3
-
0
-

nj zkouším to teprve chvíly...asi máš pravdu :)

ale přece...mohl bych tě poprosit o úpravu do funkční podoby? :)

Nahlásit jako SPAM
IP: 85.207.18.–
pawlik0
Grafoman
25. 8. 2008   #4
-
0
-

To Poky : chápu, že to nemyslíš špatně, ale ty nějak zkopíruješ kod, a chceš po nás, ať ti funguje. přesto kdybys uměl OOP, pochopil bys, že ti tam toho nějak moc chybí...

je pro tebe prostě lepší, když pomalu postupuješ a učíš se python, postupně rozvíjíš program, než abys slepil kousky kodu dohromady - kde očividně chybí odsazení po celé délce kodu.

p.s.: k čemu ti ten editor pak bude? neprocvičíš se v pythonu, nebudeš to moct dál vyvíjet, protože python na takové úrovni neumíš...

Nahlásit jako SPAM
IP: 84.42.151.–
Sa Nata A Na. Howgh
Poky
~ Anonymní uživatel
5 příspěvků
25. 8. 2008   #5
-
0
-

To pawlik : možná to někomu přijde divné ale zastávám jinný způsob učení,jelikož jsem člověk zbrklý tak mě kousky nebaví,místo toho si stáhnu program a potom ho zkoumám, skouším upravovat, když mi není něco jasný mrknu na net do dokumentace...

tímto způsobem jsem se naučil už pár jazyků...normálním způsobem učení (tím jak popisuješ) se bohužel nic nenučím, protože jsem zbrklý a tak mě to učit bohužel nebaví :/

Nahlásit jako SPAM
IP: 85.207.18.–
pawlik0
Grafoman
25. 8. 2008   #6
-
0
-

To Poky : v tom případě mi připadá divné, že začínáš zrovna editorem :) mohl sis vybrat něco jednoduššího. a navíc objektové programování bez teorie asi těžce zvládneš.

Nahlásit jako SPAM
IP: 84.42.151.–
Sa Nata A Na. Howgh
Spectator0
Věrný člen
25. 8. 2008   #7
-
0
-

To Poky : Souhlasim s pawlikem.
Učit se ze zdrojových kódů sice dá, ale hloubka znalostí podle mne nebude naplněna natolik, aby se dal jazyk naplno využívat, nebo to bude trvat velmi dlouho.
Je možné, že ses naučil dost jazyků tímto stylem, ale možná než počet, je důležitější kolik toho v daném jazyce zvládneš.
Já se třeba netajím tím, že umím pouze python,sice znám syntax C, C++, Java a trochu PHP, ale tyto jazyky pořádně neumím využít.
Jsem také zbrklý, nerad se učím, ale mám referenční příručku a učebnici pythonu a nemužu si stěžovat. Je to mnohem rychlejší způsob a myslím, že tím i svou zbrklost "ukojíš"spíš, než zdlouhavé prokousávání se kódem někoho cizího.

Nahlásit jako SPAM
IP: 82.150.166.–
. . .
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 26 hostů

Podobná vlákna

Python Tkinter - textovy editor — založil martin klvaňa

C# GTK Textovy editor — založil Miro1701

Primitivní textový editor — založil paul27

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý