Macのtkinter.ttkに問題があります。私はmacportsとpython3.1を使用しています。tkinter.ttkを使おうとすると、非常に古く見えるGUI要素が表示されます。
例:私はこれを取得しますこれ
の代わりに:
私が使用したコードは次のとおりです。
from tkinter import *
from tkinter import ttk
root = Tk()
button = ttk.Button(root, text="Hello World").grid()
root.mainloop()
この質問に答えるために必要な私のコンピューターからの情報を提供させていただきます。私は初心者のプログラマーなので、その情報の入手先を教えてください。
SnowLeopardがインストールされたMacbook5,2を持っています。どんな助けでもいただければ幸いです。
ありがとう、マーレン
質問の更新: schlenkがこのエラーを取得するためだけに提案したように 、 tk @ 8.5.9_0 + quartzをインストールし
ました:
TclMacOSXNotifierAddRunLoopMode: Tcl not built with CoreFoundation support Abort trap
https://trac.macports.org/ticket/22954のパッチでこのエラーを修正しました。私は手紙の指示に従いました(彼らはそうです):
$ cd /opt/local/var/macports/sources/rsync.macports.org/release/ports/lang/tcl
$ sudo patch < ~/Downloads/tcl.2.patch
$ sudo port install tcl
これにより、次のような新しいエラーが発生しました。
Traceback (most recent call last):
File "hello.py", line 5, in <module>
root = Tk()
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/tkinter/__init__.py", line 1632, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: Can't find a usable tk.tcl in the following directories:
/opt/local/lib/tcl8.5/tk8.5 /opt/local/lib/tcl8.5/tk8.5/Resources/Scripts /opt/local/lib/tk8.5 /opt/local/lib/tk8.5/Resources/Scripts /opt/local/Library/Frameworks/Python.framework/Versions/3.1/Resources/Python.app/Contents/lib/tk8.5 /opt/local/Library/Frameworks/Python.framework/Versions/3.1/Resources/Python.app/Contents/lib/tk8.5/Resources/Scripts /opt/local/Library/Frameworks/Python.framework/Versions/3.1/Resources/Python.app/lib/tk8.5 /opt/local/Library/Frameworks/Python.framework/Versions/3.1/Resources/Python.app/Contents/library
/opt/local/lib/tk8.5/tk.tcl: version conflict for package "Tk": have 8.5.7, need exactly 8.5.9
version conflict for package "Tk": have 8.5.7, need exactly 8.5.9
while executing
"package require -exact Tk 8.5.9"
(file "/opt/local/lib/tk8.5/tk.tcl" line 20)
invoked from within
"source /opt/local/lib/tk8.5/tk.tcl"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list source $file]"
This probably means that tk wasn't installed properly.