예제 #1
0
 def __init__(self, toolbox, name, description, references, x, y):
     """Class constructor."""
     super().__init__(name, description)
     self._toolbox = toolbox
     self._project = self._toolbox.project()
     self.item_type = "Data Connection"
     # self._widget = DataConnectionWidget(self, self.item_type)
     self.reference_model = QStandardItemModel()  # References to files
     self.data_model = QStandardItemModel(
     )  # Paths of project internal files. These are found in DC data directory
     self.datapackage_icon = QIcon(QPixmap(":/icons/datapkg.png"))
     self.data_dir_watcher = QFileSystemWatcher(self)
     # Make project directory for this Data Connection
     self.data_dir = os.path.join(self._project.project_dir,
                                  self.short_name)
     try:
         create_dir(self.data_dir)
         self.data_dir_watcher.addPath(self.data_dir)
     except OSError:
         self._toolbox.msg_error.emit(
             "[OSError] Creating directory {0} failed."
             " Check permissions.".format(self.data_dir))
     # Populate references model
     self.references = references
     self.populate_reference_list(self.references)
     # Populate data (files) model
     data_files = self.data_files()
     self.populate_data_list(data_files)
     self._graphics_item = DataConnectionImage(self._toolbox, x - 35,
                                               y - 35, 70, 70, self.name)
     self.spine_datapackage_form = None
     # self.ui.toolButton_datapackage.setMenu(self.datapackage_popup_menu)  # TODO: OBSOLETE?
     self._sigs = self.make_signal_handler_dict()
예제 #2
0
 def __init__(self, parent=None):
     super().__init__(parent)
     self._headers_model = QStandardItemModel()
     self._model = QStandardItemModel()
     self._calculator_interface = None
     self._project_dict = None
     self._log = None
예제 #3
0
 def _createModelFromData(self, headers_blocks, data_blocks):
     """Create the model needed for GUI calculated data table and chart (based on data 2d list created previously)."""
     if self._project.experimentsCount() > 1:
         print("Currently, only 1 measured datablock is supported. Given: ",
               self._project.experimentsCount())
     experiment_id = self._project.experimentsIds()[
         0]  # only 1st measured datablock is currently taken into account
     headers, data = headers_blocks[experiment_id], data_blocks[
         experiment_id]
     row_count = len(data)
     column_count = len(data[0])
     # set headers
     headerModel = QStandardItemModel(1, column_count)
     for column_index in range(column_count):
         index = headerModel.index(0, column_index)
         value = headers[column_index]
         headerModel.setData(index, value,
                             Qt.DisplayRole)  #Qt.WhatsThisRole
     # set model data
     dataModel = QStandardItemModel(row_count, column_count)
     for row_index in range(row_count):
         for column_index in range(column_count):
             index = dataModel.index(row_index, column_index)
             value = data[row_index][column_index]
             dataModel.setData(index, value, Qt.DisplayRole)
     return headerModel, dataModel
예제 #4
0
    def __init__(self):
        super(CollectionsHistoryTabs, self).__init__()
        self.setupUi(self)

        self.historyList.setContextMenuPolicy(Qt.CustomContextMenu)
        self.historyList.customContextMenuRequested.connect(self.historyMenu)

        self.historyModel = QStandardItemModel()
        self.historyList.setModel(self.historyModel)
        self.historyList.header().hide()
        self.historyList.expandToDepth(0)
        self.historyList.doubleClicked.connect(self.emitItem)

        self.collectionsModel = QStandardItemModel()
        default = QStandardItem("Default")
        default.setEditable(False)
        default.setIcon(self.folder_icon)
        self.collectionsModel.appendRow(default)
        self.collectionsTree.setModel(self.collectionsModel)
        self.collectionsTree.header().hide()
        self.collectionsTree.expandToDepth(0)
        self.collectionsTree.doubleClicked.connect(self.emitItem)
        self.collectionsTree.setContextMenuPolicy(Qt.CustomContextMenu)
        self.collectionsTree.customContextMenuRequested.connect(
            self.collectionsMenu)
예제 #5
0
    def _setup_scan_dir_list_model(self):
        self._dirs_list_model = QStandardItemModel()
        self._dirs_list_selection_model = QItemSelectionModel(
            self._dirs_list_model)
        self._thumbs_view_model = QStandardItemModel()
        self._thumbs_selection_model = QItemSelectionModel(
            self._thumbs_view_model)

        self._dirs_list_model.setColumnCount(1)
        # self._dirs_list_model.setRowCount(len(scan_dirs))

        self._root_tree_item = self._dirs_list_model.invisibleRootItem()
        # FOLDERS item
        folder_item = QStandardItem("Folders")
        folder_item_font = QFont()
        folder_item_font.setBold(True)
        folder_item.setFont(folder_item_font)
        folder_item.setSizeHint(QSize(folder_item.sizeHint().width(), 24))
        self._root_tree_item.appendRow(folder_item)
        self._TV_FOLDERS_ITEM_MAP[0] = folder_item

        self.treeView_scandirs.setModel(self._dirs_list_model)
        self.treeView_scandirs.setSelectionModel(
            self._dirs_list_selection_model)
        # self.treeView_scandirs.setRootIsDecorated(False)

        self.listView_thumbs.setModel(self._thumbs_view_model)
        self.listView_thumbs.setSelectionModel(self._thumbs_selection_model)

        scan_dirs = self._meta_files_mgr.get_scan_dirs()
        self._populate_dirs_tree_view(0, scan_dirs)
