Какой самый кошерный путь для самопального устройства?
1.Модуль ядра
2.HIDAPI
3.CDC
Третий вариант самый простой и по сути уже отработанный, первый вариант заманчив, но какой профит, кроме опыта, это даст? HIDAPI трогал как-то в одном проекте, что это даст кроме кроссплатформы?
Не работает, делаю по кальке с PyQt4.
Что я делаю не так?
#!/usr/bin/env python
"""
AnalogViewPlugin.py
"""
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QAction
from PyQt5.QtDesigner import (QDesignerFormWindowInterface, QExtensionFactory,
QPyDesignerContainerExtension, QPyDesignerCustomWidgetPlugin,
QPyDesignerPropertySheetExtension, QPyDesignerTaskMenuExtension)
from analogview import AnalogView
class GeoLocationMenuEntry(QPyDesignerTaskMenuExtension):
def __init__(self, obj, parent):
QPyDesignerTaskMenuExtension.__init__(self, parent)
self.editStateAction = QAction('dddd', self)
self.editStateAction.clicked.connect(self.setPV)
def preferredEditAction(self):
return self.editStateAction
def taskActions(self):
return [self.editStateAction]
@pyqtSlot()
def setPV(self):
pass
class GeoLocationTaskMenuFactory(QExtensionFactory):
def __init__(self, parent=None):
QExtensionFactory.__init__(self, parent)
def createExtension(self, obj, iid, parent):
if iid != "com.trolltech.Qt.Designer.TaskMenu":
return None
if isinstance(obj, AnalogView):
return GeoLocationMenuEntry(obj, parent)
return None
########################
class AnalogViewPlugin(QPyDesignerCustomWidgetPlugin):
"""AnalogViewPlugin(QPyDesignerCustomWidgetPlugin)
Provides a Python custom plugin for Qt Designer by implementing the
QDesignerCustomWidgetPlugin via a PyQt-specific custom plugin class.
"""
# The __init__() method is only used to set up the plugin and define its
# initialized variable.
def __init__(self, parent=None):
super(AnalogViewPlugin, self).__init__(parent)
self.initialized = False
def initialize(self, formEditor):
if self.initialized:
return
manager = formEditor.extensionManager()
if manager:
self.factory = GeoLocationTaskMenuFactory(manager)
manager.registerExtensions(self.factory, "com.trolltech.Qt.Designer.TaskMenu")
self.initialized = True
def isInitialized(self):
return self.initialized
# This factory method creates new instances of our custom widget with the
# appropriate parent.
def createWidget(self, parent):
widget = AnalogView(parent)
# widget.setValue(1)
return widget
# This method returns the name of the custom widget class that is provided
# by this plugin.
def name(self):
return "AnalogView"
# Returns the name of the group in Qt Designer's widget box that this
# widget belongs to.
def group(self):
return "SCADA"
# Returns the icon used to represent the custom widget in Qt Designer's
# widget box.
def icon(self):
return QIcon()
# Returns a short description of the custom widget for use in a tool tip.
def toolTip(self):
return ""
# Returns a short description of the custom widget for use in a "What's
# This?" help message for the widget.
def whatsThis(self):
return ""
# Returns True if the custom widget acts as a container for other widgets;
# otherwise returns False. Note that plugins for custom containers also
# need to provide an implementation of the QDesignerContainerExtension
# interface if they need to add custom editing support to Qt Designer.
def isContainer(self):
return False
# Returns an XML description of a custom widget instance that describes
# default values for its properties. Each custom widget created by this
# plugin will be configured using this description.
def domXml(self):
return '<widget class="AnalogView" name="analogView" />\n'
# Returns the module containing the custom widget class. It may include
# a module path.
def includeFile(self):
return "analogview"
Создал QtProperty со стрингом, но в дизайнере его можно редактировать только в поле, а как вызвать встроенный редактор (Text Editor или StyleSheet Editor), а в идеале как прикрутить свой велосипед на редактирование?
Короче, захотел написать виджет-плагин к дизайтеру, в общем сделал через визард пользовательский виджет, написал код, всё ОК, в дизайнере появился на форму добавляется, но когда компилишь с ним приложение он ругается на что-то странное:
ui_mainwindow.h:39: ошибка: undefined reference to `AnalogView::AnalogView(QWidget*)'
Что не так, в интернетах у многих такая проблема, как решить? Просто я в кутях и плюсах дилетант.
Пытаюсь сделать мини-скаду, для своих нужд, со сбором данных с плк и архивированием, проблем нет, хочется няшного, а именно редактора форм (HMI), у кого есть опыт в таком?
Хочется странное, хочу нормальную механическую клаву, кроме няшной модели М не знаю, хотел заказать unicomp classic, но буржуи - русофобы и не доставляют в Россию. Что блин делать? Есть варианты? Или только вторичка на ебей? Чёрные модели не предлагать, это для школьников, хочу классический стиль, либо белый или бежевый.
Яндекс макет выдаёт дичь для школоты, не клавы, а ёлочные герлянды.
Есть flatpak c vscode, юзаю для разработки на golang. Но проблема в том что flatpak не цепляет локальных путей, ну например GOPATH. Как быть? Система Fedora 28.
Установил Федору, на ThinkPad t430. При подключение через провод работает только со статикой, по dhcp нет. Пробовал на лайф сиди убунты, все ок. Маки одинаковые.
Есть кластер на кубе, на котором крутятся на данный момент всякие вебгуйни, хочется на куб натянуть postgres с репликами. В качестве хранилища NFS между нодами.