Вкладки в pyvcp. Автопереключение
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2857
- Откуда: Тюмень
- Контактная информация:
Вкладки в pyvcp. Автопереключение
Завел в панели управления две вкладки. Одна для управления частотником, вторая - для датчиков инструмента и центроискателя.
И, чтоб лишний раз не спрашивать - можно ли задавать для вкладок русские названия? У меня не вышло.
Было бы удобно, чтобы они автоматически переключались в зависимости от режима - ручной или автоматический. Это возможно?И, чтоб лишний раз не спрашивать - можно ли задавать для вкладок русские названия? У меня не вышло.
Чудес не бывает. Бывают фокусы.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
делал панели на Glade - там переключал вкладки из скрипта...
наверно и тут можно сделать
наверно и тут можно сделать
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
Да, судя по всему переключения нет и пинов не создается...
Надо дописать...
Надо дописать...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
кажись в Тк нет таких методов ,как gtk (для вкладок get ,set )
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
А вот это не оно:
pathName raise ?page?
Raise the page page, or return the raised page if page is omitted.
отсюда: http://tcllib.sourceforge.net/BWman/NoteBook.html#raise
ЗЫ ох уж этот Tk
pathName raise ?page?
Raise the page page, or return the raised page if page is omitted.
отсюда: http://tcllib.sourceforge.net/BWman/NoteBook.html#raise
ЗЫ ох уж этот Tk
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
В Tk нет ничего такого, что можно было-бы сделать клавой/мышом/итп, но нельзя было-бы сделать программно.nkp писал(а):кажись в Тк нет таких методов ,как gtk (для вкладок get ,set )
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
Так как все же для notbook, через raise?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
Покажите кусок исходников linuxcnc с этими вкладками (можно в личку), а то мне тут негде исходники развернуть.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
но все же (да простит меня тс за оффтоп)) - зачем pyvcp ,когда есть glade ?UAVpilot писал(а):В Tk нет ничего такого, что можно было-бы сделать клавой/мышом/итп, но нельзя было-бы сделать программно.
там шире возможности и они "на поверхности" ...
кроссплатформенность - так на емс больно не разгонишся в окошках...)))
UAVpilot писал(а):кусок исходников linuxcnc с этими вкладками
Код: Выделить всё
class pyvcp_tabs(bwidget.NoteBook):
def __init__(self, master, pycomp, cnf={}, **kw):
self.names = kw.pop("names", [])
self.idx = 0
self._require(master)
Widget.__init__(self, master, "NoteBook", cnf, kw)
def update(self, pycomp): pass
def add(self, container, child):
child.pack(side="top", fill="both", anchor="ne")
if self.idx == 1:
self.raise_page(self.names[0])
def getcontainer(self):
if len(self.names) < self.idx:
self.names.append("Tab-%d" % self.idx)
name = self.names[self.idx]
self.idx += 1
return self.insert("end", name, text=name)
Последний раз редактировалось nkp 21 ноя 2013, 15:17, всего редактировалось 2 раза.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
ссылку nkp давал: http://git.linuxcnc.org/gitweb?p=linuxc ... ac5d7#l739
длиннее шире кросплатформенность, чем у GTK ...
UAVpilot писал, что у Tk гораздоnkp писал(а):кроссплатформенность - так на емс больно не разгонишся в окошках...)))
- Алексс
- Почётный участник
- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
только эта поверхность выше уровня понимания "с разбегу". тем более если на pyvcp уже сделано и как-то работает...nkp писал(а):там шире возможности и они "на поверхности" ...
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
Да, через raise.Nick писал(а):Так как все же для notbook, через raise?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
Могу путаться в датах, но помнится linuxcnc/emc2 начиналось задолго до появления glade и gtk.nkp писал(а):но все же (да простит меня тс за оффтоп)) - зачем pyvcp ,когда есть glade ?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
Это да, gtk менее логично организовано.Алексс писал(а):только эта поверхность выше уровня понимания "с разбегу". тем более если на pyvcp уже сделано и как-то работает...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
Теперь осталось придумать, как организовать смену по обоим вариантам...
надо наверное сделать два пина, один (вывода)будет показывать raise
второй (ввода) при изменении будет делать reaise num
Кстати, как это в gladevcp сделано?
надо наверное сделать два пина, один (вывода)будет показывать raise
второй (ввода) при изменении будет делать reaise num
Кстати, как это в gladevcp сделано?
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
вот же твой код:Nick писал(а):Кстати, как это в gladevcp сделано?
Код: Выделить всё
def page_select(self,widget):
maxpage = self.widgets.notebook.get_n_pages()
page = self.widgets.notebook.get_current_page()
nextpage = page + 1
if nextpage == maxpage:
nextpage = 0
self.widgets.notebook.set_current_page(nextpage)
Код: Выделить всё
def change_mode(self, pin) :
for i in self.modes :
if self.halcomp[i] == True :
self.mode = self.modes[i]
self.widgets.notebook1.set_current_page(self.mode)
self.widgets.notebook2.set_current_page(self.mode)
self.notebook_set() # отображаем вкладку 0 в режимах 1,3,4,6
self.widgets.label9.set_text(str(self.lab.get(self.mode)))
self.change_page()
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
мой ... не узнаю .
В общем имхо можно вот так сделать, только то, что относится к Tk я не написал - ничего в это не понимаю :
В общем имхо можно вот так сделать, только то, что относится к Tk я не написал - ничего в это не понимаю :
Код: Выделить всё
class pyvcp_tabs(bwidget.NoteBook):
n = 0
def __init__(self, master, pycomp, cnf={}, haplin=None, **kw):
self.names = kw.pop("names", [])
self.idx = 0
self._require(master)
Widget.__init__(self, master, "NoteBook", cnf, kw)
if halpin == None :
halpin = "tabs."+str(pyvcp_tabs.n)
pyvcp_tabs.n += 1
self.current_pin = halpin+".current"
self.raise_pin = halpin+".raise"
pycomp.newpin(self.current_pin, HAL_S32, HAL_OUT)
pycomp.newpin(self.raise_pin, HAL_S32, HAL_IN)
self.raise_pin_value = 0
def update(self, pycomp):
newvalue = pycomp[self.raise_pin]
if newvalue != self.raise_pin_value:
# вот сюда надо добавить raise self.raise_pin_value
# может еще проверку на слишком большое число!
self.raise_pin_value = newvalue
pycomp[self.current_pin] = # сюда просто raise
def add(self, container, child):
child.pack(side="top", fill="both", anchor="ne")
if self.idx == 1:
self.raise_page(self.names[0])
def getcontainer(self):
if len(self.names) < self.idx:
self.names.append("Tab-%d" % self.idx)
name = self.names[self.idx]
self.idx += 1
return self.insert("end", name, text=name)
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2857
- Откуда: Тюмень
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
Если можно, подскажи, куда это втыкать
Чудес не бывает. Бывают фокусы.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
файл .../lib/python/pyvcp_widgets.py
вместо :
потом make из директории src
========
зы может ты пользуешь емс в системе - тогда не знаю как правильно сделать...
может скрипт питона просто можно изменить
да - скорей всего должно пройти ...
вместо :
Код: Выделить всё
class pyvcp_tabs(bwidget.NoteBook):
def __init__(self, master, pycomp, cnf={}, **kw):
self.names = kw.pop("names", [])
self.idx = 0
self._require(master)
Widget.__init__(self, master, "NoteBook", cnf, kw)
def update(self, pycomp): pass
def add(self, container, child):
child.pack(side="top", fill="both", anchor="ne")
if self.idx == 1:
self.raise_page(self.names[0])
def getcontainer(self):
if len(self.names) < self.idx:
self.names.append("Tab-%d" % self.idx)
name = self.names[self.idx]
self.idx += 1
return self.insert("end", name, text=name)
========
зы может ты пользуешь емс в системе - тогда не знаю как правильно сделать...
может скрипт питона просто можно изменить
да - скорей всего должно пройти ...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Вкладки в pyvcp. Автопереключение
Да, пройдетnkp писал(а):может скрипт питона просто можно изменить
да - скорей всего должно пройти ...