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

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

Добавлено: 02 апр 2015, 23:36
alexandr1988
Мне это нужно, чтобы было удобно с помощью сенсорного монитора управлять, без мыши.

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

Добавлено: 03 апр 2015, 10:13
Nick
Обычно это делается настройками темы. Но повлияет на все виджеты...
Как вариант сделать две кнопочки для + и -.
Кстати, скроллинг на экране двойным нажатием не работает?

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

Добавлено: 03 апр 2015, 10:28
verser
alexandr1988 писал(а):Мне это нужно, чтобы было удобно с помощью сенсорного монитора управлять, без мыши.
Поставить готовый интерфейс для сенсорного монитора не рассматривали?

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

Добавлено: 03 апр 2015, 16:36
Ворон226
Или уйти от AXIS-а в MyGUI

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

Добавлено: 03 апр 2015, 16:39
alexandr1988
Nick писал(а):Обычно это делается настройками темы. Но повлияет на все виджеты...
Как вариант сделать две кнопочки для + и -.
Кстати, скроллинг на экране двойным нажатием не работает?
Скроллинг не работает. Можете коротко описать, какие сделать эти кнопки? И еще вопрос, почему не работают кнопки Открыть и Обновить (у меня называется применить)?
файлы ui и hal во вложении.
verser писал(а):Поставить готовый интерфейс для сенсорного монитора не рассматривали?
Я смотрел на gmocappy, для моих целей axis лучше. У меня не металлорежущее оборудование, а убрать кнопки, связанные с охлаждением и прочими вещами, как я понимаю, нельзя.

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

Добавлено: 03 апр 2015, 16:59
Nick
А что он будет регулировать?

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

Добавлено: 03 апр 2015, 17:08
alexandr1988
Nick писал(а):А что он будет регулировать?
на download/file.php?id=34899&mode=view&mt=1 этой машине с помощью spinbutton'ov регулируется размер стежка и коррекция размеров рисунка.

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

Добавлено: 03 апр 2015, 17:25
Nick
Много таких параметров будет?
Ввод только с кнопок на экране?


О, что нашел. Если поменять размер шрифта, то меняется размер кнопок -
надо найти указатель на spinbutton, и потом:

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

f = pango.FontDescription("sans bold 52")
spinbutton1.modify_font(f)

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

Добавлено: 03 апр 2015, 17:52
alexandr1988
таких параметров всего три. ввод только с кнопок, в крайнем случае мышью.
Думаю, это то, что нужно, попробую и отпишусь.
А насчет кнопки Открыть есть какие-то мысли?

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

Добавлено: 03 апр 2015, 18:12
Nick
У меня сейчас нет gladevcp под рукой, может там надо какие-то действия донастроить?

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

Добавлено: 03 апр 2015, 18:50
alexandr1988
Действие выбираю emc_action_open. Скриншот настроек в аттаче. Непонятно значение поля fixed file name, может проблема в этом?
Аналогично не работает emc_action_reload. а вот остальные действия, связанные с ЕМС, работают.
upd
G-код содержит переменные, думаю, с этим и связан этот косяк.

надо найти указатель на spinbutton, и потом:

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

 f = pango.FontDescription("sans bold 52")
    spinbutton1.modify_font(f)
это где нужно прописывть? в .ui файле ничего подобного нет.

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

Добавлено: 05 апр 2015, 13:13
alexandr1988
Суть проблемы понял, нужно это сделать с помощью axis-remote --reload и open. Однако сам механизм, как привязать это к кнопке, не понял, в питоне я не силен.

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

Добавлено: 06 апр 2015, 13:31
Nick
alexandr1988 писал(а):это где нужно прописывть? в .ui файле ничего подобного нет.
Как у тебя с английским?
Вот тут общий принцип, как все стартует:
http://www.linuxcnc.org/docs/html/gui/g ... up_process

Что нам надо, надо написать скрипт, который подправит интерфейс и если надо будет выполнять нужные нам действия.
Вот тут написано про то, как можно программировать нужные нам вещи:
http://www.linuxcnc.org/docs/html/gui/g ... rogramming

