Страница 49 из 53

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

Добавлено: 20 мар 2020, 22:41
Serg
для второго
в axis прописываем путь к axis.tcl

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

nf.source_lib_tcl(root_window,"/home/nkp/git/linuxcnc/configs/ce_gtk/axis.tcl")
Не надо полный путь, просто "axis.tcl" или "./axis.tcl" - будет полностью переносимо. :)

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

Добавлено: 20 мар 2020, 22:58
nkp
UAVpilot писал(а): будет полностью переносимо.
мне переносимость не нужна - если уж приходится править файл интерфейса - то это под конкретный станок
UAVpilot писал(а):Не надо полный путь, просто "axis.tcl" или "./axis.tcl"
ну и к тому же оба твои варианта не работают

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

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

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

root_window.tk.call("source", "axis.tcl")
:)

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

Добавлено: 18 сен 2020, 07:05
aekhv
Как можно в GladeVCP изменить цвет выделенного текста у HAL_SpinButton? По-умолчанию выделение бледно-серое, толком ничего не видно. Подозреваю надо добраться до какого-то атрибута через Python, но до какого? :thinking: Я в питоне начинающий, вот бы примерчик или пендель направляющий... :)
glade.png (3868 просмотров) <a class='original' href='./download/file.php?id=186133&sid=09b0ddcdf0f438d5a10ad331401e2288&mode=view' target=_blank>Загрузить оригинал (61.33 КБ)</a>

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

Добавлено: 18 сен 2020, 12:20
Serg
Нужно искать соотв. атрибут у самого виджета, если он есть, то он будет так или иначе доступен в редакторе glade.
Если нужно изменить цвет "насовсем", то делается это в самом редакторе glade, если в зависимости от каких-то событий, то в обработчике этих событий (через python).
Рекомендую изучить принципы и структуру GTK - без этого будет очень сложно и об этом не рассказать в паре постов на форуме.

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

Добавлено: 18 сен 2020, 13:21
aekhv
Serg писал(а): атрибут у самого виджета, если он есть, то он будет так или иначе доступен в редакторе glade.
В том-то и дело, ни у самого HAL_SpinButton, ни у родительских виджетов (вплоть до MainWindow) в редакторе Glade настроек цвета шрифта нет. Наверное применяются какие-то стандартные, но как до них добраться пока непонятно.

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

Добавлено: 18 сен 2020, 13:57
Serg
Параметры шрифта скорее всего задаются отдельным объектом, а в виджете указывается ссылка на него.
Пока нет времени глянуть и уточнить.

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

Добавлено: 19 сен 2020, 15:52
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: Гуглим дальше.

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

Добавлено: 20 сен 2020, 00:29
Serg
Помнится CSS появились только в gtk3, а в gtk2 было что-то вроде modify_fg.

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

Добавлено: 20 сен 2020, 06:24
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 (3774 просмотра) <a class='original' href='./download/file.php?id=186192&sid=09b0ddcdf0f438d5a10ad331401e2288&mode=view' target=_blank>Загрузить оригинал (54.64 КБ)</a>
glade-002.png (3774 просмотра) <a class='original' href='./download/file.php?id=186193&sid=09b0ddcdf0f438d5a10ad331401e2288&mode=view' target=_blank>Загрузить оригинал (67.93 КБ)</a>

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

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

похожу что тут http://linuxcnc.org/docs/2.7/html/gui/g ... :hal-table описывается что то похожее на то что нужно, но даже с пеерводчиком понять смысла не могу.

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

Добавлено: 21 сен 2020, 20:56
alex_sar
так оно же само получается если две панели добавить

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

Добавлено: 21 сен 2020, 23:07
Serg
Или GtkNotebook. Тогда можно делать один обработчик событий на все вкладки.

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

Добавлено: 23 сен 2020, 10:30
daiman444
alex_sar писал(а): так оно же само получается если две панели добавить
панель добавлена PyVCP.
Serg писал(а): Или GtkNotebook
это похоже на то что нужно. спасибо за наводку, буду разбираться

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

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

если всё в одном хотите, то да - GtkNotebook

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

Добавлено: 23 сен 2020, 13:51
daiman444
alex_sar писал(а): можно и 2 и 3 панели загрузить независимо.
как это в ini прописать?

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

#добавление панели THCUD как панель PyVCP:
GLADEVCP= -u ./THC_TAB.py ./THC_TAB.glade ./THC_TAB1.glade

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

Добавлено: 23 сен 2020, 15:24
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 несколько раз написать. не пробовал

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

Добавлено: 23 сен 2020, 15:28
Serg
Обязательно нужно панелям давать разные имена, либо при их создании, либо с помощью соотв. опций loadusr.

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

Добавлено: 23 сен 2020, 16:00
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 (3645 просмотров) <a class='original' href='./download/file.php?id=186389&sid=09b0ddcdf0f438d5a10ad331401e2288&mode=view' target=_blank>Загрузить оригинал (88.27 КБ)</a>
Или хотя бы так:
IMG_20200923_185703.jpg (3645 просмотров) <a class='original' href='./download/file.php?id=186390&sid=09b0ddcdf0f438d5a10ad331401e2288&mode=view' target=_blank>Загрузить оригинал (188.25 КБ)</a>

Gtknotebook очень похоже на то что нужно, но я не могу пока понять его в glade можно добавить или вручную надо писать?

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

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