예제 #6
0
    def __init__(self):
        super(HistorianWidget, self).__init__()
        self.existing_responses = set()
        self.existing_requests = set()
        self.loaded = False

        layout = QHBoxLayout()

        request_box = QGroupBox('REQUEST HISTORY')
        request_box.setAlignment(QtCore.Qt.AlignCenter)
        self.export_request_history = QPushButton('Export to CSV')
        self.request_history = QTableView()
        self.request_rows = QStandardItemModel()
        self.request_history.setSortingEnabled(True)
        # self.request_history.verticalHeader().hide()
        self.request_history.setItemDelegate(CenterDelegate())
        # self.request_history.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
        self.request_history.horizontalHeader().setStretchLastSection(True)
        self.request_history.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.request_header_labels = [
            'Timestamp', 'Transaction ID', 'Unit Address', 'Function Code',
            'Data'
        ]
        self.request_rows.setHorizontalHeaderLabels(self.request_header_labels)
        req_layout = QVBoxLayout()
        req_layout.addWidget(self.request_history)
        req_layout.addWidget(self.export_request_history)
        request_box.setLayout(req_layout)

        response_box = QGroupBox('RESPONSE HISTORY')
        response_box.setAlignment(QtCore.Qt.AlignCenter)
        self.export_response_history = QPushButton('Export to CSV')
        self.response_history = QTableView()
        self.response_rows = QStandardItemModel()
        self.response_history.setSortingEnabled(True)
        # self.response_history.verticalHeader().hide()
        self.response_history.setItemDelegate(CenterDelegate())
        # self.response_history.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
        self.response_history.horizontalHeader().setStretchLastSection(True)
        self.response_history.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.response_header_labels = [
            'Timestamp', 'Transaction ID', 'Unit Address', 'Function Code',
            'Data'
        ]
        self.response_rows.setHorizontalHeaderLabels(
            self.response_header_labels)
        res_layout = QVBoxLayout()
        res_layout.addWidget(self.response_history)
        res_layout.addWidget(self.export_response_history)
        response_box.setLayout(res_layout)

        layout.addWidget(request_box)
        layout.addWidget(response_box)
        self.setLayout(layout)
예제 #7
0
    def setupUi(self):
        super().setupUi(self)

        self.status_consumer = None
        self.status_broker_led = Led(self)
        self.status_topic_layout.addWidget(self.status_broker_led)
        self.status_broker_change_timer = QTimer()
        self._set_up_broker_fields(
            self.status_broker_led,
            self.status_broker_edit,
            self.status_broker_change_timer,
            self.status_broker_timer_changed,
            StatusConsumer,
        )

        self.command_producer = None

        self.command_broker_led = Led(self)
        self.command_broker_layout.addWidget(self.command_broker_led)
        self.command_broker_change_timer = QTimer()
        self._set_up_broker_fields(
            self.command_broker_led,
            self.command_broker_edit,
            self.command_broker_change_timer,
            self.command_broker_timer_changed,
            CommandProducer,
        )

        self.command_widget.ok_button.clicked.connect(self.send_command)
        self.update_status_timer = QTimer()
        self.update_status_timer.timeout.connect(self._check_connection_status)
        self.update_status_timer.start(500)

        self.files_list.clicked.connect(self.file_list_clicked)
        self.stop_file_writing_button.clicked.connect(
            self.stop_file_writing_clicked)

        self.model = QStandardItemModel(0, 2, self)
        self.model.setHeaderData(0, QtCore.Qt.Horizontal, "File writer")
        self.model.setHeaderData(1, QtCore.Qt.Horizontal, "Last seen")
        self.file_writers_list.setModel(self.model)
        self.file_writers_list.setColumnWidth(0, 320)

        self.file_list_model = QStandardItemModel(0, 3, self)
        self.file_list_model.setHeaderData(0, QtCore.Qt.Horizontal,
                                           "File name")
        self.file_list_model.setHeaderData(1, QtCore.Qt.Horizontal,
                                           "Last seen")
        self.file_list_model.setHeaderData(2, QtCore.Qt.Horizontal,
                                           "File writer")
        self.files_list.setModel(self.file_list_model)
        self._restore_settings()
        QApplication.instance().aboutToQuit.connect(self._store_settings)