Итак, создаем файл, name.py и в нем пишем (см ниже):
Код скрипта я взял из примера gladevcp, в нем добавил только это:

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

        spin = self.builder.get_object('spin')
        f = pango.FontDescription("sans bold 52")
        spin.modify_font(f)
Вот сюда название (id) своего spinbutton get_object('spin')

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

import hal
import glib
import time
import pango


class HandlerClass:
    '''
    class with gladevcp callback handlers
    '''


    def __init__(self, halcomp,builder,useropts):
        '''
        Handler classes are instantiated in the following state:
        - the widget tree is created, but not yet realized (no toplevel window.show() executed yet)
        - the halcomp HAL component is set up and the widhget tree's HAL pins have already been added to it
        - it is safe to add more hal pins because halcomp.ready() has not yet been called at this point.

        after all handlers are instantiated in command line and get_handlers() order, callbacks will be
        connected with connect_signals()/signal_autoconnect()

        The builder may be either of libglade or GtkBuilder type depending on the glade file format.
        '''

        spin = self.builder.get_object('spin')
        f = pango.FontDescription("sans bold 52")
        spin.modify_font(f)


def get_handlers(halcomp,builder,useropts):
    '''
    this function is called by gladevcp at import time (when this module is passed with '-u <modname>.py')

    return a list of object instances whose methods should be connected as callback handlers
    any method whose name does not begin with an underscore ('_') is a  callback candidate

    the 'get_handlers' name is reserved - gladevcp expects it, so do not change
    '''
    return [HandlerClass(halcomp,builder,useropts)]
потом при вызове gladevcp добавляем:
-u name.py
как тут:

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

EMBED_TAB_NAME=GladeVCP demo
EMBED_TAB_COMMAND=halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} -u ./gladevcp/hitcounter.py ./gladevcp/manual-example.ui

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

Добавлено: 17 апр 2015, 21:09
alexandr1988
У меня этот вариант не работает. LinuxCNC запускается с этим скриптом без ошибок, однако шрифт не изменяется. Имена spinbutton'ов пробовал разные (у меня их три).
Файл прилагаю. Прописываю его в ini как -u 2.py 1.ui

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

import hal
import glib
import time
import pango

class HandlerClass:
 
        def __init__(self, halcomp,builder,useropts):
		spin = self.builder.get_object('spin1')
		f=pango.FontDescription("sans bold 52")
		spin.modify_font(f)

def get_handlers(halcomp,builder,useropts):
        return [HandlerClass(halcomp,builder,useropts)]

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

Добавлено: 20 апр 2015, 14:46
Nick
alexandr1988 писал(а):        def __init__(self, halcomp,builder,useropts):
Вот в этой строке есть лишние пробелы вначале.
В питоне важено количество пробелов или размер отступа в начале строки!

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

Добавлено: 21 апр 2015, 17:43
alexandr1988
Сделал все отступы, как советуют в уроках по Python (каждый уровень отступа - 4 пробела). Однако, это ничего не изменило. Lcnc запускается, изменений нет.

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

import hal
import glib
import time
import pango

class HandlerClass:
 
    def __init__(self, halcomp,builder,useropts):
        spin = self.builder.get_object("spin1")
        f=pango.FontDescription("sans bold 52")
        spin.modify_font(f)

def get_handlers(halcomp,builder,useropts):
    return [HandlerClass(halcomp,builder,useropts)]

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

Добавлено: 21 апр 2015, 18:20
Nick
Структура опять потерялась, должно быть:

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

class
  def function 
  def function

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

Добавлено: 21 апр 2015, 18:22
nkp
Nick писал(а):Структура опять потерялась, должно быть:

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

class
  def function 
  def function
насчет def get_handlers
http://www.linuxcnc.org/docs/devel/html ... mmatically

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

Добавлено: 21 апр 2015, 18:34
Nick
тогда правильно :)....
Может имя кнопки не то?

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

Добавлено: 21 апр 2015, 18:59
alexandr1988
У меня их там три: spin, spin1 и spin2. Естественно, пробовал разные и ни одна не сработала.