Форум сайта python.su
При вызове окон редакторов python пишет:
AttributeError: ‘None Type’ object has not attribute ‘get’
from tkinter import *
from tkinter.messagebox import *
import sys
import time
import os
a = "1"
name = "page.html"
if os.path.exists(".\Web-pages\style.css"):
pass
else:
s = open(".\Web-pages\style.css", "w")
s.write("##CSS Style file gen by HtmlEdit")
s.close()
tk = Tk()
tk.geometry("161x150")
tk.title("Html Editor for Professional x1 BetaTest")
tk.resizable(False, False)
f = open(".\Web-pages\page.html", "w")
if os.path.exists("./Web-pages"):
showinfo("Папка существует.", "Папка Web-pages существует.\nВ папку будут помещены все созданные страницы.")
else:
os.mkdir("./Web-pages")
def create():
print ("Creating...")
f.write("<html>\n<head>\n<LINK REL=STYLESHEET TYPE='text/css' HREF='style.css'>\n</head>\n<body>\n</body>\n</html>")
showinfo("Информация", "\nБазовая страница сохранена с именем " + name + "\nИзменения будут применены после выхода из программы")
def about():
showinfo("About","By Grizzly\nVisit: http://python-tools.narod.ru")
def manual():
os.startfile("manual.chm")
s = open(".\Web-pages\style.css", "w")
def vwin():
win1 = Toplevel()
win1.geometry("400x311")
win1.title("Html editor text mode.")
win1.resizable(False, False)
lab1 = Label(win1, text="Код будет расположен между тегами <body>", fg="blue").place(x=5, y=5)
txt = Text(win1, fg="black", bg="grey", width=48, height=15).place(x=5, y=30)
bu1 = Button(win1, fg="blue", text="Внести изменения", width=20, height=1).place(x=5, y=277)
win2 = Toplevel()
win2.geometry("400x311")
win2.title("CSS editor text mode.")
win2.resizable(False, False)
lab2 = Label(win2, text="Код будет расположен в файле style.css", fg="blue").place(x=5, y=5)
txt2 = Text(win2, fg="black", bg="grey", width=48, height=15).place(x=5, y=30)
bu2 = Button(win2, fg="blue", text="Внести изменения", width=20, height=1).place(x=5, y=277)
g1 = txt.get()
g2 = txt2.get()
g1.StringVar()
g2.StringVar()
b1 = Button(tk, text="Создать каркас страницы", width=20, height=1, command=create, fg="blue")
b2 = Button(tk, text="Информация", width=20, height=1, command=about, fg="blue")
b3 = Button(tk, text="Окна редактирования", width=20,height=1, command=vwin, fg="blue")
b4 = Button(tk, text="Книга html", command=manual, width=20, height=1, fg="blue")
b5 = Button(tk, text="Выход", command=sys.exit, bg="red", fg="black", width=20, height=1)
b5.place(x=5, y=105)
b2.place(x=5, y=30)
b1.place(x=5, y=5)
b3.place(x=5, y=55)
b4.place(x=5, y=80)
tk.mainloop()
Отредактировано (Фев. 22, 2012 14:02:35)
Офлайн
>>> from Tkinter import *
>>> root = Tk()
>>> x = Button()
>>> x
0: <Tkinter.Button instance at 0x01E0C558>
>>> x = Button().pack()
>>> x
>>> print x
None
>>>
Офлайн
При чем тут связка x с кнопкой? Я вас не так понял разъясните.
Офлайн
Сами окна вызываются, но ! Не записывает в файл. А при вызове окон светит то сообщение
Офлайн
метод pack place и grid возвращают None
txt = Text().place()
txt - уже None, так неправильно txt.get() вызовет ошибку
правильно:
txt = Text()
txt.place()
txt.get()
Офлайн
sp3Thanks =)
метод pack place и grid возвращают None
txt = Text().place()
txt - уже None, так неправильно txt.get() вызовет ошибку
правильно:
txt = Text()
txt.place()
txt.get()
Офлайн
TypeError: get() takes at least 2 arguments (1 given)
Рано радовался. Вот что пишет. Код чуток изменил
from tkinter import *
from tkinter.messagebox import *
import sys
import time
import os
a = "1"
name = "page.html"
if os.path.exists(".\Web-pages\style.css"):
pass
else:
s = open(".\Web-pages\style.css", "w")
s.write("##CSS Style file gen by HtmlEdit")
s.close()
tk = Tk()
tk.geometry("161x140")
tk.title("Html Editor for Professional x1 BetaTest")
tk.resizable(False, False)
f = open(".\Web-pages\page.html", "w")
s = open(".\Web-pages\style.css", "w")
if os.path.exists("./Web-pages"):
showinfo("Папка существует.", "Папка Web-pages существует.\nВ папку будут помещены все созданные страницы.")
else:
os.mkdir("./Web-pages")
def wh():
f.write(txt.get())
showinfo("Информация", "Изменения будут применены \nпосле выхода из программы")
def wc():
s.write(txt.get())
showinfo("Информация", "Изменения будут применены \nпосле выхода из программы")
win1 = Toplevel()
win1.geometry("400x311")
win1.title("Html editor text mode.")
win1.resizable(False, False)
lab1 = Label(win1, text="Код будет расположен между тегами <body>", fg="blue").place(x=5, y=5)
txt = Text(win1, fg="black", bg="grey", width=48, height=15)
txt.place(x=5, y=30)
bu1 = Button(win1, fg="blue", text="Внести изменения", width=20, height=1, command=wh).place(x=5, y=277)
win2 = Toplevel()
win2.geometry("400x311")
win2.title("CSS editor text mode.")
win2.resizable(False, False)
lab2 = Label(win2, text="Код будет расположен в файле style.css", fg="blue").place(x=5, y=5)
txt2 = Text(win2, fg="black", bg="grey", width=48, height=15)
bu2 = Button(win2, fg="blue", text="Внести изменения", width=20, height=1, command=wc).place(x=5, y=277)
txt2.place(x=5, y=30)
def create():
print ("Creating...")
f.write("<html>\n<head>\n<LINK REL=STYLESHEET TYPE='text/css' HREF='style.css'>\n</head>\n<body>\n</body>\n</html>")
showinfo("Информация", "\nБазовая страница сохранена с именем " + name + "\nИзменения будут применены после выхода из программы")
def about():
showinfo("About","By Grizzly\nVisit: http://python-tools.narod.ru")
def manual():
os.startfile("manual.chm")
def site():
os.startfile("http://python-tools.narod.ru")
b1 = Button(tk, text="Создать каркас страницы", width=20, height=1, command=create, fg="blue")
b2 = Button(tk, text="Информация", width=20, height=1, command=about, fg="blue")
b3 = Button(tk, text="Посетить сайт", width=20,height=1, command=site, fg="blue")
b4 = Button(tk, text="Книга html", command=manual, width=20, height=1, fg="blue")
b5 = Button(tk, text="Выход", command=sys.exit, bg="red", fg="black", width=20, height=1)
b5.place(x=5, y=105)
b2.place(x=5, y=30)
b1.place(x=5, y=5)
b3.place(x=5, y=55)
b4.place(x=5, y=80)
tk.mainloop()
Офлайн
http://infohost.nmt.edu/tcc/help/pubs/tkinter.pdf
читай доки
get у Text нужно указать начало и конец куска текста
Офлайн
Спасибо. Кому надо вот функции :
from tkinter import *
import os
path = os.path.dirname(sys.argv[0])
os.chdir(path)
f = open("File", "mode")
s = open("File", "mode")
def wh():
f.write(txt.get("1.0", "end"))
showinfo("Информация", "Изменения будут применены \nпосле выхода из программы")
def wc():
s.write(txt.get("1.0", "end"))
showinfo("Информация", "Изменения будут применены \nпосле выхода из программы")
Отредактировано (Фев. 25, 2012 12:44:09)
Офлайн