сегодня я пытался изучить Tkinter, следуя этому руководству, но в разделе "Кнопка выхода" я нашел некоторые проблемы... Я вставлю сюда код:
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
ZetCode Tkinter tutorial
This program creates a quit
button. When we press the button,
the application terminates.
author: Jan Bodnar
last modified: December 2010
website: www.zetcode.com
"""
from Tkinter import *
from ttk import *
class Example(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("Quit button")
self.style = Style()
self.style.theme_use("default")
self.pack(fill=BOTH, expand=1)
quitButton = Button(self, text="Quit",command=self.quit)
quitButton.place(x=50, y=50)
def main():
root = Tk()
root.geometry("250x150+300+300")
app = Example(root)
root.mainloop()
if __name__ == '__main__':
main()
Запуск выдает эту ошибку
File "/Users/mazzalex02/Desktop/provatk2.py", line 51, in <module>
main()
File "/Users/mazzalex02/Desktop/provatk2.py", line 46, in main
app = Example(root)
File "/Users/mazzalex02/Desktop/provatk2.py", line 23, in __init__
Frame.__init__(self, parent)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/ttk.py", line 738, in __init__
Widget.__init__(self, master, "ttk::frame", kw)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/ttk.py", line 554, in __init__
_load_tile(master)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/ttk.py", line 46, in _load_tile
master.tk.eval('package require tile') # TclError may be raised here
TclError: can't find package tile
Я действительно не знаю, что делать, так как я установил ActiveTcl (8.6.x)... Кажется, что ему нужен tile
, но я читал, что он старый и превзошел ttk...
РЕДАКТИРОВАТЬ: установил активный tcl 8.5.x, переустановил python 2.7, но ошибка осталась. Я нашел эту страницу и подумал, что смогу обойти ошибку, следуя справке идет с tk8.4.20 (drive.google.com/file/d/0B2pedtcO2MfOdkpsWFFlYXVUcVU/view?usp=sharing извините, я не могу добавить более двух гиперссылок с репутацией, которую я получил) привел меня к этой ошибке
/Users/mazzalex02/Downloads/tcltk/tk8.4.20/unix/../generic/tk.h:22:3: error: Tk 8.4 must be compiled with tcl.h from Tcl
8.4
# error Tk 8.4 must be compiled with tcl.h from Tcl 8.4
^
/Users/mazzalex02/Downloads/tcltk/tk8.4.20/unix/../generic/tk3d.c:1353:13: warning: assigning to 'Tcl_ObjType *'
(aka 'struct Tcl_ObjType *') from 'const Tcl_ObjType *' (aka 'const struct Tcl_ObjType *') discards qualifiers
[-Wincompatible-pointer-types-discards-qualifiers]
typePtr = objPtr->typePtr;
^ ~~~~~~~~~~~~~~~
1 warning and 1 error generated.
make[3]: *** [tk3d.o] Error 1
make[2]: *** [build-tk] Error 2
make[1]: *** [tk] Error 2
make: *** [develop] Error 2
print TkVersion
печатает8.4
, пока я думал, что установил 8.6.x... - person Ale   schedule 17.04.2015