GladeVCP и PyVCP для начинающих

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Serg »

для второго
в axis прописываем путь к axis.tcl

Код: Выделить всё • Развернуть

nf.source_lib_tcl(root_window,"/home/nkp/git/linuxcnc/configs/ce_gtk/axis.tcl")
Не надо полный путь, просто "axis.tcl" или "./axis.tcl" - будет полностью переносимо. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

UAVpilot писал(а): будет полностью переносимо.
мне переносимость не нужна - если уж приходится править файл интерфейса - то это под конкретный станок
UAVpilot писал(а):Не надо полный путь, просто "axis.tcl" или "./axis.tcl"
ну и к тому же оба твои варианта не работают
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Serg »

nkp писал(а):мне переносимость не нужна - если уж приходится править файл интерфейса - то это под конкретный станок
В смысле не нужно, чтобы конфигурация работало будучи скопированной в другой каталог? Ну типа несколько разных вариантов в разных каталогах... :)
В общем пусть тут лежит, может кому-то кроме тебя полезно будет. ;)
nkp писал(а):ну и к тому же оба твои варианта не работают
Давно я не пользовался axis...
Оказывается автор забил на встроенный в tcl механизм подгрузки исходников (не знал?) и реализовал свой собственный с минимальным функционалом...
Тогда вот так:

Код: Выделить всё

root_window.tk.call("source", "axis.tcl")
:)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение aekhv »

Как можно в GladeVCP изменить цвет выделенного текста у HAL_SpinButton? По-умолчанию выделение бледно-серое, толком ничего не видно. Подозреваю надо добраться до какого-то атрибута через Python, но до какого? :thinking: Я в питоне начинающий, вот бы примерчик или пендель направляющий... :)
glade.png (3604 просмотра) <a class='original' href='./download/file.php?id=186133&sid=9101abca13e3eb044f21cd445bb696ce&mode=view' target=_blank>Загрузить оригинал (61.33 КБ)</a>
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Serg »

Нужно искать соотв. атрибут у самого виджета, если он есть, то он будет так или иначе доступен в редакторе glade.
Если нужно изменить цвет "насовсем", то делается это в самом редакторе glade, если в зависимости от каких-то событий, то в обработчике этих событий (через python).
Рекомендую изучить принципы и структуру GTK - без этого будет очень сложно и об этом не рассказать в паре постов на форуме.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение aekhv »

Serg писал(а): атрибут у самого виджета, если он есть, то он будет так или иначе доступен в редакторе glade.
В том-то и дело, ни у самого HAL_SpinButton, ни у родительских виджетов (вплоть до MainWindow) в редакторе Glade настроек цвета шрифта нет. Наверное применяются какие-то стандартные, но как до них добраться пока непонятно.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Serg »

Параметры шрифта скорее всего задаются отдельным объектом, а в виджете указывается ссылка на него.
Пока нет времени глянуть и уточнить.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение aekhv »

Кажется стало чуть-чуть понятнее, а именно - нужно ковыряться в стилях (css). Как минимум надо вызвать в питоне Gtk.CssProvider(), и уже на этом месте фэйл. :hehehe:

В питоновском скрипте, который стартует вместе с панелью Glade, делаю импорт:

Код: Выделить всё

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
При запуске LinuxCNC ругается:

Код: Выделить всё

module 'glade-test' skipped - import error: When using gi.repository you must not import static modules like "gobject". Please change all occurrences of "import gobject" to "from gi.repository import GObject". See: https://bugzilla.gnome.org/show_bug.cgi?id=709183
 
А если я в консоли набираю python2.7 и импортирую все те же самые модули ручками, ошибок нет... :thinking: Гуглим дальше.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Serg »

Помнится CSS появились только в gtk3, а в gtk2 было что-то вроде modify_fg.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение aekhv »

Serg писал(а): в gtk2 было что-то вроде modify_fg
Супер! Спасибо! Погуглил и всё стало понятно, пример кода прилагаю.

Код: Выделить всё

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import gtk
import linuxcnc

    def __init__(self, halcomp, builder, useropts):
        self.builder = builder
        spinbtn = self.builder.get_object('spinbutton1')

        # Цвет рамки и фона кнопок +/-
        spinbtn.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("black"))
        # Цвет фона не активных кнопок +/-
        spinbtn.modify_bg(gtk.STATE_INSENSITIVE, gtk.gdk.color_parse("black"))

        # Цвет стрелок кнопок +/-
        spinbtn.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#00ff00"))
        # Цвет не активных стрелок кнопок +/-
        spinbtn.modify_fg(gtk.STATE_INSENSITIVE, gtk.gdk.color_parse("red"))

        # Цвет фона поля ввода
        #spinbtn.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse("red"))
        # Цвет фона выделенного текста
        spinbtn.modify_base(gtk.STATE_ACTIVE, gtk.gdk.color_parse("blue"))
        # Цвет фона не активного поля ввода
        #spinbtn.modify_base(gtk.STATE_INSENSITIVE, gtk.gdk.color_parse("blue"))

        # Цвет текста
        #spinbtn.modify_text(gtk.STATE_NORMAL, gtk.gdk.color_parse("red"))
        # Цвет выделенного текста
        spinbtn.modify_text(gtk.STATE_ACTIVE, gtk.gdk.color_parse("white"))
        # Цвет не активного текста
        #spinbtn.modify_text(gtk.STATE_INSENSITIVE, gtk.gdk.color_parse("blue"))

