Esempio n. 1
0
class ScheduleView(QWidget):
    def __init__(self, parent=None):
        QWidget.__init__(self, parent=parent)
        self._presenter = SchedulePresenter(self)
        self._widget = QQuickWidget(self)
        self.setLayout(QHBoxLayout())
        self.layout().setContentsMargins(1, 1, 1, 1)
        self.layout().addWidget(self._widget)
        self._widget.setSizePolicy(QSizePolicy.Expanding,
                                   QSizePolicy.Expanding)
        self._widget.setResizeMode(QQuickWidget.SizeRootObjectToView)
        self._widget.rootContext().setContextProperty('scheduleView', self)
        self._widget.rootContext().setContextProperty('groupsModel', self)
        self._widget.setSource(
            QUrl('modules/schedule/scheduleForm/ScheduleForm.qml'))
        self.reqReprSchedules.connect(self.setModel)
        self.reqInitSchedule.connect(self.initSchedule)

    @pyqtSlot(int, name='changeWidth')
    def _changeWidth(self, _width):
        self.setFixedWidth(_width)

    _reqGroups = pyqtSignal(name='requireGroups')
    _reqSchedules = pyqtSignal(str,
                               name='requireSchedules',
                               arguments=['group'])
    _reqReprSchedules = pyqtSignal(QQuickItem,
                                   str,
                                   list,
                                   name='reqReprSchedules')
    _reqInitSchedule = pyqtSignal(QQuickItem, name='reqInitSchedule')

    @pyqtSlot(name='getGroups')
    def _getGroups(self):
        self.requireGroups.emit()

    def reprGroupsList(self, groups):
        self.setPropertyList('groupsModel', groups)

    def setPropertyList(self, objectName, values):
        self._widget.rootContext().setContextProperty(objectName, values)

    @pyqtSlot(str, name='getSchedules')
    def _getSchedules(self, group):
        self.requireSchedules.emit(group)

    def reprSchedules(self, schedules):
        self.reqReprSchedules.emit(self._widget.rootObject(),
                                   'setScheduleModel', schedules)

    @pyqtSlot(QQuickItem, str, list, name='setModel')
    def _setModel(self, obj, callF, values):
        QMetaObject.invokeMethod(obj, callF, Q_ARG(QVariant, values))

    @pyqtSlot(QQuickItem, name='initSchedule')
    def _initSchedule(self, obj):
        QMetaObject.invokeMethod(obj, "initSchedule")
Esempio n. 2
0
 def initTabWidget(self, tabWidget: ColorTabWidget, handle: ProjectReader):
     tabManager = TabManager(tabWidget, handle)
     # init qml main page list
     projectMainPage = QQuickWidget(tabWidget)
     projectMainPage.setResizeMode(QQuickWidget.SizeRootObjectToView)
     projectMainPage.setSource(
         QUrl.fromLocalFile('QML/ProjectMainPage.qml'))
     projectMainPage.setMinimumWidth(550)
     projectMainPage.setMinimumHeight(250)
     projectMainPage.setSizePolicy(QSizePolicy.Expanding,
                                   QSizePolicy.Expanding)
     obj_projectMainPage = projectMainPage.rootObject()
     # send main page init dict
     obj_projectMainPage.onInitMainPageItems(
         self.getProjectDetail(tabManager))
     obj_projectMainPage.sendData.connect(self.getData_ProjectMainPage)
     tabManager.qmlHandle = obj_projectMainPage
     tabManager.qmlWidget = projectMainPage
     tabWidget.addTab(projectMainPage, 'MainPage:MainPage')
     return tabManager