gscreen

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

ошибка что то похоже на внесенные автором изменени
а может уже твои.... :)
Выделение(020).png (2113 просмотров) <a class='original' href='./download/file.php?id=7790&mode=view' target=_blank>Загрузить оригинал (87.32 КБ)</a>
сейчас оригинальный файл попробую
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Не, вроде как в 3.
У меня тоже он есть в системе, просто я не пихал gscreen в /usr/bin или куда он там пихается, а просто засунул все в 1 директорию.

Я вот думаю может переписать код в таком ключе, чтобы убрать все лишние show и hide для разных компонентов, а сделать 1 функцию update_state с параметром state, который будет равен всем возможным режимам работы. А состояние кнопок в каждом отдельном режиме описать словарем от текущего режима...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Не, это не мое :) я audio не трогал :)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

Nick писал(а):Я вот думаю может переписать код
мы тестировать за тобой не успеваем :)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

сейчас поставил оригинал gscreen.py который ты брал за основу - так у меня уже он несовместим
теперь у меня 2 пути - либо она ведет меня к прокурору...... что то не то :hehehe:
установить самую свежую версию
либо искать изменения
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Наткнулся на функцию которая задает действия вертикальных и горизонтальных кнопок:

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

    def on_hbutton_clicked(self,widget,mode,number):
            if mode == 0:
                if number == 0: self.toggle_ignore_limits()
                elif number == 2: self.home_all()
                elif number == 3: self.home_selected()
                elif number == 4: self.unhome_all()
                elif number == 5: self.dro_toggle()
                else: print "hbutton %d_%d clicked but no function"% (mode,number)
            elif mode == 1:
                if number == 0: self.jog_mode()
                elif number == 1: self.origin_system()
                elif number == 2: self.toggle_mist()
                elif number == 3: self.toggle_flood()
                elif number == 4: self.reload_tooltable()
                elif number == 5: self.dro_toggle()
                else: print "hbutton %d_%d clicked but no function"% (mode,number)
            elif mode == 3:
                if number == 1: self.toggle_block_delete()
                elif number == 2: self.toggle_optional_stop()
                elif number == 7: self.next_tab()
                else: print "hbutton %d_%d clicked but no function"% (mode,number)
            elif mode == 4:
                self.toggle_overrides(widget,mode,number)
            elif mode == 5:
                if number == 1:pass
                elif number == 2:self.toggle_view()
                elif number == 3:self.clear_plot()
                else: self.toggle_graphic_overrides(widget,mode,number)
            else: print "hbutton %d_%d clicked but no function"% (mode,number)
Получается, что все действия кнопок задаются в зависимости от того, где они расположены и вне зависимости от того, что на них написано :think: .

Если в отпуск поеду на наземном транспорте, будет пару дней - попробую все с начала переписать....
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: gscreen

Сообщение Lexxa »

ихмо бред, что ф-ция кнопки зависит от местоположения. надо привязывать к названию.
Я начал врубаться в питон потихоньку.
На самом деле достаточно если взять за основу вот этот http://cnc-club.ru/forum/download/file.php?id=7764 gscreen и написать к нему код который
а) меняет текст к кнопкам
б) скрывает лишние элементы
в) показывает координаты
Этого будет уже достаточно для тестирования и понимания какие функции на кнопки завязывать.
мне кажется, что ковырять чужой код это большой гемор, проще написать свой.
Последний раз редактировалось Lexxa 29 авг 2012, 18:55, всего редактировалось 1 раз.
:bender:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

Lexxa писал(а):вот этот () gscreen и
поясни - в какой - "этот" ??
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: gscreen

Сообщение Lexxa »

ща поправлю, забыл вставить

upd: обновил
:bender:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

по поводу переделки чужого кода - это не страшно (я на этом только и учусь)
главное понимать -что код делает и зачем ты его меняешь
но это так............
-------------------------
а по поводу твоего экрана - тут уже немного концепцию меняем
ну и что - пусть оба варианта развиваются
надо послушать - какие преимущества в привязке не к месту а к названию
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Преимущество одно, от перемены места назначение кнопки не изменится, и самое главное, кнопка будет делать именно то, что на ней написано!

Я вообще склоняюсь к тому, чтобы обзывать кнопки чуть ли не пинами и писать все это прямо в label кнопки, а потом при запуске программы переписывать все названия в соответствии со словарем.

Тогда будет однозначное соответствие - название кнопки <=> ее функция.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: gscreen

Сообщение Lexxa »

nkp писал(а):надо послушать - какие преимущества в привязке не к месту а к названию
путаницы с названием-функция не будет, что прямоо влияет на безопасность.
какова новая концепция?
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: gscreen

Сообщение Lexxa »

Nick писал(а):Я вообще склоняюсь к тому, чтобы обзывать кнопки чуть ли не пинами и писать все это прямо в label кнопки, а потом при запуске программы переписывать все названия в соответствии со словарем.
+100500
Я про это уже раз пять писал,
Ник, с пинами идея суперская
:bender:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

так -ну уже запустился...
видны по две вкладки
Выделение(022).png (2094 просмотра) <a class='original' href='./download/file.php?id=7792&mode=view' target=_blank>Загрузить оригинал (91.77 КБ)</a>
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

скрипт не отрабатывает - пинов в хал нет
но и на эту строчку не ругается

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

import hwbuttons
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

А строчка hwbuttons = HWButtons( ... есть?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

ну да
я diff- ом все изменения внес
я запускаю linuxcnc поставленный из исходников
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

посмотри вот здесь:

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

        self.hwbuttons = hwbuttons.HWButtons(self.halcomp,self.xml, "")	
        self.hwbuttons.hmodes = {_MAN:0, _MDI: 1, _AUTO:2, 3:3,4:4,5:5, "mode-none":6}
        self.hwbuttons.hmodes = {_MAN:0, _MDI: 1, _AUTO:2, 3:3,4:4,5:5, "mode-none":6}
наверно vmodes
и здесь глянь:

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

		num = 0
		for i in self.vbuttons.get_children() :
			num = max(num,len(i.get_children()))
		self.vbuttons_num = num

		num = 0
		for i in self.hbuttons.get_children() :
			num = max(num,len(i.get_children()))
		self.hbuttons_num = num
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

nkp писал(а):наверно vmodes
Точно!
nkp писал(а):и здесь глянь:
А тут чего?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

то же (в исходники глянь)
Ответить

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