def get_handlers(halcomp, builder, useropts):
    return [HandlerClass(halcomp, builder, useropts)]
glade-001.png (3510 просмотров) <a class='original' href='./download/file.php?id=186192&sid=9101abca13e3eb044f21cd445bb696ce&mode=view' target=_blank>Загрузить оригинал (54.64 КБ)</a>
glade-002.png (3510 просмотров) <a class='original' href='./download/file.php?id=186193&sid=9101abca13e3eb044f21cd445bb696ce&mode=view' target=_blank>Загрузить оригинал (67.93 КБ)</a>
daiman444
Мастер
Сообщения: 304
Зарегистрирован: 18 май 2019, 15:24
Репутация: 31
Настоящее имя: Дмитрий
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение daiman444 »

приветсвтую коллеги. не могу разобраться как сделать несколько вкладок дл панели gladevcp.
например как тут viewtopic.php?f=15&t=3991 в первом посте у ТС вкладки "spindle" и "sensors"

похожу что тут http://linuxcnc.org/docs/2.7/html/gui/g ... :hal-table описывается что то похожее на то что нужно, но даже с пеерводчиком понять смысла не могу.
Американский форум: задал вопрос — получил ответ.
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
alex_sar
Мастер
Сообщения: 1672
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 278
Настоящее имя: Алексей
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение alex_sar »

так оно же само получается если две панели добавить
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Serg »

Или GtkNotebook. Тогда можно делать один обработчик событий на все вкладки.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
daiman444
Мастер
Сообщения: 304
Зарегистрирован: 18 май 2019, 15:24
Репутация: 31
Настоящее имя: Дмитрий
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение daiman444 »

alex_sar писал(а): так оно же само получается если две панели добавить
панель добавлена PyVCP.
Serg писал(а): Или GtkNotebook
это похоже на то что нужно. спасибо за наводку, буду разбираться
Американский форум: задал вопрос — получил ответ.
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
alex_sar
Мастер
Сообщения: 1672
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 278
Настоящее имя: Алексей
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение alex_sar »

daiman444 писал(а): панель добавлена PyVCP.
можно и 2 и 3 панели загрузить независимо.
главное дать им разные имена, чтобы не пересекались.
тогда будет выглядеть как на вашей картинке.

если всё в одном хотите, то да - GtkNotebook
daiman444
Мастер
Сообщения: 304
Зарегистрирован: 18 май 2019, 15:24
Репутация: 31
Настоящее имя: Дмитрий
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение daiman444 »

alex_sar писал(а): можно и 2 и 3 панели загрузить независимо.
как это в ini прописать?

вот юда дописываю ничего не происходит:

#добавление панели THCUD как панель PyVCP:
GLADEVCP= -u ./THC_TAB.py ./THC_TAB.glade ./THC_TAB1.glade
Американский форум: задал вопрос — получил ответ.
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
alex_sar
Мастер
Сообщения: 1672
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 278
Настоящее имя: Алексей
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение alex_sar »

Вы вот так вот делаете
http://linuxcnc.org/docs/html/gui/glade ... like_pyvcp
так наверное две не получится грузить

А вот так можно
http://linuxcnc.org/docs/html/gui/glade ... beding-tab

просто повторить EMBED_TAB_NAME и EMBED_TAB_COMMAND

можно наверное по аналогии попробовать GLADEVCP несколько раз написать. не пробовал
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Serg »

Обязательно нужно панелям давать разные имена, либо при их создании, либо с помощью соотв. опций loadusr.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
daiman444
Мастер
Сообщения: 304
Зарегистрирован: 18 май 2019, 15:24
Репутация: 31
Настоящее имя: Дмитрий
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение daiman444 »

alex_sar писал(а): 23 сен 2020, 15:24 Вы вот так вот делаете
http://linuxcnc.org/docs/html/gui/glade ... like_pyvcp
так наверное две не получится грузить
Да так делаю.
alex_sar писал(а): 23 сен 2020, 15:24 А вот так можно
http://linuxcnc.org/docs/html/gui/glade ... beding-tab

просто повторить EMBED_TAB_NAME и EMBED_TAB_COMMAND

можно наверное по аналогии попробовать GLADEVCP несколько раз написать. не пробовал
Так не подходит. Этот вариант для gmocappy приятное решение, в axis неудобно.

Хотелось бы вот так:
IMG_20200923_185130.jpg (3381 просмотр) <a class='original' href='./download/file.php?id=186389&sid=9101abca13e3eb044f21cd445bb696ce&mode=view' target=_blank>Загрузить оригинал (88.27 КБ)</a>
Или хотя бы так:
IMG_20200923_185703.jpg (3381 просмотр) <a class='original' href='./download/file.php?id=186390&sid=9101abca13e3eb044f21cd445bb696ce&mode=view' target=_blank>Загрузить оригинал (188.25 КБ)</a>

Gtknotebook очень похоже на то что нужно, но я не могу пока понять его в glade можно добавить или вручную надо писать?
Американский форум: задал вопрос — получил ответ.
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Serg »

В glade:
Снимок экрана от 2020-09-23 16-15-12.png (3376 просмотров) <a class='original' href='./download/file.php?id=186391&sid=9101abca13e3eb044f21cd445bb696ce&mode=view' target=_blank>Загрузить оригинал (169.43 КБ)</a>
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

Вернуться в «LinuxCNC»