예제 #8
0
    def __init__(self, parent=None):
        super().__init__(parent)  # 调用父类构造函数,创建窗体
        self.__scene = None  # 创建QGraphicsScene
        self.__view = None  # 创建图形视图组件
        self.ui = Ui_MainWindow()  # 创建UI对象
        self.ui.setupUi(self)  # 构造UI界面
        self.operatorFile = OperatorFile(self)

        self.__translator = None
        title = self.tr("基于Python的图的绘制及相关概念的可视化展示")
        self.setWindowTitle(title)

        self.ui.nodeDetails.setEnabled(False)
        self.ui.edgeDetails.setEnabled(False)
        self.ui.actionSave.setEnabled(False)

        self.edgeModel = QStandardItemModel(5, 5, self)
        self.edgeSelectionModel = QItemSelectionModel(self.edgeModel)
        self.edgeModel.dataChanged.connect(self.do_updateEdgeWeight)

        self.nodeModel = QStandardItemModel(5, 4, self)
        self.nodeSelectionModel = QItemSelectionModel(self.nodeModel)
        self.nodeModel.dataChanged.connect(self.do_updateNodeWeight)

        self.spinWeight = WeightSpinDelegate(0, 200, 1, self)

        self.ui.tabWidget.setVisible(False)
        self.ui.tabWidget.clear()
        self.ui.tabWidget.setTabsClosable(True)
        self.ui.tabWidget.setDocumentMode(True)
        self.setCentralWidget(self.ui.tabWidget)
        self.setAutoFillBackground(True)

        self.__buildStatusBar()  # 构造状态栏
        self.__buildUndoCommand()  # 初始化撤销重做系统
        self.__initModeMenu()
        self.__lastColumnFlag = Qt.NoItemFlags

        self.iniGraphicsSystem()

        self.__ItemId = 0  # 绘图项自定义数据的key
        self.__ItemDesc = 1  # 绘图项自定义数据的key

        self.__nodeNum = 0  # 结点的序号
        self.__edgeNum = 0  # 边的序号
        self.__textNum = 0

        self.lastColumnFlags = (Qt.ItemIsSelectable | Qt.ItemIsUserCheckable
                                | Qt.ItemIsEnabled)

        self.__graph = Graph()
예제 #9
0
    def __create_vertical_section(self, group_name):
        # Setup layout
        groupbox = QGroupBox(group_name)
        groupbox.setObjectName(group_name)
        vertical_layout = QVBoxLayout()
        groupbox.setLayout(vertical_layout)

        '''
        Add widgets
        '''
        # Add file selection/loading widgets
        file_select_organizer = QHBoxLayout()
        text_input = QLineEdit() # Does this need a name yet?
        file_select_button = QPushButton("...")
        file_select_organizer.addWidget(text_input)
        file_select_organizer.addWidget(file_select_button)
        # Add the section we just made to layout
        vertical_layout.addLayout(file_select_organizer)

        # add listview for excel pages
        excel_label = QLabel("Excel Workbook Pages")
        excel_sheets = QListView()
        excel_sheets.setEditTriggers(QAbstractItemView.NoEditTriggers)
        excel_label_model = QStandardItemModel()
        excel_sheets.setModel(excel_label_model)

        vertical_layout.addWidget(excel_label)
        vertical_layout.addWidget(excel_sheets)


        # add listview for column headers
        variable_label = QLabel("Merge on column:")
        variables = QListView()
        variables.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.columns[group_name] = variables
        variables_model = QStandardItemModel()
        variables.setModel(variables_model)
        vertical_layout.addWidget(variable_label)
        vertical_layout.addWidget(variables)

        '''
        Connect Functions
        '''
        # Connect File dialog to file selection
        file_select_button.clicked.connect(lambda: self.openFileNameDialog(text_input, excel_label_model, group_name))
        # Connect listview to populate listview for column headers
        excel_sheets.clicked.connect(lambda x: self.populateColumns(x, excel_label_model, variables_model, group_name))

        return groupbox
예제 #10
0
    def setupUi(self, variableSelection):
        variableSelection.setObjectName("variableSelection")
        variableSelection.resize(409, 300)
        self.buttonBox = QtWidgets.QDialogButtonBox(variableSelection)
        self.buttonBox.setGeometry(QtCore.QRect(230, 260, 171, 32))
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel
                                          | QtWidgets.QDialogButtonBox.Ok)
        self.buttonBox.setObjectName("buttonBox")
        self.list_left = QtWidgets.QListView(variableSelection)
        self.list_left.setGeometry(QtCore.QRect(30, 60, 141, 191))
        self.list_left.setObjectName("listView")
        self.verticalScrollBar = QtWidgets.QScrollBar(variableSelection)
        self.verticalScrollBar.setGeometry(QtCore.QRect(150, 70, 20, 171))
        self.verticalScrollBar.setOrientation(QtCore.Qt.Vertical)
        self.verticalScrollBar.setObjectName("verticalScrollBar")
        self.verticalScrollBar_2 = QtWidgets.QScrollBar(variableSelection)
        self.verticalScrollBar_2.setGeometry(QtCore.QRect(350, 70, 21, 171))
        self.verticalScrollBar_2.setOrientation(QtCore.Qt.Vertical)
        self.verticalScrollBar_2.setObjectName("verticalScrollBar_2")
        self.toolButton = QtWidgets.QToolButton(variableSelection)
        self.toolButton.setGeometry(QtCore.QRect(190, 100, 41, 31))
        self.toolButton.setAutoRaise(False)
        self.toolButton.setArrowType(QtCore.Qt.RightArrow)
        self.toolButton.setObjectName("addButton")
        self.toolButton_2 = QtWidgets.QToolButton(variableSelection)
        self.toolButton_2.setGeometry(QtCore.QRect(190, 180, 41, 31))
        self.toolButton_2.setArrowType(QtCore.Qt.LeftArrow)
        self.toolButton_2.setObjectName("removeButton")
        self.list_right = QtWidgets.QListView(variableSelection)
        self.list_right.setGeometry(QtCore.QRect(240, 60, 141, 191))
        self.list_right.setObjectName("listView_2")
        self.label = QtWidgets.QLabel(variableSelection)
        self.label.setGeometry(QtCore.QRect(40, 20, 361, 20))
        self.label.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label.setObjectName("label")

        self.retranslateUi(variableSelection)
        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"),
                               variableSelection.accept)
        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"),
                               variableSelection.reject)
        QtCore.QMetaObject.connectSlotsByName(variableSelection)

        self.model_left = QStandardItemModel(self)
        self.list_left.setModel(self.model_left)
        self.model_right = QStandardItemModel(self)
        self.list_right.setModel(self.model_right)
