Найти - Пользователи
Полная версия: Быстрые кнопки меню
Начало » GUI » Быстрые кнопки меню
1 2
74LS00
Вопрос не столько по самому языку, терминов не знаю и готовых приложений не видел, а то бы подсмотрел.
Почемуто нигде нет никакой информации в картинках, даже в pdf ниодной картинки. Кое что по другим языкам узнаётся, но этого элемента там тоже нет.

Нужно приделать к программе подобное
В коде видно Tkinter Menu и далее несколько Frame.

Я так понимаю мне нужно использовать тоже Frame с выравниванием к левому краю и запихнуть туда кнопки с картинками или есть чтото ещё?
Может есть готовые примеры или хотябы что искать.
ZerG
http://zetcode.com/gui/tkinter/menustoolbars/
74LS00
Этот вариант работает через PIL , хорошо что в портативном инсталяторе он есть. Нагуглил сайт с 2,6 который не устанавливается. Хотя вродебы достаточно всего 2 файла.

Не понял зачем parent , пока получилось так :
        from PIL import Image, ImageTk
        toolbar = Frame(self.root)
		
        imageopen = self.get_pkg_path('icons/keyboard.ico')
        self.img = Image.open(imageopen)
        eimg = ImageTk.PhotoImage(self.img)		
		
        openButton = Button(toolbar, image=eimg,
            command=self.openfile)
        openButton.image = eimg
        openButton.pack(side=LEFT, padx=2, pady=2)		
        toolbar.pack(side=TOP, fill=X)

Думал есть решение из коробки, сама прога без доп библиотек работает, думаю может iconbitmap подойдёт.
В общем хотелось бы совместимости с другими осями

4kpt_IV
Pillow работает на всех осях…
74LS00
Pillow это форк PIL которого тоже нет в репах ?

Очередной раз в линуксе упираюсь в нерешаемую проблему. PIL не собирается без libjpeg62 которая и так стоит.
Линукс как и раньше, в репах почти никогда нет нужного, а jpeg всё ещё не поддерживается, но зачемто требуется для сборки чего угодно где он ненужен.
Установка из найденных deb , на этом месте можно закольцевать. Требует пакет который установлен именно этой версии.

Наверно поэтому автор проекта так и не смог заставить работать pil под маком и просто забил.
Также как и messagebox из дочернего окна в win7 64 который тупо скрыт и прога виснет.
4kpt_IV
Так прибейте пиллоу к той версии, которая есть в зависимостях. Я, честно говоря, не пойму что и почему не так.
А .xbm не подхватывает “из коробки”?
74LS00
В таком варианте работает, кнопки стилизованы как обычные, но уж слишком выпуклые
         newButton = Button(toolbar, image=eimgnew, command=self.newfile)
Пытаюсь добавить стиль как написано тут, разные и в разные места
         newButton = Button(toolbar, image=eimgnew, relief=RIDGE, command=self.newfile)
выдаёт ошибку
File “G:\home\Documents\Projects\EAGLE\Keyboard\firmware\GameKB_EasyAVR\keymapper\easykey
map\gui.py”, line 300, in creategui
newButton = Button(toolbar, image=eimgnew, relief=RIDGE, command=self.newfile)
File “C:\Python27\lib\lib-tk\ttk.py”, line 610, in __init__
Widget.__init__(self, master, “ttk::button”, kw)
File “C:\Python27\lib\lib-tk\ttk.py”, line 555, in __init__
Tkinter.Widget.__init__(self, master, widgetname, kw=kw)
File “C:\Python27\lib\lib-tk\Tkinter.py”, line 2090, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: unknown option “-relief”
4kpt_IV
А если попробовать
 #
newButton["relief"] = "RIDGE"
74LS00
чтото другое, но итог тотже
File “G:\home\Documents\Projects\EAGLE\Keyboard\firmware\GameKB_EasyAVR\keymapper\easykey
map\gui.py”, line 301, in creategui
newButton = “RIDGE”
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))
_tkinter.TclError: unknown option “-relief”

В импорте такое, может тут что не так
 try:
    from Tkinter import *
    from ttk import *
    import tkFileDialog as filedialog
    import tkSimpleDialog as simpledialog
    import tkMessageBox as messagebox
except ImportError:
    from tkinter import *
    from tkinter.ttk import *
    from tkinter import filedialog
    from tkinter import simpledialog
    from tkinter import messagebox

Подобная проблема была с relief, но её не решили
4kpt_IV
Как у Вас называется модуль?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB