Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 18, 2017 13:59:34

74LS00
Зарегистрирован: 2016-08-04
Сообщения: 23
Репутация: +  1  -
Профиль   Отправить e-mail  

Быстрые кнопки меню

Вопрос не столько по самому языку, терминов не знаю и готовых приложений не видел, а то бы подсмотрел.
Почемуто нигде нет никакой информации в картинках, даже в pdf ниодной картинки. Кое что по другим языкам узнаётся, но этого элемента там тоже нет.

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

Я так понимаю мне нужно использовать тоже Frame с выравниванием к левому краю и запихнуть туда кнопки с картинками или есть чтото ещё?
Может есть готовые примеры или хотябы что искать.

Отредактировано 74LS00 (Янв. 18, 2017 14:02:08)

Офлайн

#2 Янв. 18, 2017 14:12:04

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2584
Репутация: +  60  -
Профиль   Отправить e-mail  

Быстрые кнопки меню

http://zetcode.com/gui/tkinter/menustoolbars/



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Янв. 18, 2017 19:32:25

74LS00
Зарегистрирован: 2016-08-04
Сообщения: 23
Репутация: +  1  -
Профиль   Отправить e-mail  

Быстрые кнопки меню

Этот вариант работает через 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 подойдёт.
В общем хотелось бы совместимости с другими осями

Отредактировано 74LS00 (Янв. 18, 2017 19:33:36)

Офлайн

#4 Янв. 18, 2017 20:39:11

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Быстрые кнопки меню

Pillow работает на всех осях…

Офлайн

#5 Янв. 19, 2017 05:23:37

74LS00
Зарегистрирован: 2016-08-04
Сообщения: 23
Репутация: +  1  -
Профиль   Отправить e-mail  

Быстрые кнопки меню

Pillow это форк PIL которого тоже нет в репах ?

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

Наверно поэтому автор проекта так и не смог заставить работать pil под маком и просто забил.
Также как и messagebox из дочернего окна в win7 64 который тупо скрыт и прога виснет.

Офлайн

#6 Янв. 19, 2017 07:54:50

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Быстрые кнопки меню

Так прибейте пиллоу к той версии, которая есть в зависимостях. Я, честно говоря, не пойму что и почему не так.
А .xbm не подхватывает “из коробки”?

Офлайн

#7 Янв. 20, 2017 11:52:35

74LS00
Зарегистрирован: 2016-08-04
Сообщения: 23
Репутация: +  1  -
Профиль   Отправить e-mail  

Быстрые кнопки меню

В таком варианте работает, кнопки стилизованы как обычные, но уж слишком выпуклые

         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”

Отредактировано 74LS00 (Янв. 20, 2017 11:53:46)

Офлайн

#8 Янв. 20, 2017 12:09:55

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Быстрые кнопки меню

А если попробовать

 #
newButton["relief"] = "RIDGE"

Офлайн

#9 Янв. 20, 2017 12:19:44

74LS00
Зарегистрирован: 2016-08-04
Сообщения: 23
Репутация: +  1  -
Профиль   Отправить e-mail  

Быстрые кнопки меню

чтото другое, но итог тотже

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, но её не решили

Офлайн

#10 Янв. 20, 2017 12:46:38

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Быстрые кнопки меню

Как у Вас называется модуль?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version