예제 #11
0
    def __init__(self, parent, tutor=None):
        """Initializes instance.

        Args:
            parent (QWidget): parent widget
            tutor (QWidget, NoneType): another widget used for positioning.
        """
        super().__init__(parent)
        self._tutor = tutor
        self._base_size = QSize()
        self._base_offset = QPoint()
        self._original_text = None
        self._orig_pos = None
        self.first_index = QModelIndex()
        self.model = QStandardItemModel(self)
        self.proxy_model = QSortFilterProxyModel(self)
        self.proxy_model.setSourceModel(self.model)
        self.proxy_model.filterAcceptsRow = self._proxy_model_filter_accepts_row
        self.setModel(self.proxy_model)
        self.verticalHeader().hide()
        self.horizontalHeader().hide()
        self.setShowGrid(False)
        self.setMouseTracking(True)
        self.setTabKeyNavigation(False)
        delegate = _CustomLineEditDelegate(self)
        delegate.text_edited.connect(self._handle_delegate_text_edited)
        self.setItemDelegateForRow(0, delegate)
예제 #12
0
    def __init__(self):
        super(MainWindow, self).__init__()
        #ui
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.comboBox_dict.addItems(dicts)
        #signal
        self.ui.pushButton_create.clicked.connect(self.createBoard)
        self.ui.pushButton_save.clicked.connect(self.saveBoard)
        self.ui.pushButton_open.clicked.connect(self.OpenImages)
        self.ui.tableView.clicked.connect(self.showImg)  #列表图片显示
        self.ui.pushButton_calib.clicked.connect(self.calib)
        self.ui.pushButton_saveParameter.clicked.connect(self.saveParameter)
        self.ui.pushButton_output.clicked.connect(self.saveCameraGroup)
        self.ui.pushButton_clear.clicked.connect(self.clearGroup)
        self.ui.listView_Camera.clicked.connect(self.showCamera)
        #property
        self.model = QStandardItemModel()  #tab 1
        self.cameraListModel = QStringListModel()  #tab 2
        self.cameraLists = []
        self.ui.listView_Camera.setModel(self.cameraListModel)

        self.caliber = None
        self.cameraGroup = CameraGroup.CameraGroup()

        #other
        self.calibBoard = CharucoBoard.ChessBoard()
        self.board = None
        self.boardType = 0
예제 #13
0
    def create_results_model(self, results):
        def add_result_row(row_model, value, obj_class, uuid):
            row_model.insertRow(0)
            row_model.setData(model.index(0, 0), value)
            row_model.setData(model.index(0, 1), obj_class)
            row_model.setData(model.index(0, 2), uuid)

            item_0 = model.itemFromIndex(model.index(0, 0))
            item_0.setCheckState(Qt.Unchecked)
            item_0.setFlags(item_0.flags() | Qt.ItemIsUserCheckable)
            item_0.setEditable(False)

            item_1 = model.itemFromIndex(model.index(0, 1))
            item_1.setEditable(False)

        model = QStandardItemModel(0, 3, self)
        model.setHeaderData(0, Qt.Horizontal, "Value")
        model.setHeaderData(1, Qt.Horizontal, "Class")
        model.setHeaderData(2, Qt.Horizontal, "UUID")

        for hit in results:
            add_result_row(model, hit['value'], hit['obj_class_display'],
                           hit['uuid'])

        return model
예제 #14
0
    def __init__(self,  title, message, items, parent=None):
        """
        Constructor of ListerView which creates a new dialog with
        scrolled items which the user can mark
        
        Args:
            title (str): The dialog title that should appear
            message (str): The message that the user will see at the top of the dialog
            items ([str]): A list of strings that will be showns as options
        """

        super(ListerView, self).__init__(parent=parent)
        form = QFormLayout(self)
        form.addRow(QLabel(message))
        self.listView = QListView(self)
        self.listView.clicked.connect(self.mouse_click_event)
        form.addRow(self.listView)
        model = QStandardItemModel(self.listView)
        self.setWindowTitle(title)
        for item in items:
            standardItem = QStandardItem(item)
            standardItem.setCheckable(True)
            standardItem.setEditable(False)
            model.appendRow(standardItem)
        self.listView.setModel(model)
예제 #15
0
    def initUi(self):
        self.layout = QGridLayout()

        self.categoryList = QListView()
        self.right_layout = QStackedLayout()

        self.categoryList.setMaximumWidth(175)

        self.categoryModel = QStandardItemModel(self.categoryList)

        self.categoryList.setIconSize(QSize(32, 32))

        for name, page in self.pages.items():
            page_item = QStandardItem(name)
            if name in CONST.ICONS:
                page_item.setIcon(CONST.ICONS[name])
            else:
                page_item.setIcon(CONST.ICONS["Generator"])
            page_item.setEditable(False)
            page_item.setSelectable(True)
            self.categoryModel.appendRow(page_item)
            self.right_layout.addWidget(page)

        self.initCheatLayout()
        cheat = QStandardItem("Cheat Menu")
        cheat.setIcon(CONST.ICONS["Cheat"])
        cheat.setEditable(False)
        cheat.setSelectable(True)
        self.categoryModel.appendRow(cheat)
        self.right_layout.addWidget(self.cheatPage)

        self.pluginsPage = PluginsPage()
        plugins = QStandardItem("LUA Plugins")
        plugins.setIcon(CONST.ICONS["Plugins"])
        plugins.setEditable(False)
        plugins.setSelectable(True)
        self.categoryModel.appendRow(plugins)
        self.right_layout.addWidget(self.pluginsPage)

        self.pluginsOptionsPage = PluginOptionsPage()
        pluginsOptions = QStandardItem("LUA Plugins Options")
        pluginsOptions.setIcon(CONST.ICONS["PluginsOptions"])
        pluginsOptions.setEditable(False)
        pluginsOptions.setSelectable(True)
        self.categoryModel.appendRow(pluginsOptions)
        self.right_layout.addWidget(self.pluginsOptionsPage)

        self.categoryList.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.categoryList.setModel(self.categoryModel)
        self.categoryList.selectionModel().setCurrentIndex(
            self.categoryList.indexAt(QPoint(1, 1)), QItemSelectionModel.Select
        )
        self.categoryList.selectionModel().selectionChanged.connect(
            self.onSelectionChanged
        )

        self.layout.addWidget(self.categoryList, 0, 0, 1, 1)
        self.layout.addLayout(self.right_layout, 0, 1, 5, 1)

        self.setLayout(self.layout)
예제 #16
0
    def __init__(self, filter_id, columns, headersname, parent=None):
        super(FiltersForm, self).__init__(parent)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.setWindowModality(Qt.ApplicationModal)
        self.setWindowTitle('Filter')
        self.filter_id = filter_id
        self.columns = columns
        self.main_form = parent

        #form
        self.line_filters = [self.ui.lineEditfilter_1,
                             self.ui.lineEditfilter_2,
                             self.ui.lineEditfilter_3,
                             self.ui.lineEditfilter_4,
                             self.ui.lineEditfilter_5]

        for line in self.line_filters:
            line.setClearButtonEnabled(True)
            line.setEnabled(False)
            line.textChanged.connect(self.make_filter)

        #table
        self.table = self.ui.tableViewcolumns
        self.sti = QStandardItemModel()
        self.table.setModel(self.sti)
        self.table.verticalHeader().setDefaultSectionSize(10)
        self.table.horizontalHeader().setDefaultSectionSize(172)
        self.table.setSortingEnabled(True)

        #treeWidget
        self.tw = self.ui.treeWidgetasignet
        self.tw.setHeaderLabels(['Name'] + headersname)
        self.tw.setAlternatingRowColors(True)

        """
        set controls data
        """
        self.sti.setHorizontalHeaderLabels(headersname)
        self.sti.setColumnCount(len(headersname))
        self.setrowdata(columns)

        """
        signals
        """
        self.ui.pushButtonaddnew.clicked.connect(self.add_new_parent_node)
        self.tw.itemChanged.connect(self.uncheck_others_items_tree)
        self.ui.pushButtonadddata.clicked.connect(self.add_children)
        self.ui.pushButtonremovenodes.clicked.connect(self.delete_tree_items)
        self.ui.checkBoxCheckAll.stateChanged.connect(lambda: self.select_deselect_rows(self.ui.checkBoxCheckAll))
        self.ui.checkBoxnotassigne.stateChanged.connect(lambda: self.show_not_assigned_rows(self.ui.checkBoxnotassigne))
        self.ui.pushButtonrun.clicked.connect(self.make_assigned)
        self.ui.pushButtonremove_fitlers_text.clicked.connect(self.clear_all_filter_line)

        """
        function
        """
        self.get_data_from_database()
        self.set_filter_line_enable()
        self.start_rows = self.get_all_data_table()
예제 #17
0
파일: summary.py 프로젝트: shatsky/niudu
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.model = QStandardItemModel()
     self.setModel(self.model)
     self.setHeaderHidden(True)
     self.expanded.connect(self.expanded__handler)
     self.profiles = []
