Форум сайта python.su
Прога не моя, я только пытаюсь добавить чего нет.
Вот с этим заработало
from Tkinter import Button, LEFT, TOP, X, FLAT, RAISED
try: from Tkinter import * except ImportError: from tkinter import *
from Tkinter import Button
Error: Traceback (most recent call last):Я так понимаю прога написана под ttk который не поддерживает relief , а когда я ему тыкаю tkinter он начинает её понимать, но в нём нет style.
self.activekey.highlight()
File “G:\home\Documents\Projects\EAGLE\Keyboard\firmware\GameKB_EasyAVR\keymapper\easykeymap\gui.py”, line 1462, in highlight
self.btn = “Gold.TButton”
File “C:\Python27\lib\lib-tk\Tkinter.py”, line 1333, in __setitem__
self.configure({key: value})
File “C:\Python27\lib\lib-tk\Tkinter.py”, line 1326, in configure
return self._configure('configure', cnf, kw)
File “C:\Python27\lib\lib-tk\Tkinter.py”, line 1317, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
TclError: unknown option “-style”
Отредактировано 74LS00 (Янв. 21, 2017 04:46:28)
Офлайн
Ааа. Понял. Вообще за * я бил-бы по-рукам.
В ttk-евском Style есть собственный способ задачи рельефа. Могу кинуть документацию.
Офлайн
Чтото путаное попалось. Но хотелось бы подробнее.
Как потом это прикрутить к кнопке не понял, как стиль для Button оно не работает,
просто вписал в панель
toolbar = Frame(self.root, borderwidth="1", relief=GROOVE) ttkstyle = ttk.Style() ttkstyle.configure("TButton", relief=[('disabled', 'flat'),('selected', 'sunken'),('pressed', 'sunken'),('active', 'raised'),('!active', 'raised')], background="#ccc") eimgnew = ImageTk.PhotoImage(Image.open(self.get_pkg_path('icons/toolbar/document-new.png'))) newButton = Button(toolbar, image=eimgnew, command=self.newfile) newButton.image = eimgnew newButton.pack(side=LEFT, padx=2, pady=2)
import Tkinter as tk from Tkinter import ttk import tkinter.ttk
NameError: global name ‘ttk’ is not defined
Отредактировано 74LS00 (Янв. 21, 2017 11:31:06)
Офлайн
74LS00А его нет в стандартной поставке ткинтера, надо отдельно устанавливать
global name ‘ttk’ is not defined
Офлайн
Нашёл пару кнопок.
В первом случае вариант как у меня. На кнопках стиль системный.
На relief не ругается, но он не работает и в линуксе тоже.
Второй вариант уже на relief реагирует, хотя в линуксе стилизация одинаковая.
От него и плясал, хотя по началу связался с первым и он всё также ругался.
Добавил в импорт то что в этой кнопке на гите к тому что там было, получилось нечто
try: from Tkinter import * from ttk import * import tkFileDialog as filedialog import tkSimpleDialog as simpledialog import tkMessageBox as messagebox import Tkinter as tk import ttk except ImportError: from tkinter import * from tkinter.ttk import * from tkinter import filedialog from tkinter import simpledialog from tkinter import messagebox import tkinter as tk import tkinter.ttk as ttk
newButton = tk.Button(toolbar, image=eimgnew, relief=FLAT, command=self.newfile)
Отредактировано 74LS00 (Янв. 21, 2017 13:44:25)
Офлайн
Потому, что Вы его импортировали. А по PEP константы принято называть заглавными буквами.
Офлайн