Qtscreen використовує QtVCP віджети для інтеграції з LinuxCNC.
Віджет — це загальна назва для об’єктів інтерфейсу, таких як кнопки та мітки в PyQt.
Ви можете вільно використовувати будь-які доступні віджети за замовчуванням у редакторі Qt Designer.
Також існують спеціальні віджети, створені для LinuxCNC, які спрощують інтеграцію. Вони розділені на дві частини, розташовані у правій частині редактора:
-
Один призначений для віджетів лише HAL.
-
Інший призначений для віджетів керування CNC.
Ви можете вільно змішувати їх будь-яким чином на своїй панелі.
|
Note
|
Цей опис властивостей віджетів може легко застаріти через подальший розвиток та брак людей, які б писали документацію (хороший спосіб віддячити проекту). Остаточні описи можна знайти в source code. |
1. Віджети лише для HAL
Ці віджети зазвичай мають HAL-піни та не реагують на контролер машини.
1.1. CheckBox Віджет
Цей віджет дозволяє користувачеві встановити прапорець, щоб встановити значення HAL pin у значення «true» або «false».
Він базується на QCheckButton PyQt.
1.2. DetachTabWidget - Віджет контейнера зі знімними користувачем панелями
Цей контейнерний віджет працює так само, як QTabWidget — він відображає кілька панелей по черзі з вкладками для вибору.
Якщо двічі клацнути вкладку або перетягнути її, вона від’єднається від головного вікна.
Коли вкладка від’єднана, її вміст розміщується в QDialog.
Вкладку можна знову приєднати, закривши діалогове вікно або двічі клацнувши на її рамці.
Він базується на QTabWidget від PyQt.
1.3. DoubleScale - Віджет введення кнопки спінінга
Цей віджет — віджет введення за допомогою кнопки обертання, який використовується для встановлення s32 та float HAL-піну.
Він має внутрішній коефіцієнт масштабування, встановлений за замовчуванням на 1, який можна встановити програмно або за допомогою QtSignal.
Слот setInput може бути підключений до цілочисельного або плаваючого сигналу.
-
[HALLabelName].setInput(some_value) -
Це виклик функції для зміни внутрішнього коефіцієнта масштабування.
Виводи HAL будуть встановлені на значення внутрішньої шкали, помножене на значення, що відображається віджетом.
1.4. FocusOverlay - Віджет накладання фокуса
Цей віджет розміщує кольорове накладання на екран, зазвичай під час відображення діалогового вікна.
Використовується для створення відчуття «зосередженості» та привернення уваги до важливої інформації.
Він також може відображати напівпрозоре зображення.
Він також може відображати текст повідомлення та кнопки.
Цим віджетом _можна керувати за допомогою повідомлень STATUS.
1.5. Gauge - Віджет круглого циферблатного індикатора
Gauge: Віджет круглого циферблатного індикатораКруглий калібр можна використовувати в графічному інтерфейсі LinuxCNC для відображення вхідного параметра на циферблаті.
Існує кілька властивостей, які користувач може налаштувати, щоб налаштувати зовнішній вигляд датчика.
Наступні параметри можна встановити або програмно, або через редактор властивостей Qt Designer.
-
halpin_option -
Встановлення цього значення на
Trueстворить 2 виводи HAL:-
Один призначений для встановлення вхідного значення
value -
Інший призначений для встановлення «заданої точки».
Якщо цей параметр не встановлено, то
valueтаsetpointмають бути пов’язані програмно, тобто у файлі обробника. -
-
max_reading -
Це значення визначає найбільше число, що відображається на поверхні калібру.
-
max_value -
Це максимальне очікуване значення вхідного сигналу.
Іншими словами, це повний діапазон вхідних значень. -
num_ticks -
Це кількість позначок/показників індикатора на циферблаті індикатора.
Слід встановити число, яке забезпечує читабельність текстових показників навколо циферблата індикатора.
Мінімальне дозволене значення – 2. -
zone1_color -
Зона 1 простягається від максимального значення до порогової точки.
Її можна встановити на будь-який колір RGB. -
zone2_color -
Зона2 простягається від порогової точки до мінімального значення, яке дорівнює 0.
Їй можна встановити будь-який колір RGB. -
bezel_color -
Це колір зовнішнього кільця калібру.
-
bezel_width -
Це ширина зовнішнього кільця калібру.
-
поріг -
Поріг є точкою переходу між зонами.
Його слід встановити на значення від 0 до максимального значення.
Максимально допустиме значення встановлюється наmax_valueдатчика, а мінімальне значення дорівнює 0. -
gauge_label -
Це текст під зчитуванням значення, біля нижньої частини індикатора.
Тоді функція індикатора легко видима. -
base_color -
Колір калібру.
-
base_gradient_color -
Колір підсвічування датчика.
-
center_color -
Колір центру калібру.
-
center_gradient_color -
Колір підсвічування центру датчика.
Є 2 входи, які не можна налаштувати. Їх можна встановити через виводи HAL, програмно або за допомогою сигналів з інших віджетів:
-
значення -
Це фактичне вхідне значення, яке буде відображатися разом зі стрілкою манометра та на цифровому індикаторі.
Його необхідно встановити на значення від 0 до максимального значенняmax_value. -
задане значення -
Це значення, яке визначає розташування маленького маркера на поверхні калібру. Його необхідно встановити на значення від 0 до максимального значення.
1.6. GeneralHALInput - Віджет підключення вхідних сигналів/слотів
Цей віджет використовується для підключення довільного віджета Qt до HAL за допомогою сигналів/слотів.
Використовується для віджетів, які повинні реагувати на зміни пінів HAL.
1.7. GeneralHALOutput - Загальні сигнали/слоти Віджет підключення виходу
Цей віджет використовується для підключення довільного віджета Qt до HAL за допомогою сигналів/слотів.
Він використовується для віджетів, які повинні керувати пінами HAL.
1.8. GridLayout - Віджет макета сітки
Цей віджет керує тим, чи віджети всередині нього ввімкнені чи вимкнені.
Вимкнені віджети зазвичай мають інший колір і не реагують на дії.
Він базується на QGridLayout від PyQt.
1.9. HalBar - Індикатор рівня HAL Bar
HalBar: панель, що демонструє індикатор рівня HAL BarЦей віджет використовується для індикації рівня або значення, зазвичай для виводу HAL s32/float.
Ви також можете вимкнути вивод HAL та використовувати сигнали Qt або команди Python для зміни рівня.
1.9.1. Властивості бару
HalBar є підкласом віджета Bar, тому він успадковує такі властивості:
-
stepColorList: список кольорових рядків, кількість кольорів визначає кількість стовпців.
-
backgroundColor: визначення QColor кольору фону.
-
indicatorColor: визначення QColor для додаткової одноколірної шкали поточного значення.
-
useMultiColorIndicator: Булевий перемикач для вибору опції одноколірної або багатоколірної шкали значень.
-
split: цілочисельний відсотковий поділ смужки максимального значення відносно смужки поточного значення (від 0 до 50%).
-
setVertical: перемикач bool для вибору вертикального або горизонтального індикатора.
-
setInverted: логічний перемикач для вибору інвертованого напрямку.
-
setMaximum: ціле число, яке визначає максимальний рівень індикації.
-
setMinimum: ціле число, яке визначає найнижчий рівень індикації.
1.9.2. Властивості HalBar
-
pinType: щоб вибрати тип контактів HAL:
-
NONEPIN-код HAL не буде додано -
S32Буде додано цілочисельний пін S32 -
FLOATБуде додано плаваючий штифт
-
-
pinName: щоб змінити назву виводу HAL, інакше використовується базова назва віджета.
1.9.3. Таблиці стилів HalBar
Вищезазначені властивості Bar можна встановити в таблицях стилів.
Властивості pinType та pinName не можна змінювати в таблицях стилів.
|
Note
|
У таблицях стилів stepColorList — це один рядок назв кольорів, розділених комами. |
HalBar{ qproperty-backgroundColor: #000; qproperty-stepColorList: 'green,green,#00b600,#00b600,#00d600,#00d600,yellow,yellow,red,red'; }
1.10. HALPad - Кнопки HAL Джойстик
HALPad: Кнопки HAL ДжойстикЦей віджет виглядає та працює як 5-кнопковий D-pad зі світлодіодним кільцем.
Кожна кнопка має вивід HAL одного типу (біт, S32 або число з плаваючою комою), який можна вибрати.
Центральне кільце світлодіода має вибір кольорів для ввімкнення та вимкнення та керується бітовим виводом HAL.
HALPad ENUMSВикористовуються перелічені константи:
-
Щоб посилатися на положення індикаторів:
-
НІЧОГО -
ЛІВОРУЧ -
ПРАВОРУЧ -
ЦЕНТР -
ВЕРХ -
ВНИЗ -
ЛІВОРУЧПРАВОРУЧ -
ЗВЕРХВНИЗ
-
-
Для типів контактів HAL:
-
НІЧОГО -
БІТ -
S32 -
FLOAT
-
Ви використовуєте назву віджета в Qt Designer плюс константу посилання:
self.w.halpadname.set_highlight(self.w.halpadname.LEFTRIGHT)
HALPad Властивості-
pin_name -
Необов’язкова назва для базової назви пінів HAL. Якщо залишити поле порожнім, буде використано назву віджета Qt Designer.
-
pin_type -
Виберіть тип вихідного виводу HAL. Ця властивість використовується лише під час запуску. Вибір можна встановити в Qt Designer:
-
НІЧОГО -
БІТ -
S32 -
FLOAT
-
-
left_image_path -
right_image_path -
center_image_path -
top_image_path -
bottom_image_path -
Шлях до файлу або ресурсу зображення, яке потрібно відобразити в описаному місці розташування кнопки.
Якщо натиснути кнопку скидання у властивості редактора Qt Designer, зображення не відображатиметься (дозволяючи додатковий текст). -
left_text -
right_text -
center_text -
top_text -
bottom_text -
Текстовий рядок, який буде відображено в описаному місці кнопки.
Якщо залишити поле порожнім, можна призначити зображення для відображення. -
true_color -
false_color -
Вибір кольору для центрального світлодіодного кільця, яке відображатиметься, коли вивід HAL
<BASENAME>.light.centerмає значенняTrueабоFalse. -
text_color -
Вибір кольору для тексту кнопки.
-
text_font -
Вибір шрифту для тексту кнопки.
HALPad СтиліВищезазначені властивості можна встановити в стилях.
HALPad{ qproperty-on_color: #000; qproperty-off_color: #444; }
1.11. HALLabel - Віджет міток HAL
Цей віджет відображає значення, надіслані йому.
Значення можна надсилати з:
-
HAL-піни
Вхідний пін можна вибрати як бітовий, S32, Float або взагалі не вибрати пін -
Програмно
-
A
QtSignal
Існує властивість textTemplate для встановлення форматованого тексту та/або форматування тексту.
Базове форматування може бути:
-
%rдля логічних значень -
%dдля цілих чисел -
%0.4fдля чисел з плаваючою комою.
Приклад форматованого тексту може бути таким:
self.w.my_hal_label.setProperty(textTemplate,""" <html> <head/> <body> <p><span style="font-size:12pt;font-weight:600;color:#f40c11;">%0.4f</span></p> </body> </html> """ )
Слот setDisplay може бути підключений до цілочисельного, числа з плаваючою комою або булевого сигналу.
Якщо властивість pin_name не встановлена, буде використано назву віджета.
Існують виклики функцій для відображення значень:
-
[HALLabelName].setDisplay(some_value) -
Може використовуватися для налаштування дисплея, якщо не вибрано жодного контакту HAL.
-
[HALLabelName].setProperty(textTemplate,"%d") -
Встановлює шаблон відображення.
Він базується на QLabel PyQt.
1.12. LCDNumber - Віджет зчитування номерів у стилі РК-дисплея
Цей віджет відображає значення HAL з плаваючою комою/s32/біт у вигляді РК-дисплея.
Він може відображати числа у десятковому, шістнадцятковому, двійковому та вісімковому форматах, встановивши властивість mode.
Під час використання чисел з плаваючою комою ви можете встановити рядок форматування.
Ви повинні встановити властивість digitCount у відповідне значення, щоб відобразити найбільше число.
-
pin_name -
Рядок опцій, який буде використовуватися як назва виводу HAL.
Якщо встановлено значення порожнього рядка, буде використано назву віджета. -
bit_pin_type -
Вибирає вхідний контакт типу BIT.
-
s32_pin_type -
Вибирає вхідний контакт типу S32.
-
float_pin_type -
Виберіть тип вхідного контакту
FLOAT. -
floatTemplate -
Строка, яка буде використовуватися як шаблон формату Python3 для налаштування LCD-дисплея.
Використовується тільки при виборі виводуFLOAT, наприклад,{:.2f}відображатиме число з плаваючою комою, округлене до 2 цифр після десяткової крапки.
Порожнє поле дозволить десятковій крапці переміщатися за необхідністю.
Він базується на QLCDNumber PyQt.
1.13. LED - Віджет індикатора
LED: Віджет світлодіодного індикатораІндикатор, подібний до світлодіода, який за бажанням відповідає логіці виводу HAL.
-
halpin_option -
Вибирає, чи світлодіод відображає стан вхідного виводу HAL або програми.
-
diameter -
Діаметр світлодіода (за замовчуванням 15).
-
color -
Колір світлодіода, коли він увімкнений (за замовчуванням зелений).
-
off_color -
Колір світлодіода у вимкненому стані (за замовчуванням чорний).
-
gradient -
вмикає або вимикає градієнтне підсвічування (за замовчуванням увімкнено).
-
on_gradient_color -
Колір підсвічування світлодіода, коли він увімкнений (за замовчуванням білий).
-
off_gradient_color -
Колір підсвічування світлодіода, коли він вимкнений (за замовчуванням білий).
-
вирівнювання -
Підказка щодо вирівнювання Qt.
-
стан -
Поточний стан світлодіода
-
миготливий -
Вмикає та вимикає опцію миготіння.
-
Швидкість спалаху -
Встановлює частоту спалахів.
Властивості LED можна визначити в stylesheet за допомогою наступного коду, доданого до файлу .qss, де name_of_led – це назва віджета, визначена в редакторі Qt Designer:
LED #name_0f_led{ qproperty-color: red; qproperty-diameter: 20; qproperty-flashRate: 150; }
1.14. PushButton - Віджет перемикання закріплення HAL
Цей віджет дозволяє користувачеві встановити значення HAL pin на true або false одним натисканням кнопки.
Як варіант, це може бути кнопка-перемикач.
For a LED Indicator Option, see [sub:qtvcp:widgets:indicatedpushbutton][IndicatedPushButton] below for more info.
Також має інші опції.
Він базується на QPushButton PyQt.
1.15. RadioButton Віджет
Цей віджет дозволяє користувачеві встановлювати значення пінів HAL на значення true або false. Лише один віджет RadioButton групи може мати значення true одночасно.
Він базується на QRadioButton від PyQt.
1.16. Slider - Віджет налаштування значення HAL Pin
Дозволяє налаштувати значення виводу HAL за допомогою ковзного вказівника.
1.17. TabWidget - Віджет вкладки
Цей віджет дозволяє налаштовувати висоту вкладок за допомогою таблиць стилів.
Властивості TabWidget можна визначити в stylesheet, додавши наступний код до файлу .qss.
name_of_tab — це ім’я віджета, визначене в редакторі Qt Designer.
Якщо ви пропустите текст «#name_of_tab», буде встановлено висоту всіх вкладок TabWidgets.
Це показує, як встановити висоту вкладки певного віджета:
TabWidget #name_of_tab{ qproperty-tabsize: 1.5; }
Він базується на QTabWidget від PyQt.
1.18. WidgetSwitcher - Віджет перемикача режимів перегляду макета кількох віджетів
Це використовується для перемикання вигляду макета з кількома віджетами на відображення лише одного віджета, тобто для перемикання між великим виглядом віджета та меншим виглядом кількох віджетів.
Він відрізняється від стекового віджета тим, що може витягувати віджет з будь-якої точки екрана та розміщувати його на своїй сторінці з іншим макетом, ніж той, що був спочатку.
Щоб перемикач міг повернути оригінальний віджет, він має бути в макеті.
У Qt Designer ви будете:
-
Додайте на екран віджет
WidgetSwitcher. -
Клацніть правою кнопкою миші на
WidgetSwitcherта додайте сторінку. -
Заповніть його віджетами/макетами, які ви хочете бачити у формі за замовчуванням.
-
Додайте стільки сторінок, скільки є подань для переходу.
-
На кожній сторінці додайте віджет макета.
Після додавання макета потрібно знову клацнути правою кнопкою миші на перемикачі віджетів і встановити параметр макета. -
Клацніть на віджеті
WidgetSwitcher, а потім прокрутіть униз редактора властивостей. -
Знайдіть динамічну властивість
widget_listта двічі клацніть праворуч від неї. -
З’явиться діалогове вікно, яке дозволить вам додати назви віджетів для переміщення на сторінки, додані до
WidgetSwitcher.
Існують виклики функцій для відображення певних віджетів.
Викликаючи одну з цих функцій, ви контролюєте, який віджет відображається на даний момент:
-
[_WidgetSwitcherName_].show_id_widget(_number_) -
[_WidgetSwitcherName_].show_named_widget(_widget_name_) -
[_WidgetSwitcherName_].show_default() -
Це показує макет
сторінка 0, а всі інші віджети повертаються до початкового стану, коли вони були створені в Qt Designer. -
[_WidgetSwitcherName_].show_next() -
Показати наступний віджет.
Він базується на віджеті QStack.
1.19. XEmbed - Віджет вбудовування програм
Дозволяє вбудувати програму у віджет.
Працюватимуть лише програми, що використовують протокол xembed, такі як:
-
Віртуальні панелі керування GladeVCP
-
Вбудована віртуальна клавіатура
-
Віртуальні панелі керування QtVCP
-
відеоплеєр mplayer
2. Віджети контролера машини
Ці віджети взаємодіють зі станом контролера машини.
2.1. ActionButton - Віджет керування діями контролера машини
Ці кнопки використовуються для керування діями на контролері машини.
Вони побудовані на базі IndicatedPushButton, тому можуть мати світлодіоди, що накладаються один на одного.
|
Note
|
Якщо ви залишили подвійний клік на цьому віджеті, ви можете запустити діалогове вікно для налаштування будь-якої з цих дій. Діалогові вікна допоможуть налаштувати правильні дані, пов’язані з вибраною дією. Ви також можете змінити ці властивості безпосередньо в редакторі властивостей. |
Ви можете вибрати один із цих:
-
Estop -
Машина ввімкнена -
Авто -
mdi -
ручний -
run -
run_from_line статус -
Отримує номер рядка з повідомлення
STATUSgcode-line-selected. -
run_from_line слот -
Отримує номер рядка з Qt Designer int/str slot
setRunFromLine. -
abort -
pause -
завантажити діалогове вікно -
Потрібно наявність віджета діалогового вікна.
-
Діалогове вікно перегляду камери -
Потрібна наявність віджета діалогового вікна
camview. -
діалогове вікно зміщення походження -
Потрібно наявність віджета діалогового вікна зміщення походження.
-
діалогове вікно макросу -
Потрібна наявність віджета діалогового вікна макросів.
-
Запуск Халметра -
Стан запуску -
Запуск Halshow -
Головна сторінка -
Встановіть номер суглоба на -1 для
all-home. -
Ви бездомні -
Встановіть номер суглоба на -1 для
all-unhome. -
Вибрано для дому -
Встановлює опорну точку для з’єднання/вісі, вибраної за допомогою
STATUS. -
Вибрано -
Знімає з початкового положення з’єднання/вісь, вибрану за допомогою
STATUS. -
нульова вісь -
нуль G5X -
Обнуляє поточні зміщення системи координат користувача.
-
нуль G92 -
Обнуляє додаткові зміщення
G92. -
нульовий поворотний момент Z -
Обнуляє зміщення обертання.
-
позитивний суглоб підтюпцем -
Встановіть номер суглоба.
-
поштовховий суглоб негативний -
Встановіть номер суглоба.
-
пробіжка вибрана позитивною -
Вибрано за допомогою іншого віджета або
СТАТУСУ. -
поштовх вибрано негативне -
Вибрано за допомогою іншого віджета або
СТАТУСУ. -
приріст поштовху -
Встановіть метричні/імперські/кутові числа.
-
швидкість штовхання -
Встановіть число з плаваючою комою/альтернативне число з плаваючою комою.
-
перевизначення каналу -
Встановіть число з плаваючою комою/альтернативне число з плаваючою комою.
-
швидке перевизначення -
Встановіть число з плаваючою комою/альтернативне число з плаваючою комою.
-
корекція шпинделя -
Встановіть число з плаваючою комою/альтернативне число з плаваючою комою.
-
шпиндель вперед -
шпиндель назад -
зупинка шпинделя -
шпиндель вгору -
шпиндель вниз -
зміна перегляду -
Набір
view_type_string. -
обмеження перевизначення -
повінь -
mist -
видалення блоку -
необов'язкова зупинка -
команда mdi -
Встановлює
command_string, тобто викликає жорстко закодовану MDI-команду -
ЦЕ номер MDI -
Встановлює
ini_mdi_number, тобто викликає MDI-команду на основі INI -
дро абсолют -
родич дро -
dro dtg -
екран виходу -
Закриває LinuxCNC
-
Замінити обмеження -
Тимчасово змінити жорсткі обмеження
-
діалогові вікна запуску -
Відкриває діалогові вікна, якщо вони включені до файлу інтерфейсу користувача.
-
встановити DRO на відносний -
встановити DRO на абсолютне значення -
встановити DRO на відстань, що залишилася -
Ці встановлюють атрибути вибраної дії (доступність залежить від віджета):
-
перемикання опції плаваючої точки -
Дозволяє перемикатися між двома швидкостями за допомогою кнопок джогінгу та коригування.
-
спільний номер -
Вибирає з’єднання/вісь, якою керує кнопка.
-
збільшення імперського числа -
Встановлює приріст імперської шкали (встановіть від’ємне значення, щоб ігнорувати).
-
число мм -
Встановлює приріст метричної похибки (встановіть від’ємне значення, щоб ігнорувати).
-
приріст кутового числа -
Встановлює приріст кутового повороту (встановлює від’ємне значення для ігнорування).
-
число з комою -
Використовується для
jograteта перевизначень. -
альтернативне число з плаваючою комою -
Для
jograteта перевизначень, які можуть перемикатися між двома числами з комою. -
рядок типу перегляду -
Може бути:
-
p, -
x,y,y2,z,z2, -
збільшення масштабу,зменшення масштабу, -
pan-up,pan-down,pan-left,pan-right, -
rotate-up,rotate-down,rotate-cw,rotate-ccw -
clear.
-
-
рядок команди -
Рядок команди MDI, який буде викликано, якщо вибрано дію команди MDI.
-
ini_mdi_number -
(Старий спосіб)
Посилання на розділ INI файлу[MDI_COMMAND_LIST].
Встановіть ціле число, вибравши один рядок під рядком INI[MDI_COMMAND], починаючи з 0.
Потім у файлі INI під заголовком[MDI_COMMAND_LIST]додайте відповідні рядки.
Команди, розділені символом;, будуть виконуватися одна за одною.
Текст мітки кнопки можна встановити будь-яким текстом після коми, символ\nдодає розрив рядка. -
ini_mdi_key -
(бажаний спосіб)
Посилання на розділ INI файлу[MDI_COMMAND_LIST].
Цей рядок буде додано до MDI_COMMAND_, щоб сформувати запис для пошуку
у файлі INI під заголовком[MDI_COMMAND_LIST].
Команди, розділені символом;, будуть виконуватися одна за одною
Текст мітки кнопки можна встановити будь-яким текстом після коми, символ\nдодає розрив рядка.
[MDI_COMMAND_LIST] MDI_COMMAND_MACRO0 = G0 Z25;X0 Y0;Z0, Goto\nUser\nZero MDI_COMMAND_MACRO1 = G53 G0 Z0;G53 G0 X0 Y0, Goto\nMachn\nZero
Кнопки дій є підкласами [sub:qtvcp:widgets:indicatedpushbutton][IndicatedPushButton]. Див. наступні розділи для отримання додаткової інформації про:
2.2. ActionToolButton - Віджет кнопки меню додаткових дій
Кнопки ActionToolButton за своєю концепцією схожі на кнопки дій, але вони використовують QToolButtons, щоб дозволити вибирати опціональні дії шляхом натискання і утримання кнопки до появи меню опцій.
Наразі є лише один варіант: userView.
Він базується на QToolButton PyQt.
userView Віджет запису та налаштування перегляду користувачаКнопка інструмента «Вигляд користувача» дозволяє записувати та повертатися до довільного графічного вигляду.
Натисніть і утримуйте кнопку, щоб з’явилося меню, і натисніть запис перегляду, щоб записати поточний графічний вигляд.
Натисніть кнопку звичайним способом, щоб повернутися до останньої записаної позиції.
Записана позиція буде запам’ятана під час вимкнення, якщо налаштовано опцію файлу налаштувань.
|
Note
|
Через обмеження програмування записане положення може не відображатися точно так само. Особливо, якщо ви зменшили масштаб і знову збільшили його під час налаштування бажаного виду. Найкращий спосіб — вибрати основний вид, змінити його за бажанням, записати, а потім одразу натиснути кнопку, щоб перейти до записаного положення. Якщо воно вам не подобається, змініть його поточне положення і запишіть знову. |
2.3. AxisToolButton - Віджет «Вибрати та встановити осі»
Це дозволяє вибрати та встановити вісь.
Якщо кнопку встановлено як прапорець, вона вказуватиме на вибрану вісь.
Якщо натиснути та утримувати кнопку, з’явиться спливаюче меню, яке дозволить:
-
Обнулення осі
-
Поділіть вісь на 2
-
Встановіть вісь довільно
-
Скинути значення осі до останнього записаного числа
Ви повинні вибрати віджет діалогового вікна введення, який відповідає dialog_code_string, зазвичай це вибирається з віджета screenOptions.
-
halpin_option -
Встановить вивід HAL у значення "true" (істина), коли вісь вибрано.
-
joint_number -
Слід встановити відповідний номер суглоба.
-
axis_letter -
Слід встановити відповідну літеру осі.
Ось властивості меню, що активується за допомогою функції «клацання та утримання»:
-
showLast -
Показати дію «Встановити на останній».
-
showDivide -
Покажіть дію «Поділити на 2».
-
showGotoOrigin -
Показати дію «Перейти до початку координат G53/G5x».
-
showZeroOrigin -
Покажіть дію «Нульове походження».
-
showSetOrigin -
Показати дію «Встановити походження».
-
dialog_code_string -
Встановлює, яке діалогове вікно з’являтиметься для числового введення, наприклад, «ВВЕДЕННЯ» або «КАЛЬКУЛЯТОР», щоб викликати діалогове вікно введення лише за допомогою друку або діалогове вікно введення за допомогою сенсорного/друкованого калькулятора.
Ось зразок запису в таблиці стилів:
AxisToolButton { /* Змінити всі параметри меню */ qproperty-showLast: false; qproperty-showDivide : true; qproperty-showGotoOrigin: true; qproperty-showZeroOrigin: true; qproperty-showSetOrigin: false; qproperty-dialog_code_string: CALCULATOR; }
Він базується на QToolButton PyQt.
2.4. BasicProbe - Простий віджет зондування фрезерування
BasicProbe: Простий віджет зондування фрезеруванняВіджет для зондування на фрезерному верстаті. Використовується екраном QtDragon.
2.5. CamView - Віджет вирівнювання заготовки та налаштування початку координат
Цей віджет відображає зображення з веб-камери.
Він накладає регульовану круглу мішень та перехрестя на зображення.
CamView був створений з урахуванням точного візуального позиціонування.
Це використовується для вирівнювання елементів заготовки або нульової деталі за допомогою веб-камери.
Він використовує бібліотеку візуального мистецтва OpenCV.
2.6. DROLabel - Віджет відображення положення осі
Це відобразить поточне положення осі.
Ви також можете натиснути на підпис і переглянути список дій.
-
Qjoint_number -
Номер індексу суглоба (X=0, Y=1) зміщення для відображення (10 вказуватиме обертальне зміщення).
-
Qreference_type -
Фактична, відносна або відстань, що залишилася (0,1,2).
-
metric_template -
Формат відображення, наприклад
%10.3f. -
imperial_template -
формат відображення, наприклад
%9.4f. -
angular_template -
Формат відображення, наприклад
%Rotational: 10.1f. -
always_display_diameter -
Перемикає опцію відображення
-
always_display_radius -
Перемикає опцію відображення
-
display_as_per_m7m8 -
Перемикає опцію відображення. Буде дотримуватися поточного режиму M7/8.
-
follow_reference_changes -
Перемикає опцію відображення. Відповідатиме режиму довідки про повідомлення СТАН, тобто ви можете використовувати кнопки дій, щоб налаштувати, як воно наразі відображається.
Ось опції меню, що відкриваються при натисканні:
-
showLast -
Показати дію «Встановити на останній».
-
showDivide -
Покажіть дію «Поділити на 2».
-
showGotoOrigin -
Показати дію «Перейти до початку координат G53/G5x».
-
showZeroOrigin -
Покажіть дію «Нульове походження».
-
showSetOrigin -
Показати дію «Встановити походження».
-
dialogName -
Встановлює, яке діалогове вікно з’явиться для числового введення, тобто ВВЕДЕННЯ чи КАЛЬКУЛЯТОР.
Віджет DROLabel містить властивість isHomed, яку можна використовувати зі стилями для зміни кольору DRO_Label на основі стану відправлення номера з’єднання в LinuxCNC.
Ось зразок запису таблиці стилів, який:
-
Встановлює шрифт усіх віджетів
DRO_Label -
Встановлює текстовий шаблон (для встановлення роздільної здатності) цифрового індикатора (DRO)
-
Потім встановлює колір тексту на основі властивості Qt
isHomed. -
показати всі опції меню.
DROLabel { font: 25pt "Lato Heavy"; qproperty-imperial_template: '%9.4f'; qproperty-metric_template: '%10.3f'; qproperty-angular_template: '%11.2f'; /* Змінити всі параметри меню */ qproperty-showLast: true; qproperty-showDivide : true; qproperty-showGotoOrigin: true; qproperty-showZeroOrigin: true; qproperty-showSetOrigin: true; qproperty-dialogName: CALCULATOR; } DROLabel[isHomed=false] { color: red; } DROLabel[isHomed=true] { color: green; }
Ось як вказати певний віджет за його objectName у Qt Designer:
DROLabel #dr0_x_axis [isHomed=false] { color: yellow; }
Він базується на QLabel PyQt.
2.7. FileManager - Віджет вибору завантаження файлів
FileManager: Віджет вибору завантаження файлівЦей віджет використовується для вибору файлів для завантаження.
Він має можливість прокручувати назви за допомогою обладнання, такого як MPG.
Можна налаштувати завантаження файлів за допомогою класу-патчу функції load(self,fname).
Функція getCurrentSelected() поверне кортеж Python, що містить шлях до файлу та інформацію про те, чи є це файлом.
temp = FILEMANAGER.getCurrentSelected() print('filepath={}'.format(temp[0])) if temp[1]: print('Is a file')
-
doubleClickSelection(bool) -
Визначає, чи потрібно двічі клацнути на папці.
Одноразове клацання на папці (False) увімкнено за замовчуванням і призначено для користувачів сенсорних екранів.
Нижче наведено приклад налаштування цієї властивості:#filemanager { qproperty-doubleClickSelection: True; }
-
showListView(bool) -
Визначає, чи слід відображати структуру файлів/папок у формі списку.
Табличний вигляд (False) увімкнено за замовчуванням.
Нижче наведено приклад того, як встановити цю властивість:#filemanager { qproperty-showListView: True; }
Він базується на FIXME від PyQt
2.8. GcodeDisplay - Віджет відображення тексту G-коду
Це відображає G-код у текстовому вигляді, виділяючи поточний рядок.
Це також може відображати:
-
Історія MDI, коли LinuxCNC перебуває в режимі
MDI. -
Записи журналу, коли LinuxCNC перебуває в режимі
MANUAL. -
Записи файлу налаштувань, якщо ви введете
PREFERENCEвеликими літерами у віджетMDILine.
Він має signal percentDone(int), який можна підключити до слота (наприклад, progressBar для відображення відсотка виконання).
-
auto_show_mdi_status -
Встановіть значення «true», щоб віджет перемикався на історію MDI, коли він у режимі MDI.
-
auto_show_manual_status -
Встановіть значення «true», щоб віджет перемикався в режим машинного журналу в ручному режимі.
Властивості GcodeDisplay можна встановити в таблиці стилів за допомогою наступного коду, доданого до файлу .qss (наступні варіанти кольорів є випадковими).
EditorBase{ qproperty-styleColorBackground: lightblue; qproperty-styleColorCursor:white; qproperty-styleColor0: black; qproperty-styleColor1: #000000; /* black */ qproperty-styleColor2: blue; qproperty-styleColor3: red; qproperty-styleColor4: green; qproperty-styleColor5: darkgreen; qproperty-styleColor6: darkred; qproperty-styleColor7: deeppink; qproperty-styleColorMarginText: White; qproperty-styleColorMarginBackground: blue; qproperty-styleFont0: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFont1: "Times,18,-1,0,90,1,0,0,0,0"; qproperty-styleFont2: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFont3: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFont4: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFont5: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFont6: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFont7: "Times,12,-1,0,90,0,0,0,0,0"; qproperty-styleFontMargin: "Times,14,-1,0,90,0,0,0,0,0"; }
Для лексера G-коду за замовчуванням віджета GcodeDisplay:
-
styleColor0 = За замовчуванням: Все, що не входить до груп нижче
-
styleColor1 = Номер рядка та коментарі: Nxxx та коментарі (символи всередині та включно з () або будь-що після ; (якщо використовується поза дужками), за винятком примітки нижче)
-
styleColor2 = G-код: G та цифри після нього
-
styleColor3 = M-код: M та цифри після нього
-
styleColor4 = Axis: XYZABCUVW
-
styleColor5 = Інше: EFHIJKDQLRPST (подача, об/хв, радіус тощо)
-
styleColor6 = AxisValue: Значення після XYZABCUVW
-
styleColor7 = OtherValue: Значення, що відповідають EFHIJKDQLRPST$
|
Note
|
Для коментарів колір «OtherValue» (колір 5) можна використовувати для виділення «print», «debug», «msg», «logopen», «logappend», «logclose», «log», «pyrun», «pyreload», «abort», «probeopen», «probeclose» всередині коментаря в дужках у рядку G-коду. А також «py», якщо рядок починається з «;py,». Приклади: (print, text), (log, text), (msg, text) або (debug, text). Якщо в одному рядку є кілька прикладів, виділятиметься лише останній. |
Визначення шрифтів:
"style name, size, -1, 0, bold setting (0-99), italics (0-1),
underline (0-1),0,0,0"
Він базується на QsciScintilla PyQt.
2.9. GcodeEditor - Віджет редактора G-кодів програм
Це розширення віджета GcodeDisplay, яке додає зручності редагування.
Він базується на QWidget PyQt, який містить віджет GcodeDisplay.
2.10. GCodeGraphics - Віджет графічного фону G-коду
Це відображає поточний G-код у графічному вигляді.
-
dro-font/dro-large-font(string) -
Встановлює властивості шрифту DRO для малого та великого форматів.
Тут ми посилаємося на базову назву віджета; GCodeGraphics
GCodeGraphics{ qproperty-dro_font:"monospace bold 12"; } GCodeGraphics{ qproperty-dro_large_font:"Times 25"; }
-
_view(string) -
Встановлює стандартну орієнтацію перегляду під час завантаження графічного інтерфейсу користувача.
Для токарного верстата допустимими варіантами є p, y, y2. Для інших екранів допустимими варіантами є p, x, y, z, z2.
Нижче наведено приклад того, як встановити цю властивість (з посиланням на ім’я, вибране користувачем віджета):#gcodegraphics{ qproperty-_view: z; }
-
_dro(bool) -
Визначає, чи показувати DRO.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-_dro: False; }
-
_dtg(bool) -
Визначте, чи показувати відстань, що залишилася.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-_dtg: False; }
-
_metric(bool) -
Визначає, чи відображати одиниці вимірювання в метричній системі за замовчуванням.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-_metric: False; }
-
_overlay(bool) -
Визначає, чи показувати накладання за замовчуванням.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-_overlay: False; }
-
_offsets(bool) -
Визначає, чи відображати зміщення за замовчуванням.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-_offsets: False; }
-
_small_origin(bool) -
Визначає, чи показувати малий початок координат за замовчуванням.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-_small_origin: False; }
-
overlay_color(основний, вторинний або колір у форматі RGBA) -
Встановлює колір накладання за замовчуванням.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-overlay_color: blue; }
-
overlay_alpha(float) -
Встановлює значення альфа-відображення накладання за замовчуванням. Це впливає на непрозорість накладання, якщо встановлено значення від 0.0 до 1.0.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-overlay_alpha: 0.15; }
-
background_color(основний, вторинний або колір у форматі RGBA) -
Встановлює колір фону за замовчуванням.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-background_color: blue; }
-
+_use_gradient_background+(bool) -
Визначає, чи використовувати градієнтний фон за замовчуванням.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-_use_gradient_background: False; }
-
jog_color(основний, вторинний або колір у форматі RGBA) -
Встановлює колір штрихування за замовчуванням.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-jog_color: red; }
-
Feed_color(основний, вторинний або колір у форматі RGBA) -
Встановлює колір стрічки за замовчуванням.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-Feed_color: green; }
-
Rapid_color(основний, вторинний або колір у форматі RGBA) -
Встановлює колір швидкого переходу за замовчуванням.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-Rapid_color: rgba(0, 0, 255, .5); }
-
InhibitControls(bool) -
Визначає, чи забороняти зовнішні елементи керування за замовчуванням.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-InhibitControls:True; }
-
MouseButtonMode(int) -
Змінює поведінку кнопки миші для обертання, переміщення або масштабування в попередньому перегляді.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-MouseButtonMode: 1; }
Існує 12 дійсних режимів:
Режим
Перемістити
Зум
Повернути
0
Ліворуч
Середній
Праворуч
1
Середній
Праворуч
Ліворуч
2
Середній
Ліворуч
Праворуч
3
Ліворуч
Праворуч
Середній
4
Праворуч
Ліворуч
Середній
5
Праворуч
Середній
Ліворуч
Режими 6-11 призначені для верстатів, яким потрібен лише 2D-попередній перегляд, таких як плазмові або деякі токарні верстати, і для яких не призначена кнопка повороту.
Режим
Перемістити
Зум
6
Ліворуч
Середній
7
Середній
Ліворуч
8
Праворуч
Ліворуч
9
Ліворуч
Праворуч
10
Середній
Праворуч
11
Праворуч
Середній
-
MouseWheelInvertZoom(bool) -
Визначає, чи слід інвертувати напрямок масштабування під час масштабування за допомогою коліщатка миші.
Нижче наведено приклад того, як встановити цю властивість:#gcodegraphics{ qproperty-MouseWheelInvertZoom:True; }
ACTION функціїБібліотека ACTION може керувати графічним віджетом G-коду.
-
ACTION.RELOAD_DISPLAY() -
Перезавантажте поточну програму, яка перерахує початок координат/зміщення.
-
ACTION.SET_GRAPHICS_VIEW(_view_) -
Можна надсилати такі команди
view:-
clear -
zoom-in -
zoom-out -
pan-up -
pan-down -
pan-right -
pan-left -
rotate-cw -
rotate-ccw -
rotate-up -
rotate-down -
overlay-dro-on -
overlay-dro-off -
overlay-offsets-on -
overlay-offsets-off -
alpha-mode-on -
alpha-mode-off -
inhibit-selection-on -
inhibit-selection-off -
dimensions-on -
dimensions-off -
grid-size -
record-view -
set-recorded-view -
P -
X -
Y -
Y2 -
Z -
Z2 -
set-large-dro
-
set-small-dro
-
-
ACTION.ADJUST_PAN(_X,Y_) -
Безпосередньо встановіть відносну панораму огляду в напрямках x та y.
-
ACTION.ADJUST_ROTATE(_X,Y_) -
Безпосередньо встановити відносне обертання огляду в напрямку x та y.
Він базується на віджеті OpenGL від PyQt.
2.11. JointEnableWidget - FIXME
Документація FIXME JointEnableWidget
2.12. JogIncrements - Віджет вибору значення кроку поштовху
Цей віджет дозволяє користувачеві вибирати значення кроку підйому для підйому.
Значення джоггу беруться з INI-файлу за адресою:
-
[DISPLAY]INCREMENTS, або -
[DISPLAY]ANGULAR_INCREMENTS
Це буде доступно для всіх віджетів через STATUS.
Ви можете вибрати лінійний або кутовий приріст за допомогою властивості linear_option у редакторі властивостей Qt Designer.
Він базується на ComboBox PyQt.
2.13. MacroTab - Віджет спеціальних макросів
MacroTab: спеціальний віджет макросівЦей віджет дозволяє користувачеві вибирати та налаштовувати спеціальні макропрограми для виконання невеликих завдань.
Він використовує зображення для візуального представлення макросу та для значка.
Він шукає спеціальні макроси, використовуючи визначення INI:
[RS274NGC] SUBROUTINE_PATH =
Макроси — це підпрограми O-word зі спеціальними коментарями для роботи з панеллю запуску. Перші три рядки обов’язкові містити ключові слова нижче, четвертий є необов’язковим.
Ось приклад перших чотирьох рядків у O-словному файлі:
; MACROCOMMAND = Entry1,Entry2 ; MACRODEFAULTS = 0,true ; MACROIMAGE = my_image.svg,Icon layer number,Macro layer number ; MACROOPTIONS = load:yes,save:yes,default:default.txt,path:~/macros
MACROCOMMANDЦе перший рядок у файлі O-word.
Це список тексту, розділеного комами, який відображається над записом.
У функції O-word буде по одному для кожної необхідної змінної.
Якщо макрос не потребує змінних, залиште його порожнім:
; MACROCOMMAND=
MACRODEFAULTSЦе має бути другий рядок у файлі O-word.
Це список значень за замовчуванням для кожної змінної у функції O-word, розділених комами.
Якщо ви використовуєте в списку слова «radiotrue», «radiofalse», «true» або «false», буде показано «radiobutton».
Якщо ви використовуєте слово «checktrue» або «checkfalse» у списку, буде показано «checkbox».
Якщо ви використовуєте слово «buttontrue» або «buttonfalse» у списку, буде показано «Checkable Pushbutton».
Якщо значення за замовчуванням має десяткову частину, macroTab припускає, що ви хочете отримати число з плаваючою комою, інакше — ціле число.
|
Note
|
Під час використання радіокнопок встановлюйте значення «true» лише для однієї з них. Радіокнопки використовуються для ексклюзивного вибору. |
MACROIMAGEЦе має бути третій рядок у файлі O-word.
-
Зображення SVG
Якщо використовуються файли зображень SVG, вони повинні закінчуватися розширенням.svg.
Зображення необхідно додати до шарів SVG, які використовуються для визначення різних зображень для макросів та піктограм.
Значення – це список із трьох упорядкованих полів, розділених комами:
; MACROIMAGE=filename.svg,macro_layer_name[,icon_layer_name]
З:
-
_filename_.svg -
Ім’я файлу зображення SVG як перше поле.
Вважається, що він знаходиться в тій самій папці, що й файл O-word. -
*macro_layer_name -
Назва шару макрозображення як друге поле.
-
icon_layer_name -
Назва шару зображення значка як необов’язкове третє поле. Якщо третій запис відсутній, те саме зображення буде використано для макросу та значка.
-
-
Зображення PNG/JPG:
Значення залишається списком, розділеним комами:; MACROIMAGE=macro_image.(png|jpg)[,icon_image.(png|jpg)]
З:
-
_macro_image_.(png|jpg) -
Ім’я файлу зображення макросу як перше поле.
Передбачається, що файл зображення знаходиться в тій самій папці, що й макрос. -
_icon_image_.(png|jpg) -
Назва файлу зображення піктограми як необов’язкове друге поле.
Якщо другий запис відсутній, те саме зображення буде використано для макросу та зображення.
-
Якщо ключове слово присутнє, але записи відсутні, зображення не використовуватимуться.
MACROOPTIONSЦей необов’язковий рядок має бути четвертим рядком у файлі O-word.
Це список ключових слів та даних, розділених комами, всі з яких є необов’язковими:
-
LOAD:yes -
Показує кнопку завантаження.
-
SAVE:yes -
Показує кнопку збереження.
-
DEFAULT:ThisMacroData.txt -
Встановлює попередньо вибрану назву файлу за замовчуванням під час завантаження/збереження даних для цього макросу.
Це може бути будь-яка дійсна назва файлу, але вона має закінчуватися на .txt. -
PATH:~/linuxcnc/nc_files/mySavedMacrosData -
Встановлює папку каталогу за замовчуванням для попереднього вибору під час завантаження/збереження даних для цього макросу.
2.13.1. Таблиці стилів MacroTab
Ось підказки щодо таблиць стилів для налаштування віджета MacroTab.
MacroTab CustomButton{ width: 20px; height: 40px; } MacroTab QPushButton { width: 80px; height: 40px; } MacroTab QLabel { font: 24pt "Lato Heavy"; } TouchSpinBox LineEdit { font: 12pt "Lato Heavy"; } TouchSpinBox QPushButton { width: 60px; height: 100px; }
2.14. OperatorValueLine - Віджет введення рядка значення оператора
Оператор вводить значення в цей віджет, які будуть застосовані до шаблону, а потім, за бажанням, відправлені в MDI негайно або застосовані пізніше. Віджет підтримує опціональний спливаючий калькулятор, клавіатуру або вибір інструментів для зручного введення даних на сенсорному екрані за допомогою налаштування dialog_keyboard_option. Щоб змінити тип діалогового вікна, відредагуйте dialog_code_option.
2.14.1. Форматування команди MDI
Віджет підтримує опцію форматування, яка передається до функції Python format() для створення кінцевого результату для команди MDI. Спеціальний маркер {value} можна вставити в будь-якому місці цього форматного рядка, де має з’явитися значення. Властивість форматування називається mdi_command_format_option, наприклад:
-
M3 S{value}запустити шпиндель зі швидкістю, введеною оператором. -
M6 T{value} G43 H{value}щоб виконати зміну інструменту та зміну зміщення довжини інструменту на основі введеного номера інструменту
2.14.2. Автоматична та відкладена проблема MDI
Віджет може бути налаштований на автоматичне виконання команди MDI після відправлення, якщо issue_mdi_on_submit_option встановлено на True. Якщо False, виконання команди може бути здійснено пізніше за допомогою сигналу або виклику функції з іншого віджета.
У випадках, коли issue_mdi_on_submit_option має значення False, виклик функції issue_mdi() призведе до виконання команди. Слоти, приєднані до віджетів, таких як PushButtons, можуть запускати команду MDI при натисканні, наприклад:
def setSpindleSpeed(self, event):
self.w.lineSpindleSpeed.issue_mdi()
ACTION.SET_MANUAL_MODE()
def setToolNumber(self, event):
self.w.lineToolNumber.issue_mdi()
ACTION.SET_MANUAL_MODE()
2.14.3. Приклад стилізації стану очікування
Віджет відстежує, чи введене значення є очікуючим і ще не було видане, за допомогою властивості isPendingValue. Це може бути використано для стилізації віджета за допомогою таблиці стилів. Це може бути використано для попередження оператора про те, що він ввів значення, але для його застосування необхідно виконати іншу дію.
У наступному уривку таблиці стилів віджет запису буде виділено блакитним фоном, коли значення очікують на розгляд і ще не застосовані.
#lineSpindleSpeed[isPendingValue=true],
#lineToolNumber[isPendingValue=true] {
background: cyan;
}
#lineSpindleSpeed[isPendingValue=false],
#lineToolNumber[isPendingValue=false] {
background: none;
}
2.15. MDILine - Віджет введення команд MDI в рядок
Тут можна вводити команди MDI.
Доступна спливаюча клавіатура.
Також у цьому віджеті доступні вбудовані команди.
Введіть будь-яку з цих команд, чутливих до регістру, щоб завантажити відповідну програму або отримати доступ до функції:
-
HALMETER -
Запускає LinuxCNC
halmeterutility. -
HALSHOW -
Запускає LinuxCNC
halshowкорисність. -
HALSCOPE -
Запускає утиліту LinuxCNC
halscope. -
STATUS -
Запускає утиліту LinuxCNC
status. -
CALIBRATION -
Запускає LinuxCNC Calibration
-
CLASSICLADDER -
Запускає посилання:../ladder/classic-ladder.html[ClassicLadder GUI], якщо компонент HAL реального часу ClassicLadder був завантажений конфігураційними файлами машини.
-
PREFERENCE -
Завантажує файл налаштувань у
GcodeEditor. -
CLEAR HISTORY -
Очищає історію MDI.
-
net -
Див. команди
halcmd net.
Якщо команда виконана невдало, виникне помилка.-
Синтаксис:
net <назва сигналу> <назва виводу> -
Приклад:
net plasmac:jog-inhibit motion.jog-stop
-
-
setp -
Встановлює значення виводу або параметра.
Допустимі значення залежать від типу об’єкта виводу або параметра.
Це призводить до помилки, якщо типи даних не збігаються або вивод підключено до сигналу.-
Синтаксис:
setp <pin/parameter-name> <value> -
Приклад:
setp plasmac.resolution 100
-
-
unlinkp -
Відключає контакт від сигналу.
Якщо контакт не існує, виникне помилка.
Запуск LinuxCNC з терміналу може допомогти визначити основну причину, оскільки там будуть відображатися повідомлення про помилки зhal_lib.c.-
Синтаксис:
unlinkp <pin name> -
Приклад:
unlinkp motion.jog-stop
-
|
Note
|
Функція MDILine spindle_inhibit може використовуватися файлом-обробником графічного інтерфейсу для блокування команд шпинделя M3, M4 та M5, якщо це необхідно. |
Він базується на QLineEdit від PyQt.
2.16. MDIHistory - Віджет історії команд MDI
Відображає список попередніх MDI-команд, який можна прокручувати.
Для команд MDI вбудовано рядок редагування. З цього віджета можна отримати доступ до тих самих вбудованих команд MDILine.
Історія записується у файл, визначений в INI під заголовком [DISPLAY] (тут показано значення за замовчуванням):
MDI_HISTORY_FILE = '~/.axis_mdi_history'
2.17. MDITouchy - Віджет введення MDI на сенсорному екрані
MDITouchy: Віджет введення MDI на сенсорному екраніЦей віджет відображає кнопки та рядки введення для введення команд MDI.
Виходячи з процесу введення MDI на сенсорному екрані LinuxCNC, його великі кнопки найбільш корисні для сенсорних екранів.
Використання MDITouchy:
-
Спочатку натисніть одну з кнопок
G/XY,G/RO,MабоT. Ліворуч з’являться поля для введення, які можна заповнити. -
Потім натисніть «Далі» та «Назад», щоб переходити між полями.
-
Calcз’явиться діалогове вікно калькулятора. -
Clearочищає поточний запис. -
Команда
Set Toolвикличе зміну інструменту. -
Set Originдозволить встановити початок координат поточної системи G6x. -
Macroвикличе будь-які доступні програми для роботи з макросами (ngc).
Віджет потрібний явний виклик коду Python MDITouchy для фактичного виконання команди MDI:
-
Для коду файлу обробника
Якщо віджет мав назву «mditouchy» в Qt Designer, команда нижче виконала б відображену команду MDI:self.w.mditouchy.run_command()
-
Для використання кнопки дії
Якщо віджет мав назву «mditouchy» в Qt Designer, скористайтеся опцією кнопки дії «Викликати команди Python» та введіть:INSTANCE.mditouchy.run_command()
Кнопка макросу циклічно перемикає макроси, визначені в заголовку INI [DISPLAY].
Додайте один або декілька рядків MACRO такого формату:
MACRO = macro_name [param1] [... paramN]
У наведеному нижче прикладі increment – це назва макросу, і він приймає два параметри з назвами xinc та yinc.
MACRO = incerment xinc yinc
Тепер помістіть макрос у файл з назвою macro_name.ngc у каталозі PROGRAM_PREFIX або в будь-який каталог у SUBROUTINE_PATH, зазначеному у файлі INI.
Продовжуючи наведений вище приклад, він матиме назву increment.ngc, а його вміст виглядатиме так:
O<increment> sub G91 G0 X#1 Y#2 G90 O<increment> endsub
Зверніть увагу, що _назва підфайлу точно збігається з назвою файлу та назвою макросу, включаючи регістр літер.
Коли ви викликаєте макрос, натиснувши кнопку «Макрос», ви можете ввести значення для параметрів (у нашому прикладі це xinc та yinc).
Вони передаються макросу як позиційні параметри: #1, #2… #N відповідно.
Параметри, які ви залишили порожніми, передаються як значення 0.
Якщо є кілька різних макросів, натискайте кнопку Макрос кілька разів, щоб перемикатися між ними.
У цьому простому прикладі, якщо ввести -1 для xinc та викликати цикл MDI, буде викликано швидкий рух G0, що переміщує на одиницю ліворуч.
Ця макрофункція корисна для зондування країв/отворів та інших завдань налаштування, а також, можливо, для фрезерування отворів або інших простих операцій, які можна виконувати з панелі без необхідності використання спеціально написаних програм G-коду.
2.18. OriginOffsetView - Віджет перегляду та налаштувань походження
OriginOffsetsView: Віджет перегляду та налаштувань походженняЦей віджет дозволяє безпосередньо візуалізувати та змінювати зміщення походження системи користувача.
Він оновить файл параметрів LinuxCNC для внесених або знайдених змін.
Налаштування можна змінити в LinuxCNC лише після повернення до початкового положення та коли контролер руху не використовується.
Відображення та введення змінюватимуться між метричною та імперською системами вимірювання, залежно від поточних налаштувань G20 / G21 LinuxCNC.
Поточна система користувача, що використовується, буде виділена.
Додаткові дії можуть бути інтегровані для маніпулювання налаштуваннями.
Ці дії залежать від додаткового коду, доданого або до комбінованого віджета, такого як діалогове вікно originoffsetview, або до коду обробника екранів.
Типовими діями можуть бути «Очистити поточні зміщення користувача» або «Обнулити X».
Клацання по стовпцях і рядках дозволяє налаштувати параметри.
Для введення даних або тексту можна налаштувати спливаюче діалогове вікно.
Розділ коментарів буде записаний у файлі налаштувань.
Він базується на QTableView, QAbstractTableModel та ItemEditorFactory PyQt.
Властивості, функції та стилі базових об’єктів PyQt завжди доступні.
OriginOffsetView має такі властивості:
-
dialog_code_string -
Встановлює, яке діалогове вікно з’явиться для введення чисел.
-
test_dialog_code_string -
Встановлює, яке діалогове вікно з’явиться після введення тексту.
-
metric_template -
Формат числових даних у метричній системі.
-
imperial_template -
Імперський числовий формат даних.
-
styleCodeHighlight -
Колір підсвічування поточної використовуваної системи користувача.
Їх можна встановити в:
-
Qt Designer, в
-
Код обробника Python
self.w.originoffsetview.setProperty('dialog_code','CALCULATOR') self.w.originoffsetview.setProperty('metric_template','%10.3f')
-
Або (якщо доречно) у таблицях стилів
OriginOffsetView{ qproperty-styleColorHighlist: lightblue; }
2.19. RadioAxisSelector - FIXME
Документація FIXME RadioAxisSelector
2.20. RoundButton - Віджет ActionButton круглої форми
Круглі кнопки працюють так само, як і ActionButtons, за винятком того, що кнопка обрізана.
Вони призначені лише для візуальної відмінності.
Вони мають дві властивості шляху для відображення зображень на значеннях true та false.
2.21. StateLabel - Віджет відображення міток станів режимів контролера
Це відобразить мітку на основі станів true/false режимів контролера машини.
Ви можете вибирати між різними текстами на основі «правда» чи «хиба».
Штати можна вибрати за допомогою цих властивостей:
-
css_mode_status -
Trueколи верстат знаходиться в режиміG96Постійна швидкість поверхні. -
diameter_mode_status -
Trueколи верстат знаходиться в режиміG7Діаметр токарного верстата. -
fpr_mode_status -
Trueколи верстат знаходиться в режиміG95Подача на оберт. -
metric_mode_status -
Trueколи машина знаходиться в метричному режиміG21.
-
true_textTemplate -
Це буде текст, встановлений, коли опція має значення
True.
Ви можете використовувати код Qt rich text для різних шрифтів/кольорів тощо.
Типовий шаблон для метричного режиму в стані true може бути: Metric Mode -
false_textTemplate -
Це буде текст, встановлений, коли опція має значення
False.
Ви можете використовувати код Qt rich text для різних шрифтів/кольорів тощо.
Типовий шаблон для метричного режиму в стані false може бути: Imperial Mode.
Він базується на QLabel PyQt.
2.22. StatusLabel - Віджет відображення міток стану змінних контролера
Це відобразить мітку на основі вибраного стану контролера машини.
Ви можете змінити спосіб відображення стану, замінивши код форматування Python у текстовому шаблоні. Ви також можете використовувати форматований текст для різних шрифтів/кольорів тощо.
Ці стани можна вибрати:
-
actual_spindle_speed_status -
Використовується для відображення фактичної швидкості шпинделя, повідомленої з виводу HAL
spindle.0.speed-i.
Вона перетворюється на RPM.
Зазвичай використовуєтьсяtextTemplateз%d. -
actual_surface_speed_status -
Використовується для відображення фактичної швидкості різання на токарному верстаті на основі осі X і швидкості шпинделя.
Вона перетворюється на відстань за хвилину.
Зазвичай використовуєтьсяtextTemplateз%4.1f(фути за хвилину) іaltTextTemplateз%d(метри за хвилину). -
blendcode_status -
Показує поточне налаштування
G64. -
current_feedrate_status -
Показує поточну фактичну швидкість подачі.
-
current_FPU_status -
Показує поточну фактичну подачу на одиницю.
-
fcode_status -
Показує поточне запрограмоване налаштування коду
F. -
feed_override_status -
Показує поточне налаштування корекції подачі у відсотках.
-
filename_status -
Показує назву останнього завантаженого файлу.
-
filepath_status -
Показує повний шлях до останнього завантаженого файлу.
-
gcode_status -
Показує всі активні G-коди.
-
gcode_selected_status -
Показати поточний вибраний рядок G-коду.
-
halpin_status -
Показує вихідний сигнал вибраного виводу HAL.
-
jograte_status -
Показує поточну швидкість поштовхового переміщення на основі QtVCP.
-
jograte_angular_status -
Показує поточну кутову швидкість поштовху на основі QtVCP.
-
jogincr_status -
Показує поточний приріст Jog на основі QtVCP.
-
jogincr_angular_status -
Показує поточний приріст кутового повороту на основі QtVCP.
-
machine_state_status -
Показує поточний стан інтерпретатора машини, використовуючи текст, описаний у списку_станів_машини.
Станами інтерпретатора є:-
Зупинено -
Запускаю -
Зупинено -
Призупинено -
Очікування -
Читання
-
-
max_velocity_override_status -
Показує поточне налаштування корекції максимальної швидкості осі.
-
mcode_status -
Шоу all active M-codes.
- motion_type_status
-
Показує поточний тип руху машини, використовуючи текст, описаний у списку типів руху (motion_type_list).
-
Жоден
-
Швидкий
-
Годувати
-
Arc
-
Зміна інструменту
-
Зонд
-
Ротарі Індекс
-
-
requested_spindle_speed_status -
Показує запитувану швидкість шпинделя — фактична може відрізнятися.
-
rapid_override_status -
Показує поточне налаштування швидкого перемикання у відсотках (0-100).
-
spindle_override_status -
Показує поточне налаштування корекції шпинделя у відсотках.
-
timestamp_status -
Показує час на основі системних налаштувань.
Приклад корисного налаштуванняtextTemplate:%I:%M:%S %p.
Див. модуль часу Python для отримання додаткової інформації. -
tool comment_status -
Повертає текст коментаря з поточного завантаженого інструменту.
-
tool diameter_status -
Повертає діаметр з поточного завантаженого інструменту.
-
tool_number_status -
Повертає номер поточного завантаженого інструменту.
-
tool_offset_status -
Повертає зміщення поточного завантаженого інструменту, індексоване за допомогою
index_numberдля вибору осі (0=x, 1=y тощо). -
user_system_status -
Показує активну систему координат користувача (налаштування
G5x).
-
index_number -
Ціле число, що визначає індекс стану інструмента для відображення.
-
state_label_list -
Список позначок, що використовуються для опису різних станів машини.
- motion_label_list
-
Список позначок, що використовуються для опису різних типів руху.
-
halpin_names -
Ім’я halpin-а для моніторингу (повне ім’я, включаючи базову назву компонента HAL).
-
textTemplate -
Зазвичай це використовується для імперських (
G20) або кутових числових налаштувань, хоча не кожна опція має імперське/метричне перетворення.
Для налаштування текстового виводу використовуються правила форматування Python.
Можна використовувати %s для відсутності перетворення, %d для перетворення цілих чисел, %f для перетворення чисел з плаваючою комою тощо.
Також можна використовувати код Qt rich text.
Типовим шаблоном, що використовується для форматування імперських чисел з плаваючою комою в текст, є %9.4f або %9.4f inch. -
alt_textTemplate -
Зазвичай використовується для метричних (
G21) числових налаштувань.
Використовує правила форматування Python для налаштування виводу тексту.
Типовим шаблоном, що використовується для форматування метричного числа з плаваючою комою в текст, є%10.3fабо%10.3f mm.
Він базується на QLabel PyQt.
2.23. StatusImageSwitcher - Перемикач зображень стану контролера
Перемикач зображень статусу перемикатиметься між зображеннями на основі станів LinuxCNC.
-
*
watch_spindle -
Перемикається між 3 images:
stop,fwd,revs. -
*
watch_axis_homed -
Перемикається між 2 зображеннями:
вісь не встановлена в початкове положення,вісь встановлена в початкове положення. -
*
watch_all_homed -
Перемикатиметься між 2 зображеннями:
не всі розміщені,усі розміщені. -
*
watch_hard_limits -
Перемикатиметься між 2 зображеннями або одним на кожне з’єднання.
Ось приклад його використання для відображення піктограми стану самонаведення осі Z:
StatusImageSwitcher: Перемикач зображень стану контролераУ розділі властивостей зверніть увагу на таке:
-
watch_axis_homedпозначено -
axis_letterвстановлено на Z
Якщо двічі клацнути на image_list, з’явиться діалогове вікно, яке дозволить вам додати шляхи до зображень.
Якщо у вас є одне зображення як значок і одне прозоре зображення, то виглядатиме так, ніби воно показує та приховує значок.
Вибір шляхів до зображень можна здійснити, вибравши властивість pixmap та вибравши зображення.
|
Note
|
Налаштування pixmap призначене лише для тестового відображення та буде ігноруватися за межами Qt Designer. |
-
Клацніть правою кнопкою миші на назві зображення, і ви побачите «Копіювати шлях».
-
Натисніть «Копіювати шлях».
-
Тепер двічі клацніть властивість «список зображень», щоб відобразилося діалогове вікно.
-
Натисніть кнопку «Новий».
-
Вставте шлях до зображення в поле введення.
Зробіть це ще раз для наступного зображення.
Використайте чітке зображення для позначення прихованої значка.
Ви можете перевірити відображення зображень зі списку зображень, змінивши номер зображення. У цьому випадку 0 не має базового положення, а 1 має базове положення.
Це призначено тільки для тестування відображення і буде ігноруватися поза Qt Designer.
2.24. StatusStacked - Віджет перемикання режимів відображення стану
Цей віджет відображає одну з трьох панелей залежно від режиму LinuxCNC.
Це дозволяє автоматично відображати різні віджети в режимах Manual, MDI та Auto.
Він базується на віджеті QStacked від PyQt.
2.25. ScreenOption - Віджет налаштувань загальних параметрів
Цей віджет не додає нічого візуального до екрана, але налаштовує важливі опції.
Це бажаний спосіб використання цих опцій.
Ці властивості можна встановити в Qt Designer, у коді обробника Python або (якщо доречно) у таблицях стилів.
До них належать:
-
halCompBaseName -
Якщо залишити порожнім, QtVCP використовуватиме ім’я екрана як базове ім’я компонента HAL.
Якщо встановлено, QtVCP використовуватиме цей рядок як базове ім’я компонента HAL.
Якщо під час завантаження QtVCP використовується опція командного рядка-c, він використовуватиме ім’я, вказане в командному рядку — це замінить усі вищезазначені опції.
Якщо ви програмно встановите базове ім’я вhandlerfile, воно замінить усі вищезазначені опції.
Цю властивість не можна встановити в таблицях стилів. -
notify_option -
Підключення до бульбашок сповіщень на робочому столі для отримання помилок та повідомлень.
-
notify_max_messages -
Кількість повідомлень, що відображаються на екрані одночасно.
-
catch_close_option -
Ловіть подію закриття, щоб з’явилося запитання _«Ви впевнені?».
-
close_overlay_color -
Колір прозорого шару, що відображається після виходу.
-
catch_error_option -
Моніторинг каналу помилок LinuxCNC.
Це також надсилає повідомлення черезSTATUSдо будь-чого, що реєструється. -
play_sounds_option -
Відтворення звуків за допомогою
beep,espeakта системного звуку. -
use_pref_file_option -
Налаштування шляху до файлу налаштувань.
Використання магічного словаWORKINGFOLDERу шляху до файлу налаштувань замінить його на шлях до запущеної конфігурації, наприкладWORKINFOLDER/my_preferences. -
use_send_zmq_option -
Використовується для ініціювання вихідних повідомлень на основі ZMQ.
-
use_receive_zmq_messages -
Використовується для ініціювання ZMQ на основі вхідних повідомлень.
Ці повідомлення можуть бути використані для виклику функцій у файлі обробника, що дозволяє зовнішнім програмам тісно інтегруватися з екранами на основі QtVCP. -
embedded_program_option -
Вбудовувати програми, визначені у INI.
-
default_embed_tab -
Це властивість для розташування за замовчуванням для вбудовування зовнішніх програм.
Її слід встановити як назву віджета сторінки вкладки в Qt Designer. -
focusOverlay_option -
Focus_overlay розмістить прозоре зображення або кольорову панель поверх головного екрана, щоб підкреслити фокус на зовнішній події – зазвичай діалоговому вікні.
-
messageDialog_option -
Налаштовує діалогове вікно повідомлень – використовується для загальних повідомлень.
-
message_overlay_color -
Колір прозорого шару, що відображається під час відображення діалогового вікна повідомлення.
-
closeDialog_option -
Встановлює стандартне діалогове вікно закриття екрана.
-
entryDialog_option -
Налаштовує діалогове вікно введення чисел.
-
entryDialogSoftKey_option -
Встановлює плаваючу програмну клавіатуру, коли діалогове вікно введення перебуває у фокусі.
-
entry_overlay_color -
Колір прозорого шару, що відображається під час відображення діалогового вікна введення.
-
toolDialog_option -
Налаштовує діалогове вікно ручної зміни інструменту, включаючи контакт HAL.
-
tool_overlay_color -
Колір прозорого шару, що відображається, коли відображається діалогове вікно інструмента.
-
ToolUseDesktopNotify -
Можливість використання діалогових вікон сповіщень на робочому столі для діалогового вікна ручної зміни інструменту.
-
ToolFrameless -
Користувачі не можуть легко переміщувати діалогові вікна без рамки.
-
fileDialog_option -
Встановлює діалогове вікно вибору файлу.
-
file_overlay_color -
Колір прозорого шару, що відображається під час відображення діалогового вікна файлу.
-
keyboardDialog_option -
Налаштовує віджет введення з клавіатури.
-
keyboard_overlay_color -
Колір прозорого шару, що відображається під час відображення діалогового вікна клавіатури.
-
vesaProbe_option -
Налаштовує діалогове вікно зонду у стилі Versa.
-
versaProbe_overlay_color -
Колір прозорого шару, що відображається, коли відображається діалогове вікно
versaProbe. -
macroTabDialog_option -
Налаштовує діалогове вікно вибору макросу.
-
macroTab_overlay_color -
Колір прозорого шару, що відображається, коли відображається діалогове вікно
macroTab. -
camViewDialog_option -
Налаштовує діалогове вікно вирівнювання камери.
-
camView_overlay_color -
Колір прозорого шару, що відображається, коли відображається діалогове вікно
camView. -
toolOffset_option -
Налаштовує діалогове вікно відображення/редактора зміщення інструменту.
-
toolOffset_overlay_color -
Колір прозорого шару, що відображається, коли відображається діалогове вікно
toolOffset. -
originOffset_option -
Налаштовує діалогове вікно відображення/редактора походження.
-
originOffset_overlay_color -
Колір прозорого шару, що відображається, коли відображається діалогове вікно
originOffset. -
calculatorDialog_option -
Налаштовує діалогове вікно введення даних калькулятора.
-
calculator_overlay_color -
Колір прозорого шару, що відображається, коли відображається діалогове вікно калькулятора.
-
machineLogDialog_option -
Налаштовує діалогове вікно для відображення журналів з машини та QtVCP.
-
machineLog_overlay_color -
Колір прозорого шару, що відображається, коли відображається діалогове вікно
machineLog. -
runFromLineDialog_option -
Встановлює діалогове вікно для відображення параметрів запуску під час запуску виконання машини з довільного рядка.
-
runFromLine_overlay_color -
Колір прозорого шару, що відображається, коли відображається діалогове вікно
runFromLine. -
user1Color -
Додатковий колір, який дизайнер екрану може використовувати у своєму дизайні.
-
user2Color -
Додатковий колір, який дизайнер екрану може використовувати у своєму дизайні.
-
user3Color -
Додатковий колір, який дизайнер екрану може використовувати у своєму дизайні.
-
user4Color -
Додатковий колір, який дизайнер екрану може використовувати у своєму дизайні.
-
user5Color -
Додатковий колір, який дизайнер екрану може використовувати у своєму дизайні.
-
user6Color -
Додатковий колір, який дизайнер екрану може використовувати у своєму дизайні.
-
user7Color -
Додатковий колір, який дизайнер екрану може використовувати у своєму дизайні.
-
user8Color -
Додатковий колір, який дизайнер екрану може використовувати у своєму дизайні.
-
user9Color -
Додатковий колір, який дизайнер екрану може використовувати у своєму дизайні.
-
user10Color -
Додатковий колір, який дизайнер екрану може використовувати у своєму дизайні.
Дизайнер екрану вибирає налаштування за замовчуванням для віджета screenOptions.
Після вибору більшість із них більше не потрібно буде змінювати. Але за потреби деякі можна змінити у файлі обробника або в таблицях стилів.
-
У файлі обробника:
Тут ми посилаємося на віджет за допомогою імені, визначеного користувачем у Qt Designer:# червоний, зелений, синій, альфа 0-255 color = QtGui.QColor(0, 255, 0, 191) self.w.screen_options.setProperty('close_overlay_color', color) self.w.screen_options.setProperty('play_sounds_option',False)
-
У таблицях стилів:
Тут ми можемо посилатися на віджет за назвою, визначеною користувачем у Qt Designer, або за назвою класу віджета./* червоний, зелений, синій 0-255, альфа 0-100% або від 0,0 до 1,0 */ /* Знак # використовується для позначення імені віджета, визначеного в Qt Designer */ /* відповідає/застосовується лише до цього названого віджета */ #screen_options { qproperty-close_overlay_color: rgba(0, 255, 0, 0.75) }
Деякі налаштування перевіряються лише під час запуску, тому не призведуть до змін після запуску. У цих випадках вам потрібно буде внести зміни лише в Qt Designer.
Якщо вибрано опцію preference file, віджет screenOption створить INI-файл налаштувань.
Хоча інші віджети QtVCP додадуть до цього списку, віджет screenOptions додасть ці записи під такими заголовками:
-
[SCREEN_OPTIONS] -
-
catch_errors(bool) -
desktop_notify(bool) -
Чи відображати помилки/повідомлення в механізмі сповіщень системи.
-
notify_max_msgs(int) -
Кількість помилок, що відображаються одночасно.
-
shutdown_check(bool) -
Чи слід виводити діалогове вікно підтвердження.
-
sound_player_on(bool) -
Вмикає або вимикає всі звуки.
-
-
[MCH_MSG_OPTIONS] -
-
mchnMsg_play_sound(bool) -
Відтворювати звуковий сигнал сповіщення, коли з’являється діалогове вікно.
-
mchnMsg_speak_errors(bool) -
Використання Espeak для озвучування повідомлень про помилки.
-
mchnMsg_speak_text(bool) -
Використовувати Espeak для озвучування всіх інших повідомлень.
-
mchnMsg_sound_type(str) -
Звук, який відтворюватиметься під час відображення повідомлень. Див. примітки нижче.
-
-
[USER_MSG_OPTIONS] -
-
usermsg_play_sound(bool) -
Відтворювати звуковий сигнал сповіщення, коли з’являється діалогове вікно.
-
userMsg_sound_type(str) -
Звук, який відтворюватиметься під час відображення повідомлень користувача. Див. примітки нижче.
-
userMsg_use_focusOverlay(bool)
-
-
[SHUTDOWN_OPTIONS] -
-
shutdown_play_sound(bool) -
shutdown_alert_sound_type(str) -
Звук, який відтворюватиметься під час відображення повідомлень. Див. примітки нижче.
-
shutdown_exit_sound_type(str) -
Звук, який відтворюватиметься під час відображення повідомлень. Див. примітки нижче.
-
shutdown_msg_title(str) -
Короткий заголовок для відображення в діалоговому вікні.
-
shutdown_msg_focus_text(str) -
Великий текстовий рядок для накладання на шар фокуса.
-
shutdown_msg_detail(str) -
Довший описовий рядок для відображення в діалоговому вікні.
-
-
NOTIFY_OPTIONS -
-
notify_start_greeting(bool) -
Чи відображати діалогове вікно привітання під час запуску.
-
notify_start_title(str) -
Короткий рядок заголовка.
Якщо також вибрано опцію озвучування, заголовок буде озвучено мовою Espeak. -
notify_start_detail(str) -
Довший рядок опису.
-
notify_start_timeout(int) -
Час у секундах, який відображатиметься перед закриттям.
-
*_sound_type записи-
Системні звуки
В інсталяціях на базі Debian/Ubuntu/Mint ці системні звуки мають бути доступні як записи типу звуку вище:-
ERROR -
READY -
DONE -
ATTENTION -
RING -
LOGIN -
LOGOUT -
BELL
Ці параметри звуку вимагають встановлення
python3-gst1.0. -
-
Аудіофайли
Ви також можете вказати шлях до довільного аудіофайлу.
Ви можете використовувати~у шляху, щоб замінити шлях до домашнього файлу користувача. -
Звукові сигнали ядра
Якщо модульbeepkernel встановлено і він не вимкнено, доступні такі записи звукових типів:-
BEEP -
BEEP_RING -
BEEP_START
-
-
Перетворення тексту на мовлення
Якщо встановлено модуль Espeak (python3-espeak), ви можете використовувати записSPEAKдля вимовляння тексту: -
SPEAK '_моє повідомлення_'
2.26. StatusSlider - Віджет повзунка налаштування контролера
Цей віджет дозволяє користувачеві налаштовувати налаштування LinuxCNC за допомогою повзунка.
Віджет може налаштовувати:
-
Швидкість штовхання
-
Швидкість кутового поштовху
-
Швидкість подачі
-
Швидкість корекції шпинделя
-
Швидка швидкість перевизначення
StatusSlider має такі властивості:
-
halpin_option -
Встановлює опцію для створення HAL-виведення з плаваючою точкою, яке відображає поточне значення.
-
rapid_rate -
Вибирає повзунок швидкості швидкого перевизначення.
-
feed_rate -
Вибирає повзунок швидкості корекції подачі.
-
spindle_rate -
Вибирає повзунок швидкості корекції шпинделя.
-
jograte_rate -
Вибирає лінійний повзунок зі змінною довжиною.
-
jograte_angular_rate -
Вибирає повзунок з кутовою візерунчастою решіткою.
-
max_velocity_rate -
Вибирає повзунок максимальної швидкості.
-
alertState -
Рядок для визначення зміни стилю:
read-only,under,overтаnormal. -
alertUnder -
Встановлює значення числа з плаваючою комою, яке сигналізує таблиці стилів про попередження «менше».
-
alertOver -
Встановлює значення числа з плаваючою комою, яке сигналізує таблиці стилів про попередження «перевищення».
Їх можна встановити в:
-
Дизайнер Qt
-
Код обробника Python,
self.w.status_slider.setProperty('spindle_rate',True) self.w.status_slider.setProperty('alertUnder',35) self.w.status_slider.setProperty('alertOver',100)
-
Або (якщо доречно) у таблицях стилів.
/* кольори попередження для перевизначень, якщо значення виходять за межі нормального діапазону*/ /* назва об'єкта віджета — slider_spindle_ovr */ #slider_spindle_ovr[alertState='over'] { background: red; } #slider_spindle_ovr[alertState='under'] { background: yellow; }
Він базується на QSlider від PyQt.
2.27. StateLED - Віджет світлодіодного індикатора стану контролера
Цей віджет надає статус вибраного стану LinuxCNC.
Варіанти штату такі:
-
is_paused_status -
is_estopped_status -
is_on_status -
is_idle_status_ -
is_homed_status -
is_flood_status -
is_mist_status -
is_block_delete_status -
is_optional_stop_status -
is_joint_homed_status -
is_limits_overridden_status -
is_manual_status -
is_mdi_status -
is_auto_status -
is_spindle_stopped_status -
is_spindle_fwd_status -
is_spindle_rev_status -
is_spindle_at_speed_status -
is_neg_limit_tripped -
is_pos_limit_tripped -
is_limits_tripped -
Є властивості, які можна змінити:
-
halpin_option -
Додає вихідний контакт, який відображає вибраний стан.
-
invert_state_status -
Інвертувати стан світлодіода порівняно зі станом LinuxCNC.
-
diameter -
Діаметр світлодіода.
-
color -
Колір світлодіода у ввімкненому стані.
-
off_color -
Колір світлодіода у вимкненому стані.
-
вирівнювання -
Підказка щодо вирівнювання в Qt.
-
стан -
Поточний стан світлодіода (для тестування в Qt Designer).
-
миготливий -
Вмикає та вимикає опцію миготіння.
-
Швидкість спалаху -
Встановлює частоту спалахів.
Властивості світлодіода можна визначити в таблиці стилів за допомогою наступного коду, доданого до файлу .qss.
Світлодіод_стану #name_of_led{ <1> qproperty-color: red; qproperty-diameter: 20; qproperty-flashRate: 150; }
-
name_of_ledбуде ім’ям, визначеним у редакторі Qt Designer.
Він базується на віджеті LED.
2.28. StatusAdjustmentBar - Віджет налаштування значень контролера
Цей віджет дозволяє встановлювати значення за допомогою кнопок під час відображення панелі.
Він також має додаткову кнопку перемикання високого/низького рівня, яку можна утримувати для встановлення рівнів.
Віджет може налаштовувати:
-
Швидкість штовхання
-
Швидкість кутового поштовху
-
Швидкість подачі
-
Швидкість корекції шпинделя
-
Швидка швидкість перевизначення
Він базується на QProgressBar PyQt.
2.29. SystemToolButton - Віджет вибору системи користувача
Цей віджет дозволяє вам вручну вибрати систему користувача G5x, натиснувши та утримуючи.
Якщо ви не встановите текст кнопки, він автоматично оновиться до поточної версії системи.
Він базується на QToolButton PyQt.
2.30. StateEnableGridlayout - Віджет контейнера з увімкненим станом контролера
_вимкніть віджети всередині нього залежно від поточного стану LinuxCNC_.
Це контейнер, в який можна розміщувати інші віджети.
Вбудовані віджети будуть сірими, коли StateEnableGridlayout вимкнено.
Він може вибірково реагувати на:
-
Машина ввімкнена
-
Інтерпретатор неактивний
-
Аварійна зупинка вимкнена
-
Усі домашні
Він базується на QGridLayout PyQt.
2.31. StatusImageSwitcher - Віджет перемикання зображень стану контролера
Цей віджет відображатиме зображення на основі статусу LinuxCNC.
Ви можете переглянути:
-
стан шпинделя,
-
стан усіх, хто має житло,
-
стан певної осі, що знаходиться в головному положенні,
-
стан жорстких обмежень.
Він базується на FIXME від PyQt
2.32. ToolOffsetView - Інструменти Зміщення Перегляд та редагування Віджет
ToolOffsetView: Інструменти Зміщення Перегляд та редагування ВіджетЦей віджет відображає та дозволяє змінювати зміщення інструментів.
Він оновить таблицю інструментів LinuxCNC для внесених або знайдених змін.
Налаштування інструмента можна змінити в LinuxCNC лише після повернення до початкового положення та коли контролер руху не використовується.
Відображення та введення змінюватимуться між метричною та імперською системами залежно від поточних налаштувань G20/G21 LinuxCNC.
Поточний інструмент, що використовується, буде виділено, а поточний вибраний інструмент буде виділено іншим кольором.
Прапорець поруч із кожним інструментом можна використовувати для вибору дії, яка залежить від додаткового коду, доданого до комбінованого віджета, такого як діалогове вікно toolOffsetView або код обробника екранів.
Типовими діями є «завантажити вибраний інструмент», «видалити вибрані інструменти» тощо.
Клацання по стовпцях і рядках дозволяє налаштувати параметри.
Для введення даних або тексту можна налаштувати спливаюче діалогове вікно.
Розділ коментарів зазвичай відображається в діалоговому вікні ручної зміни інструменту.
Якщо використовується конфігурація токарного верстата, можуть бути стовпці для зносу по осях X та Z.
Щоб використовувати ці стовпці для налаштування зносу інструменту, потрібна переналаштована процедура зміни інструменту.
Він базується на QTableView, QAbstractTableModel та ItemEditorFactory PyQt.
Властивості, функції та стилі базових об’єктів PyQt завжди доступні.
ToolOffsetView має властивості, які можна встановити в Qt Designer, у коді обробника Python або (якщо це доречно) у таблицях стилів:
-
dialog_code_string -
Встановлює, яке діалогове вікно з’явиться для введення чисел.
-
text_dialog_code_string -
Встановлює, яке діалогове вікно з’явиться після введення тексту.
-
metric_template -
Формат числових даних у метричній системі.
-
imperial_template -
Імперський числовий формат даних.
-
styleCodeHighlight -
Поточний колір виділення інструменту, що використовується.
-
styleCodeSelected -
Вибраний колір виділення.
У файлі обробника:
self.w.tooloffsetview.setProperty('dialog_code','CALCULATOR') self.w.tooloffsetview.setProperty('metric_template','%10.3f')
і в таблицях стилів:
ToolOffsetView{ qproperty-styleColorHighlist: lightblue; qproperty-styleColorSelected: #444; }
ToolOffsetView має деякі функції, корисні для розробників екранів для додавання дій:
-
add_tool() -
Додає порожній інструмент-заповнювач (99), який користувач може редагувати відповідно до своїх потреб.
-
delete_tools() -
Видаляє інструменти, вибрані з поточного прапорця.
-
get_checked_list() -
Повертає список інструментів, вибраних за допомогою прапорців.
-
set_all_unchecked() -
Зніміть позначки з усіх вибраних інструментів.
self.w.tooloffsetview.add_tool() self.w.tooloffsetview.delete_tools() toolList = self.w.tooloffsetview.get_checked_list() self.w.tooloffsetview.set_all_unchecked()
2.33. VersaProbe - Віджет зондування фрезерування
VersaProbe: Віджет зондування фрезеруванняВіджет для зондування на фрезерному верстаті. Використовується екраном QtDragon.
3. Віджети діалогових вікон
Діалогові вікна використовуються для презентації або запиту негайно необхідної інформації цілеспрямованим чином.
Типові діалогові вікна, що використовуються, можна завантажити за допомогою віджета ScreenOptions.
Ви також можете додати їх безпосередньо до UI, але кожне діалогове вікно повинно мати унікальну назву запуску, інакше ви побачите кілька діалогових вікон, що відображатимуться одне за одним.
Ви можете відображати діалогові вікна безпосередньо за допомогою коду Python, але безпечніший спосіб — використовувати повідомлення STATUS для запиту запуску діалогового вікна та повернення зібраної інформації.
-
Зареєструйтесь на каналі
STATUS:
Щоб налаштувати це, спочатку зареєструйтесь, щоб отримувати повідомленняgeneralвідSTATUS:STATUS.connect('general',self.return_value)
-
Додати функцію для виклику діалогового вікна:
Ця функція повинна створити повідомленняdictдля відправки в діалогове вікно.
Це повідомлення буде передано назад у загальному повідомленні з додаванням `повернення змінної.
До повідомлення можна додати додаткову інформацію про користувача. Діалогове вікно проігнорує її і передасть назад.-
NAME -
Запускає кодову назву діалогового вікна для відображення.
-
ID -
Унікальний ідентифікатор, щоб ми обробляли лише запитуваний нами діалог.
-
TITLE -
Заголовок, який буде використано в діалоговому вікні.
def show_dialog(self): mess = {'NAME':'ENTRY','ID':'__test1__', 'TITLE':'Test Entry'} ACTION.CALL_DIALOG, mess)
-
-
Додайте функцію зворотного виклику, яка обробляє загальне повідомлення:
Майте на увазі, що ця функція отримає всі загальні повідомлення, тому не гарантується, що ключові іменаdictбудуть там. Рекомендується використовувати функцію.get()та/абоtry/except. Ця функція повинна:-
перевірте, чи ім’я та ідентифікатор такі ж, як ми надіслали,
-
потім витягніть повернене значення та будь-які змінні користувача.
# обробити повідомлення про повернення STATUS def return_value(self, w, message): rtn = message.get('RETURN') code = bool(message.get('ID') == '__test1__') name = bool(message.get('NAME') == 'ENTRY') if code and name and not rtn is None: print('Entry return value from {} = {}'.format(code, rtn))
-
3.1. LcncDialog - Віджет загального діалогового вікна повідомлень
Це загальний віджет діалогового вікна повідомлень.
Якщо присутній віджет Focus Overlay, він може сигналізувати про його відображення.
Якщо бібліотеку звуків налаштовано, вона може відтворювати звуки.
Існують параметри, які можна встановити під час запиту діалогу, вони будуть додані до повідомлення dict.
-
TITLE -
Заголовок діалогового вікна.
-
MESSAGE -
Текст заголовка повідомлення виділено жирним шрифтом.
-
MORE -
Стандартний текст під заголовком.
-
DETAILS -
Початковий прихований текст.
-
TYPE(OK|YESNO|OKCANCEL) -
ICON(QUESTION|INFO|CRITICAL|WARNING) -
PINNAME -
Ще не впроваджено.
-
FOCUSTEXT(overlay text|None) -
Текст, який буде відображатися, якщо використовується накладання фокуса. Використовуйте «Немає», якщо тексту немає.
-
FOCUSCOLOR(QColor(_R, G, B, A_)) -
Колір, який буде використано, якщо використовується накладання фокуса.
-
PLAYALERT -
Звук, який відтворюватиметься, якщо звук доступний, наприклад,
SPEAK<розмовлене_повідомлення> .
Під час використання функції request-dialog класу STATUS, ім’я запуску за замовчуванням — MESSAGE.
Він базується на QMessagebox PyQt.
3.2. ToolDialog - Віджет діалогового вікна ручної зміни інструментів
ToolDialog: Діалогове вікно ручної зміни інструментуЦе використовується як підказка для ручної зміни інструменту.
Він має виводи HAL для підключення до контролера верстата. Виводи мають назви та ж самі, що й у оригінальному інструкційному посібнику AXIS, і працюють так само.
Діалогове вікно зміни інструменту можна запустити лише за допомогою контактів HAL.
Якщо присутній віджет Focus Overlay, він сповістить про його відображення.
Він базується на QMessagebox PyQt.
3.3. FileDialog - Віджет діалогу вибору файлів для завантаження та збереження
FileDialog: Віджет вибору файлів для завантаження та збереженняЦе використовується для завантаження файлів G-коду.
Якщо присутній віджет Focus Overlay, він сповістить про його відображення.
Під час використання функції request-dialog класу STATUS, назви запуску за замовчуванням - LOAD або SAVE.
Існують параметри, які можна встановити під час запиту діалогу, вони будуть додані до словника повідомлення:
-
EXTENSIONS -
FILENAME -
DIRECTORY -
Приклад виклику Python для завантаження діалогу:
mess = {'NAME':'LOAD','ID':'_MY_DIALOG_', 'TITLE':'Load Some text File', 'FILENAME':'~/linuxcnc/nc_files/someprogram.txt', 'EXTENSIONS':'Text Files (*.txt);;ALL Files (*.*)' } ACTION.CALL_DIALOG(mess)
А також для діалогового вікна збереження
mess = {'NAME':'SAVE','ID':'_MY_DIALOG_', 'TITLE':'Save Some text File', 'FILENAME':'~/linuxcnc/nc_files/someprogram.txt', 'EXTENSIONS':'Text Files (*.txt);;ALL Files (*.*)' } ACTION.CALL_DIALOG(mess)
Він базується на QMessagebox PyQt.
3.4. OriginOffsetDialog - Віджет діалогового вікна налаштування зміщення походження
OriginOffsetDialog: Віджет налаштування зміщення походженняЦей віджет дозволяє безпосередньо змінювати зміщення походження системи користувача у діалоговому вікні.
Якщо присутній віджет Focus Overlay, він сигналізує про його відображення.
Під час використання функції request-dialog класу STATUS, ім’я запуску за замовчуванням — ORIGINOFFSET.
Він базується на QDialog від PyQt.
3.5. ToolOffsetDialog - Віджет діалогового вікна налаштування зміщення інструмента
ToolOffsetDialog: Віджет діалогового вікна налаштування зміщення інструментаЦей віджет дозволяє змінювати зміщення інструменту безпосередньо у діалоговому вікні.
Якщо присутній віджет Focus Overlay, він сигналізує про його відображення.
Під час використання функції request-dialog класу STATUS, ім’я запуску за замовчуванням — TOOLOFFSET.
Він базується на QDialog від PyQt.
3.6. ToolChooserDialog - Віджет діалогового вікна вибору інструментів
ToolChooserDialog: Віджет діалогового вікна вибору інструментівЦей віджет дозволяє оператору вибрати один з інструментів, визначених у таблиці інструментів. Якщо інструмент вибрано і натиснуто кнопку «Застосувати» або двічі клацнуто на інструменті, діалогове вікно поверне номер вибраного інструменту. Це можна використовувати разом з віджетом OperatorValueLine, наприклад, для створення віджета зміни інструменту.
Якщо присутній віджет Focus Overlay, він сигналізує про його відображення.
Під час використання функції request-dialog класу STATUS, ім’я запуску за замовчуванням — TOOLCHOOSER.
Він базується на QDialog від PyQt.
3.7. MachineLog - Віджет відображення журналу подій машини
Цей віджет відображає різні повідомлення про події журналу, які були виведені системою протягом поточного сеансу. Це включає інформаційні повідомлення, а також помилки.
MachineLog: Журнал машинних подій у режимі machine_log (звичайний)
MachineLog: Журнал машинних подій у режимі machine_log_severityМожуть відображатися два різних типи журналів:
-
журнал машини (звичайний текст або виділено рівень серйозності)
-
журнал інтегратора (лише звичайний текст)
Тип журналу, що відображається віджетом, контролюється властивостями опції віджета. Вибравши machine_log_option або integrator_log_option, буде відображено відповідний журнал. Ці опції відображатимуть журнали у простому стилі у віджеті Qt QTextEdit.
Крім того, можна вибрати властивість machine_log_severity_option, яка відображатиме журнал машини різними кольорами залежно від важливості повідомлення, використовуючи QTableWidget. Кольори можна налаштувати за допомогою властивостей віджета.
3.7.1. Видача повідомлень журналу з рівнем серйозності
Серйозність передається через значення option, яке надсилається разом із сигналом STATUS під назвою update-machine-log. Параметр option – це список, розділений комами, який зазвичай містить
``` text = an error has occurred. STATUS.emit(update-machine-log, text, TIME,ERROR) ```
3.7.2. Очищення журналу
Журнал можна очистити, викликавши метод clear() віджета.
3.8. MacroTabDialog - Віджет діалогового вікна запуску макросів
Це діалогове вікно для відображення віджета макровкладки.
MacroTab відображає вибір макропрограм для запуску за допомогою піктограм.
Якщо присутній віджет Focus Overlay, він сповістить про його відображення.
Під час використання функції request-dialog класу ``STATUS``, ім’я запуску за замовчуванням — MACROTAB.
Він базується на QDialog від PyQt.
3.9. CamViewDialog - Віджет діалогового вікна вирівнювання деталей веб-камери
Це діалогове вікно для відображення віджета CamView для вирівнювання деталей веб-камери.
Під час використання функції request-dialog класу ``STATUS``, ім’я запуску за замовчуванням — CAMVIEW.
Він базується на QDialog від PyQt.
3.10. EntryDialog - Віджет діалогового вікна редагування рядка
Це діалогове вікно для відображення рядка редагування для введення інформації, такої як зміщення початку координат.
Він повертає запис через повідомлення STATUS, використовуючи Python DICT.
DICT містить щонайменше назву запитуваного діалогу та ідентифікаційний код.
Під час використання функції request-dialog класу ``STATUS``, ім’я запуску за замовчуванням — ENTRY.
Він базується на QDialog від PyQt.
3.11. CalculatorDialog - Віджет діалогового вікна калькулятора
Це діалогове вікно для відображення калькулятора для введення чисел, таких як зміщення від початку координат, оберти шпинделя тощо. Воно призначене в першу чергу для використання на сенсорному екрані, але також підтримує введення з фізичної клавіатури.
CalculatorDialog: Віджет діалогового вікна калькулятораВін повертає запис через повідомлення STATUS, використовуючи Python DICT.
DICT містить щонайменше назву запитуваного діалогу та ідентифікаційний код.
Під час використання функції request-dialog класу ``STATUS``, ім’я запуску за замовчуванням — CALCULATOR.
Він базується на QDialog від PyQt.
3.11.1. Параметри файлу налаштувань
У розділі CALCULATOR файлу налаштувань можна встановити такі параметри:
-
constValuesList- список загальних значень, розділених комами, які ви можете ввести і які з’являться на спеціальному рядку кнопок внизу калькулятора. Наприклад, при встановленні значення0.100, -0.100з’являться дві кнопки для +0.100 і -0.100, які часто використовуються при пошуку країв на дюймових фрезах. Можна ввести до шести (6) значень, після чого список буде обрізаний. Значення повинні бути дійсними числами з плаваючою комою або цілими числами. -
onShowBehavior- Список необов’язкових дій, які будуть активовані, коли відображається діалогове вікно калькулятора. Кожну опцію потрібно розділяти комою.-
CLEAR_ALLвидавати команду Очистити все щоразу, коли відображається калькулятор. Це очистить усі попередньо введені значення з моменту останнього використання калькулятора та відкриє його зі значенням відображення, встановленим на0 -
FORCE_FOCUSпримусово фокусує поле введення калькулятора, коли відображається віджет. Це дозволить фізичній клавіатурі правильно вводити дані у віджет без додаткових кліків. Також це має побічний ефект вибору поточного значення, так що введення з фізичної клавіатури замінить існуюче значення, якщо вибір тексту не буде змінено.
-
-
acceptOnReturnKey- Якщо встановлено значенняTrue, калькулятор прийме поточне значення і закриє діалогове вікно при натисканні клавіші повернення/введення на клавіатурі. Якщо встановлено значенняFalse, клавіша повернення буде проігнорована і необхідно натиснути кнопку Застосувати. У випадках, коли доступна кнопка Застосувати наступне, клавіша повернення виконає цю дію, а діалогове вікно залишиться відкритим.
3.11.2. Підтримка фізичної клавіатури
Хоча метою цього віджета є забезпечення зручного інтерфейсу для сенсорного екрану, для введення значень можна використовувати фізичну клавіатуру, зазвичай цифрову. Клавіші працюють в основному так, як і слід очікувати, але є також кілька спеціальних функцій клавіш:
-
Клавіша Enter або Return еквівалентна оператору Equal (=) у випадках, коли обчислення знаходиться в стані очікування. В іншому випадку вона виконуватиме функцію Apply, якщо вона ввімкнена через налаштування
acceptOnReturnKey. -
Клавіша «мінус» (-) змінює знак поточного числа на дисплеї калькулятора, якщо натиснути її двічі поспіль. В іншому випадку, якщо натиснути її тільки один раз, вона виконає операцію віднімання, як і очікується.
-
Alt+стрілка вліво виконає функцію Назад, переходячи до попереднього поля, якщо це підтримується.
-
Alt+Стрілка вправо виконає функцію Далі, переходячи до наступного поля, якщо це підтримується.
-
Alt+Backspace призведе до виходу з калькулятора та не поверне значення для викликаючого віджета.
3.12. RunFromLine - Віджет діалогового вікна «Запустити з рядка»
RunFromLine: Віджет діалогового вікна «Запустити з рядка»Діалогове вікно для попереднього встановлення параметрів шпинделя перед запуском програми з певного рядка.
Він базується на QDialog від PyQt.
3.13. VersaProbeDialog - Віджет діалогового вікна дотику до деталі
VersaProbeDialog: Віджет діалогового вікна дотику до деталіЦе діалогове вікно для відображення екрана зондування деталі на основі Verser Probe v2.
Він базується на QDialog від PyQt.
3.14. MachineLogDialog - Віджет діалогового вікна журналів машини та налагодження
MachineLogDialog: Віджет діалогового вікна журналів машини та налагодженняЦе діалогове вікно для відображення журналу машини та журналу налагодження QtVCP.
Він базується на QDialog від PyQt.
4. Інші віджети
Інші доступні віджети:
4.1. NurbsEditor - Віджет редагування NURBS
NurbsEditor: Віджет редагування NURBSРедактор NURBS дозволяє вам маніпулювати геометрією на основі NURBS на екрані, а потім конвертувати NURBS у G-код.
Ви можете редагувати G-код на екрані, а потім надіслати його до LinuxCNC.
Він базується на QDialog від PyQt.
4.2. JoyPad - 5-кнопковий віджет D-pad
Це базовий клас для віджета HALPad.
Цей віджет виглядає та працює як 5-кнопковий D-pad зі світлодіодними індикаторами в кільці.
Ви можете розмістити текст або значки в кожній з позицій кнопок.
Ви можете підключитися до вихідних сигналів, натиснувши кнопки.
Також є слоти введення для зміни кольору індикатора(ів).
Існують перелічувані константи, що використовуються для посилання на позиції індикаторів.
Вони використовуються в редакторі властивостей редактора Qt Designer або в коді Python.
-
NONE -
LEFT,L -
RIGHT,R -
CENTER,C -
TOP,T -
BOTTOM,B -
LEFTRIGHT,X -
TOPBOTTOM,A -
Для коду обробника Python ви використовуєте назву віджета в Qt Designer плюс константу посилання:
self.w.joypadname.set_highlight(self.w.joypadname.LEFT)
def _pressedOutput(self, btncode): self.joy_btn_pressed.emit(btncode) self[''.format(btncode.lower())].emit(True) def _releasedOutput(self, btncode): self.joy_btn_released.emit(btncode) self['joy_{}_pressed'.format(btncode.lower())].emit(False)
Згідно з кодом, ці функції issue (випромінюють) сигнали PyQt5 (joy_btn_pressed та joy<літера>_pressed) для будь-якого натискання або відпускання кнопки_.
Сигнал joy_btn_pressed виводить рядковий код для кнопки.
Сигнал joy_<літера>_pressed виводить логічне значення.
Ви можете перевизначити функції, щоб вони виконували щось інше, якщо створюєте власний віджет:
-
reset_highlight() -
Очищає індикатор виділення.
-
set_highlight(_button_, state=_True_) -
Встановіть індикатор підсвічування в позиції
buttonу станstate.
Ви можете використовувати рядки_літер (LRCTBXA) або позиціюENUMSяк аргумент кнопки. -
set_button_icon(_button_, _pixmap_) -
Встановлює розпізнавальну карту значка кнопки.
-
set_button_text(_button_, _text_) -
Встановлює текст значка кнопки.
-
set_tooltip(_button_, _text_) -
Встановлює описовий текст спливаючої підказки для кнопок.
-
setLight(_state_) -
Встановлює для індикатора підсвічування колір
TrueабоFalse.
Функціюset_highlight()необхідно використовувати перед встановленням індикатора.
Ці сигнали будуть надсилатися при натисканні кнопок.
До них можна підключитися в редакторі Qt Designer або в коді Python.
Перші два виводять рядок, який вказує на натиснуту кнопку:
-
joy_btn_pressed(string) -
joy_btn_released(string) -
joy_l_pressed(bool) -
joy_l_released(bool) -
joy_r_pressed(bool) -
joy_r_released(bool) -
joy_c_pressed(bool) -
joy_c_released(bool) -
joy_t_pressed(bool) -
joy_t_released(bool) -
joy_b_pressed(bool) -
joy_b_released(bool) -
Вони базуються на Signal від PyQt (QtCore.pyqtSignal())
До слотів можна підключитися в редакторі Qt Designer або коді Python:
-
set_colorStateTrue() -
set_colorStateFalse() -
set_colorState(_bool_) -
set_true_color(_str_) -
set_true_color(_qcolor_) -
set_false_color(_str_) -
set_false_color(_qcolor_) -
Їх можна встановити в таблицях стилів або коді Python:
-
highlightPosition -
Встановіть положення індикатора.
-
setColorState -
Виберіть колірний стан індикатора.
-
left_image_path -
right_image_path -
center_image_path -
top_image_path -
bottom_image_path -
Шлях до файлу або ресурсу зображення, яке буде відображатися в зазначеному місці кнопки.
Якщо в редакторі Qt Designer натиснути кнопку «Скинути», зображення не буде відображатися (замість нього можна відобразити текст). -
left_text -
right_text -
center_text -
top_text -
bottom_text -
Текстовий рядок, який буде відображено в описаному місці кнопки.
Якщо залишити поле порожнім, можна призначити зображення для відображення. -
true_color -
false_color -
Вибір кольору для центрального світлодіодного кільця, яке буде відображатися, коли контакт
BASENAME.light.centerHAL має значенняTrueабоFalse. -
text_color -
Вибір кольору для тексту кнопки.
-
button_font -
Вибір шрифту для тексту кнопки.
Вищезазначені властивості можна встановити в:
-
Таблиці стилів:
Зазвичай для встановлення окремих властивостей віджетів використовується ім’я віджета Qt Designer з префіксом#, в іншому випадку для встановлення однакових властивостей для всіх віджетівJoyPadвикористовується ім’я класуJoyPad:#joypadname{ qproperty-true_color: #000; qproperty-false_color: #444; }
-
У коді обробника Python:
self.w.joypadename.setProperty('true_color','green') self.w.joypadename.setProperty('false_color','red')
4.3. WebWidget
Цей віджет створить сторінку перегляду html/pdf за допомогою бібліотек QtWebKit або QtWebEngine. Якщо в системі є обидві бібліотеки, краще використовувати нову QtWebEngine.
Якщо бібліотека QtWebEngine використовується з редактором Qt Designer, в Qesigner з’явиться замінник QWidget. Він буде замінений віджетом QtWebEngine під час виконання.
5. Віджети BaseClass/Mixin
Ці віджети використовуються для поєднання різних властивостей та поведінки в інші віджети.
Ви побачите їх як згортальний заголовок у стовпці властивостей Qt Designer.
5.1. IndicatedPushButtons
Цей клас змінює поведінку QPushButton.
5.1.1. Варіант індикатора
indicator_option розміщує «світлодіод» у верхній частині кнопки.
PushButton: Кнопкова індикація, варіант світлодіодного індикатораЦе може бути трикутник, коло, верхня смуга або бічна смуга.
Світлодіоди трикутник і коло можуть відображати подвійні вертикальні світлодіоди, кожен з яких має власний контакт HAL. + Розмір і положення можна регулювати.
Це вказуватиме:
-
поточний стан кнопки, або
-
стан виводу HAL, або
-
Статус LinuxCNC.
Ці властивості доступні для налаштування індикатора (не всі вони застосовні до кожної форми світлодіода):
-
doubleIndicator -
До трикутних або круглих світлодіодів додайте другий вертикальний світлодіод.
-
on_color -
off_color -
flashIndicator -
Коли індикатор спрацює, світлодіод блимає.
-
Швидкість спалаху -
Частота миготіння
-
indicator_size -
Розмір трикутного світлодіода
-
circle_diameter -
Діаметр круглого світлодіода
-
shape_option -
Тип форми світлодіода 0-4
-
right_edge_offset -
Відстань від правого краю
-
top_edge_offset -
Простір від верхнього краю
-
height_fraction -
Використовується для світлодіодних панелей
-
width_fraction -
Використовується для світлодіодних панелей
-
corner_radius -
Радіус кута індикатора.
Колір світлодіодного індикатора можна визначити в stylesheet за допомогою наступного коду, доданого до файлу .qss:
Indicated_PushButton{ qproperty-on_color: #000; qproperty-off_color: #444; }
Або для певної кнопки:
Indicated_PushButton #button_estop{ qproperty-on_color: black; qproperty-off_color: yellow; }
IndicatedPushButton мають ексклюзивні опції:
-
indicator_HAL_pin_option -
Додає
halpinз назвою<buttonname>-led, який керує станом індикатора кнопки. -
indicator_status_option -
Змушує світлодіод відображати стан цих вибраних статусів LinuxCNC:
-
Зупинено
-
Увімкнено
-
Усі Homed
-
Є спільним житлом
-
Бездіяльність
-
Призупинено
-
Повінь
-
Туман
-
Видалення блоку
-
Додаткова зупинка
-
Керівництво
-
MDI
-
Авто
-
Шпиндель зупинився
-
Шпиндель вперед
-
Зворотний рух шпинделя
-
На межі
Деякі
indicator_status_optionsмістять властивість, яку можна використовувати з stylesheet для зміни кольору кнопки залежно від стану властивості в LinuxCNC.
Наразі ці властивості стану можна використовувати для автоматичного стилювання кнопок:-
is_estopped_statusперемикатиме властивістьisEstop -
is_on_statusперемикатиме властивістьisStateOn -
is_manual_status,is_mdi_status,is_auto_statusперемикатимуть властивостіisManual,isMDI,isAuto. -
is_homed_statusвмикає/вимикає властивість isAllHomed
-
Ось приклад запису таблиці стилів, який встановлює фон віджетів кнопок режиму, коли LinuxCNC перебуває в цьому режимі:
ActionButton[isManual=true] { background: red; } ActionButton[isMdi=true] { background: blue; } ActionButton[isAuto=true] { background: green; }
Ось як вказати певний віджет за його objectName у Qt Designer:
ActionButton #estop button [isEstopped=false] { color: yellow; }
5.1.2. Увімкнено станом LinuxCNC
Часто необхідно вмикати та виключати кнопку залежно від стану контролера руху LinuxCNC.
Є кілька властивостей, які можна вибрати для допомоги в цьому:
-
isAllHomedSentive -
isOnSensitive -
isIdleSensitive -
isRunSensitive -
isRunPausedSensitive -
isManSensitive -
isMDISensitive -
isAutoSensitive -
Ви можете вибрати кілька властивостей для об’єднаних вимог.
5.1.3. Зміни тексту щодо стану
Вибір опції checked_state_text_option дозволяє кнопці з можливістю перевірки змінювати текст на основі її позначеного стану.
Він використовує такі властивості для визначення тексту для кожного стану:
-
true_state_string -
false_state_string -
\\nбуде перетворено на новий рядок.
Ви можете встановити/змінити їх у таблицях стилів:
ActionButton #action_aux{ qproperty-true_state_string: "Air\\nOn"; qproperty-false_state_string: "Air\\nOff"; }
5.1.4. Виклик команд Python у стані
Опція python_command_option дозволяє запускати невеликі фрагменти коду Python одним натисканням кнопки, без необхідності редагування файлу обробника. Однак, вона може викликати функції у файлі обробника.
Під час використання властивостей command_string.
-
true_python_cmd_string -
Команда Python, яка буде викликана, коли значення кнопки перемикається на
True. -
false_python_cmd_string -
Команда Python, яка буде викликана, коли значення кнопки перемикається на
False.
Спеціальні слова з великої літери нададуть доступ до наступного:
-
ПРИМЕР -
Надасть доступ до екземплярів віджетів та функцій обробника.
Наприклад,INSTANCE.my_handler_function_call(True) -
ДІЯ -
Надасть доступ до бібліотеки
ACTIONQtVCP.
Наприклад,ACTION.TOGGLE_FLOOD() -
PROGRAM_LOADER -
Надасть доступ до бібліотеки
PROGRAM_LOADERQtVCP.
Наприклад,PROGRAM_LOADER.load_halshow() -
HAL -
Надасть доступ до модуля Python HAL.
Наприклад,HAL.set_p('motion.probe-input','1')
6. Віджети лише для імпорту
Ці віджети зазвичай є базовим класом віджетів для інших віджетів QtVCP.
Вони недоступні безпосередньо з редактора Qt Designer, але їх можна імпортувати та вставити вручну.
Їх також можна розділити на підкласи, щоб створити подібний віджет з новими функціями.
6.1. Автоматична висота
Віджет для вимірювання двох висот за допомогою зонда.
Для налаштування.
6.2. Утиліта G-коду
Віджети для виконання поширених процесів обробки.
6.3. Облицювання
Облицювання плитою або облицюванням визначеної області за допомогою різних стратегій.
6.4. Коло отворів
Просвердліть кілька отворів по колу для болтів.
6.5. Збільшити отвір
Використовуйте торцеву фрезу для розширення просвердленого отвору.
6.6. Qt NGCGUI
Версія селектора підпрограм NGC у QtVCP (показано, як використовується в QtDragon).
6.6.1. Налаштування INI
LinuxCNC потрібно знати, де шукати для запуску підпрограм.
Якщо підпрограма викликає інші підпрограми або власні M-коди, ці шляхи також необхідно додати.
[RS274NGC] SUBROUTINE_PATH = ~/linuxcnc/nc_files/examples/ngcgui_lib:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs
QtVCP має знати, звідки відкривати підпрограми.
Ви також можете вказати підпрограми, які потрібно попередньо відкрити у вкладках.
[DISPLAY] # Шлях до підпрограми NGCGUI. # Цей шлях також повинен бути вказаний в [RS274NGC] SUBROUTINE_PATH NGCGUI_SUBFILE_PATH = ~/linuxcnc/nc_files/examples/ngcgui_lib # попередньо вибрані вкладки програм # вкажіть тільки імена файлів, файли повинні бути в NGCGUI_SUBFILE_PATH NGCGUI_SUBFILE = slot.ngc NGCGUI_SUBFILE = qpocket.ngc
6.6.2. Кпонки
-
NEW TAB - додати нову порожню вкладку до NGCGUI
-
SELECT PREAMBLE - виберіть файл, який додає G-код преамбули
-
SELECT SUBFILE - вибрати файл підпрограми NGCGUI
-
SELECT POST - виберіть файл, який додає G-код посту
-
REREAD FILE - перезавантажити файл підпрограми
-
CREATE FEATURE - додати функцію до списку
-
RESTART FEATURE - вилучає всі функції зі списку
-
FINALIZE GCODE - створити повний G-код та надсилати його до файлу LinuxCNC/a
6.6.3. Додавання користувацьких підпрограм
Ви можете створювати власні підпрограми для використання з NGCGUI. Вони повинні відповідати таким правилам:
-
Для створення підпрограми для використання з NGCGUI ім’я файлу та ім’я підпрограми мають збігатися.
-
Підпрограма має знаходитися в папці в межах шляху пошуку INI-файлу LinuxCNC.
-
У першому рядку може бути коментар типу info:
-
Підпрограма має бути оточена тегами sub та endsub.
-
Використані змінні повинні бути пронумерованими змінними та не повинні пропускати номер.
-
Можуть бути включені коментарі та пресети.
-
Якщо в папці є файл зображення з такою ж назвою, він буде відображений.
(info: feedrate -- simple example for setting feedrate) o<feedrate> sub #<feedrate> = #1 (= 6 Швидкість подачі) ; коментарі в дужках будуть відображатися в ngcui f#<feedrate> o<feedrate> endsub
6.7. Qt PDF
Дозволяє додавати на екран PDF-файли, що можна завантажити.
6.8. Qt Vismach
Використовуйте це для створення/додавання машин, що імітують OpenGl.
6.9. Коробка вибору Hal
Цей віджет являє собою вибраний список, який дозволяє вибрати пін-код або сигнал у системі.
from qtvcp.widgets.hal_selectionbox import HALSelectionBox def buildComboBox(self): # комбінований список для вибору контактів HAL combobox = HALSelectionBox() combobox.setShowTypes([combobox.PINS,combobox.SIGNALS]) combobox.setPinTypes([combobox.HAL_BIT], direction = [combobox.HAL_IN]) combobox.setSignalTypes([combobox.HAL_BIT], driven = [False,True]) combobox.hal_init() combobox.selectionUpdated.connect(lambda w: self.signalSelected(w)) def signalSelected(self, sig): print('Watching:',sig)
Є виклики функцій
# встановити список типів для відображення з: PINS SIGNALS combobox.setShowTypes([combobox.PINS]) # встановити типи виводів для відображення: HAL_BIT,HAL_FLOAT,HAL_S32,HAL_U32 # та список напрямків: HAL_IN HAL_OUT combobox.setPinTypes(types=[combobox.HAL_BIT], direction = [HAL_IN]) # встановити типи сигналів для відображення: HAL_BIT,HAL_FLOAT,HAL_S32,HAL_U32 # та список керованих/некерованих (підключеним виводом) для відображення combobox.setSignalTypes( types=[combobox.HAL_BIT], driven = [True,True])