예제 #18
0
 def set_data(self, object_icons, object_class_names, object_names,
              object_names_dict):
     for i, object_class_name in enumerate(object_class_names):
         combo = QComboBox(self)
         model = QStandardItemModel()
         icon = object_icons[i]
         qitem = QStandardItem(icon, object_class_name)
         qitem.setFlags(~Qt.ItemIsSelectable)
         model.appendRow(qitem)
         all_object_names = object_names_dict[object_class_name]
         for object_name in all_object_names:
             qitem = QStandardItem(object_name)
             model.appendRow(qitem)
         combo.setModel(model)
         combo.insertSeparator(1)
         combo.activated.connect(
             lambda index, i=i: self.remove_missing_dimension(i))
         self.layout().addWidget(combo)
         self.combos.append(combo)
         try:
             object_name = object_names[i]
         except IndexError:
             self.missing_dimensions.add(i)
             continue
         if object_name:
             combo.setCurrentText(object_name)
         else:
             self.missing_dimensions.add(i)
예제 #19
0
    def __init__(self, dialog_model, dialog_controller):
        settings = Qt.Window | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
        super(ListDialogView, self).__init__(None, settings)
        self.setAttribute(Qt.WA_TranslucentBackground)

        self._model = dialog_model
        self._dialog_ctrl = dialog_controller
        self._ui = Ui_ListDialog()
        self._ui.setupUi(self)

        delete_button_delegate = DeleteButtonDelegate(self)
        self._commodity_model = QStandardItemModel(0, 2, self._ui.commodity_list)
        for commodity in self._model:
            self._commodity_model.appendRow([QStandardItem(str(commodity)), QStandardItem()])

        """connect widgets to controller"""
        self._ui.button_add.clicked.connect(self.add_list_item)
        self._ui.commodity_list.clicked.connect(self.remove_list_item)
        self._ui.commodity_list.hover_index_changed.connect(delete_button_delegate.on_hover_index_changed)
        self.accepted.connect(self.on_dialog_accepted)
        self._ui.cancel_button.clicked.connect(self.reject)
        self._ui.apply_button.clicked.connect(self.accept)

        """initialize view"""
        self._ui.commodity_name.set_model(PropertyLineEdit(""))
        self._ui.commodity_list.setModel(self._commodity_model)
        self._ui.commodity_list.setItemDelegateForColumn(1, delete_button_delegate)
        self._ui.commodity_list.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
        self._ui.commodity_list.horizontalHeader().setSectionResizeMode(1, QHeaderView.Fixed)
        self._ui.commodity_list.setColumnWidth(1, 22)
예제 #20
0
    def __init__(self, parent, task):
        '''
        Params:
        -------
        parent : FormMainWindow
        task : MirrorTask
        '''
        super(DlgHistory, self).__init__(parent)
        # initialize the UI
        self.ui = Ui_DlgHistory()
        self.ui.setupUi(self)

        try:
            # get the task from param
            self._task = task
            # initialize the logManager
            self.logManager = LogManager()
            # inits the selection model for TableView
            self.taskViewModel = QStandardItemModel(self)
            # sets the model to the TableView
            self.ui.tableView.setModel(self.taskViewModel)
            # connect double-clicked event to On_View
            self.ui.tableView.doubleClicked.connect(self.On_View)
            # set the cell delegate
            self.tableLabelDelegate = LabelItemDelegate(
                self.taskViewModel, self.ui.tableView)
            for i in range(2):
                self.ui.tableView.setItemDelegateForColumn(
                    i, self.tableLabelDelegate)
            # reset the history list
            self.log_data = []
            # loads the table
            self.LoadTable()
        except Exception as e:
            print(f'HistoryDlg Err:{e}')
예제 #21
0
    def __init__(self):
        super().__init__()
        self.folderModel = QStandardItemModel()
        self.setModel(self.folderModel)
        self.setFrameStyle(QFrame.NoFrame)
        self.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setItemDelegate(Folder())

        self.setStyleSheet(
            'FolderList { background-color: Transparent; color: rgb(190,190,190); }'
        )
        self.setAttribute(Qt.WA_TranslucentBackground)

        for idx, folder in enumerate(self.getImageFolders()):
            item = QStandardItem(folder)
            item.setData(folder.replace('imgur',
                                        '').replace('reddit_sub',
                                                    '').replace('_', ''),
                         role=Qt.DisplayRole)
            item.setData(os.path.join(ThemeManager.IMAGE_FOLDERS_PATH, folder),
                         role=Qt.UserRole)
            item.setData(folder, role=Qt.UserRole + 1)

            self.folderModel.appendRow(item)
예제 #22
0
    def model(self) -> QStandardItemModel:
        items: List[QTreeWidgetItem] = \
            self.findItems('*', Qt.MatchWrap | Qt.MatchWildcard | Qt.MatchRecursive)
        model = QStandardItemModel()

        def standardItem(w: QTreeWidgetItem) -> QStandardItem:
            s = QStandardItem()
            s.setData(w.data(0, Qt.DisplayRole), Qt.DisplayRole)
            s.setData(w.data(1, Qt.UserRole), Qt.UserRole)
            s.setData(w.data(0, Qt.ToolTipRole), Qt.ToolTipRole)
            return s

        def filterItems(item: QTreeWidgetItem) -> bool:
            op_class: type = item.data(1, Qt.UserRole)
            keep: bool = bool(item.parent())
            if keep and issubclass(op_class, GraphOperation):
                keep &= op_class.minInputNumber() == op_class.maxInputNumber() == 1 \
                        and op_class.minOutputNumber() == 1
            else:
                keep &= item.isHidden()
            return keep

        items = list(map(standardItem, filter(filterItems, items)))
        for i in items:
            model.appendRow(i)
        return model
    def setTarget(self, target):

        self.setTitle(target.name)
        self.strike_target_infos = target
        model = QStandardItemModel()
        self.listView.setSelectionMode(QAbstractItemView.NoSelection)

        if len(self.strike_target_infos.units) > 0:
            dic = {}
            for u in self.strike_target_infos.units:
                if u.type in dic.keys():
                    dic[u.type] = dic[u.type] + 1
                else:
                    dic[u.type] = 1
            for k, v in dic.items():
                model.appendRow(QStandardItem(k + " x " + str(v)))
                print(k + " x " + str(v))
        else:
            dic = {}
            for b in self.strike_target_infos.buildings:
                id = b.dcs_identifier
                if b.is_dead:
                    id = id + "[Destroyed]"
                if id in dic.keys():
                    dic[id] = dic[id] + 1
                else:
                    dic[id] = 1
            for k, v in dic.items():
                model.appendRow(QStandardItem(k + " x " + str(v)))
                print(k + " x " + str(v))

        self.listView.setModel(model)
예제 #24
0
    def __init__(self):
        super(Window, self).__init__()

        self.table = QTableView()
        self.sti = QStandardItemModel()
        self.sti.setColumnCount(3)
        self.table.setModel(self.sti)

        self.sti.setRowCount(8)

        #piersza możliwośc przez QStandardItem
        # item1 = QStandardItem('Red')
        # item1.setBackground(QBrush(Qt.red))
        # self.sti.setHorizontalHeaderItem(1, item1)

        #Druga możliwosć przez odwołanie modelu:
        self.table.model().setHeaderData(0, Qt.Horizontal,
                                         QBrush(QColor(121, 166, 210)),
                                         Qt.BackgroundRole)
        self.table.model().setHeaderData(0, Qt.Horizontal, "One",
                                         Qt.DisplayRole)

        self.mlayout = QHBoxLayout()
        self.mlayout.addWidget(self.table)

        self.setLayout(self.mlayout)
예제 #25
0
def createMailModel(parent):
    model = QStandardItemModel(0, 3, parent)

    model.setHeaderData(SUBJECT, Qt.Horizontal, "Subject")
    model.setHeaderData(SENDER, Qt.Horizontal, "Sender")
    model.setHeaderData(DATE, Qt.Horizontal, "Date")

    addMail(model, "Happy New Year!", "Grace K. <*****@*****.**>",
            QDateTime(QDate(2006, 12, 31), QTime(17, 3)))
    addMail(model, "Radically new concept",
            "Grace K. <*****@*****.**>",
            QDateTime(QDate(2006, 12, 22), QTime(9, 44)))
    addMail(model, "Accounts", "*****@*****.**",
            QDateTime(QDate(2006, 12, 31), QTime(12, 50)))
    addMail(model, "Expenses", "Joe Bloggs <*****@*****.**>",
            QDateTime(QDate(2006, 12, 25), QTime(11, 39)))
    addMail(model, "Re: Expenses", "Andy <*****@*****.**>",
            QDateTime(QDate(2007, 1, 2), QTime(16, 5)))
    addMail(model, "Re: Accounts", "Joe Bloggs <*****@*****.**>",
            QDateTime(QDate(2007, 1, 3), QTime(14, 18)))
    addMail(model, "Re: Accounts", "Andy <*****@*****.**>",
            QDateTime(QDate(2007, 1, 3), QTime(14, 26)))
    addMail(model, "Sports", "Linda Smith <*****@*****.**>",
            QDateTime(QDate(2007, 1, 5), QTime(11, 33)))
    addMail(model, "AW: Sports", "Rolf Newschweinstein <*****@*****.**>",
            QDateTime(QDate(2007, 1, 5), QTime(12, 0)))
    addMail(model, "RE: Sports", "Petra Schmidt <*****@*****.**>",
            QDateTime(QDate(2007, 1, 5), QTime(12, 1)))

    return model
    def testRefCount(self):
        model = QStandardItemModel(5, 5)
        items = []
        for r in range(5):
            row = []
            for c in range(5):
                row.append(QStandardItem("%d,%d" % (r, c)))
                self.assertEqual(sys.getrefcount(row[c]), 2)

            model.insertRow(r, row)

            for c in range(5):
                ref_after = sys.getrefcount(row[c])
                # check if the ref count was incremented after insertRow
                self.assertEqual(ref_after, 3)

            items.append(row)
            row = None

        for r in range(3):
            my_row = model.takeRow(0)
            my_row = None
            for c in range(5):
                # only rest 1 reference
                self.assertEqual(sys.getrefcount(items[r][c]), 2)

        my_i = model.item(0, 0)
        # ref(my_i) + parent_ref + items list ref
        self.assertEqual(sys.getrefcount(my_i), 4)

        model.clear()
        # ref(my_i)
        self.assertEqual(sys.getrefcount(my_i), 3)
예제 #27
0
    def dropEvent(self, e):
        item = None
        if e.mimeData().hasFormat('application/x-qabstractitemmodeldatalist'):
            data = e.mimeData()
            sourceItem = QStandardItemModel()
            sourceItem.dropMimeData(data, QtCore.Qt.CopyAction, 0, 0,
                                    QtCore.QModelIndex())
            item = sourceItem.item(0, 0)

        if item:
            itemName = item.text()

            currentCollection = self.actionManagerViewer.selectedCollectionName
            collectionActionIds = self.actionManagerViewer.actionManager.getCollectionActionIds(
                currentCollection)

            if item.hasChildren():
                # Add the children:
                for childActionId in self.actionManagerViewer.actionManager.getActionIdsOfCategory(
                        itemName):
                    if self.actionManagerViewer.actionManager.isValidActionId(
                            childActionId
                    ) and not childActionId in collectionActionIds:
                        self.actionManagerViewer.addCollectionActionEntry(
                            childActionId)
                        self.actionManagerViewer.actionManager.linkActionToCollection(
                            childActionId, currentCollection)
            else:
                self.actionManagerViewer.actionManager.linkActionToCollection(
                    itemName, currentCollection)
                super().dropEvent(e)
예제 #28
0
 def __init__(self, parent=None):
     super().__init__(parent)
     self._project_dict = None
     self._model = QStandardItemModel()
     # set roles
     self._label_role = Qt.UserRole + 1
     self._type_role = Qt.UserRole + 2
     self._chiiso_role = Qt.UserRole + 3
     self._chi11_role = Qt.UserRole + 4
     self._chi22_role = Qt.UserRole + 5
     self._chi33_role = Qt.UserRole + 6
     self._chi12_role = Qt.UserRole + 7
     self._chi13_role = Qt.UserRole + 8
     self._chi23_role = Qt.UserRole + 9
     self._model.setItemRoleNames({
         self._label_role: b'label',
         self._type_role: b'type',
         self._chiiso_role: b'chiiso',
         self._chi11_role: b'chi11',
         self._chi22_role: b'chi22',
         self._chi33_role: b'chi33',
         self._chi12_role: b'chi12',
         self._chi13_role: b'chi13',
         self._chi23_role: b'chi23'
     })
     self._log = logger.getLogger(self.__class__.__module__)
예제 #29
0
파일: main.py 프로젝트: zdrgbsky/KDChart
    def __init__(self, parent=None):
        super(MyWidget, self).__init__(parent)

        self.view = View()
        self.grid = DateTimeGrid()
        self.model = QStandardItemModel()
        self.slider = QSlider()
        self.view.setGraphicsView(MyGraphicsView())

        ## proxyModel.setSourceModel( &model );
        for h in range(0, 2):
            self.model.appendRow([
                MyStandardItem("Item " + str(h)),
                MyStandardItem(KDGantt.TypeTask),
                MyStandardItem(QDateTime.currentDateTime().addDays(h),
                               KDGantt.StartTimeRole),
                MyStandardItem(QDateTime.currentDateTime().addDays(h + 1),
                               KDGantt.EndTimeRole),
                MyStandardItem(50)
            ])

        self.slider.setOrientation(Qt.Horizontal)
        self.slider.setRange(1, 10000)
        self.slider.setValue(100)
        l = QVBoxLayout(self)
        l.addWidget(self.view)
        l.addWidget(self.slider)
        self.grid.setStartDateTime(QDateTime.currentDateTime().addDays(-3))
        self.grid.setDayWidth(100)
        ## grid.setNoInformationBrush( Qt::NoBrush );
        self.view.setGrid(self.grid)
        self.view.setModel(self.model)

        self.slider.valueChanged.connect(self.slotZoom)
예제 #30
0
 def __init__(self, app, window, lib_tree):
     QObject.__init__(self)
     self.app = app
     self.lib_tree = lib_tree
     self.library = app.library
     self.input = window.search_query_input
     self.view = window.lib_items
     self.tree_conditions = []
     self.items = []
     self.items_incomplete = False
     self.model = ItemModel(self.app)
     self.model.setColumnCount(1)
     self.compl_model = QStandardItemModel()
     self.compl_model.setColumnCount(1)
     self.completer = QCompleter(self.compl_model)
     self.completer.setCaseSensitivity(Qt.CaseInsensitive)
     self.completer.setModelSorting(QCompleter.CaseSensitivelySortedModel)
     self.input.setCompleter(self.completer)
     self.view.setHeaderHidden(True)
     self.view.setIndentation(0)
     self.view.setModel(self.model)
     self.view.sortByColumn(0, Qt.AscendingOrder)
     self.view.setDragEnabled(True)
     self.view.setAcceptDrops(True)
     self.view.setSelectionMode(QAbstractItemView.ExtendedSelection)
     self.view.setEditTriggers(QAbstractItemView.NoEditTriggers)
     selection_model = self.view.selectionModel()
     selection_model.selectionChanged.connect(self.selection_changed)
     tree_selection_model = window.lib_tree.selectionModel()
     tree_selection_model.selectionChanged.connect(
         self.tree_selection_changed)
     self.input.editingFinished.connect(self.query_entered)
     self.input.textChanged.connect(self.query_changed)
     self.view.doubleClicked.connect(self.double_clicked)
     self.run_query()