def init_ana_widget(self): self.rlayout = QHBoxLayout() self.ana_widget.setLayout(self.rlayout) self.fig = Figure() self.canvas = FigureCanvas(self.fig) self.canvas_label = QLabel("Result") canvas_widget = QWidget() canvas_layout = QVBoxLayout() canvas_widget.setLayout(canvas_layout) canvas_layout.addWidget(self.canvas_label) canvas_layout.addWidget(self.canvas) canvas_layout.setStretch(0, 1) canvas_layout.setStretch(1, 20) self.tracklist_panel = QWidget() self.tracklist_layout = QVBoxLayout() self.tracklist_panel.setLayout(self.tracklist_layout) self.init_topic_tracklist() self.init_weibo_tracklist() self.tracklist_layout.addWidget(self.topic_tracklist_widget) self.tracklist_layout.addWidget(self.weibo_tracklist_widget) self.rlayout.addWidget(self.tracklist_panel) self.rlayout.addWidget(canvas_widget) cfg = self.scheduler.load_config() for topic_name in cfg['topic_tracklist']: self.topic_tracklist_model.appendRow(QStandardItem(topic_name)) for weibo_id in cfg["weibo_id_tracklist"]: self.weibo_tracklist_model.appendRow(QStandardItem(str(weibo_id)))
def log(self, msg, status_str="INFO"): time_str = datetime.now().strftime("%Y-%m-%d-%H:%M:%S") self.log_model.appendRow([ QStandardItem(status_str), QStandardItem(time_str), QStandardItem(msg) ])
def initialise (self, univers): model = QStandardItemModel (3,1) i = 0 for faction in univers.faction_list : item = QStandardItem(faction.name) item.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled); item.setData(QtCore.Qt.Unchecked, QtCore.Qt.CheckStateRole); model.setItem(i, 0, item) i = i + 1 combo = QComboBox() combo.setModel(model) list_v = QListView() list_v.setModel(model) table = QTableView() table.setModel(model) container = QWidget() containerLayout = QVBoxLayout() container.setLayout(containerLayout) containerLayout.addWidget(combo) containerLayout.addWidget(list_v) containerLayout.addWidget(table)
def __init__(self, spine, toc, depth, all_items, parent=None): text = toc.text if text: text = re.sub(r'\s', ' ', text) self.title = text self.parent = parent QStandardItem.__init__(self, text if text else '') self.abspath = toc.abspath if toc.href else None self.fragment = toc.fragment all_items.append(self) self.emphasis_font = QFont(self.font()) self.emphasis_font.setBold(True), self.emphasis_font.setItalic(True) self.normal_font = self.font() for t in toc: self.appendRow(TOCItem(spine, t, depth+1, all_items, parent=self)) self.setFlags(Qt.ItemIsEnabled) self.is_current_search_result = False spos = 0 for i, si in enumerate(spine): if si == self.abspath: spos = i break am = {} if self.abspath is not None: try: am = getattr(spine[i], 'anchor_map', {}) except UnboundLocalError: # Spine was empty? pass frag = self.fragment if (self.fragment and self.fragment in am) else None self.starts_at = spos self.start_anchor = frag self.start_src_offset = am.get(frag, 0) self.depth = depth self.is_being_viewed = False
def getRegisterViewRow(self): null = QStandardItem("") null.setEditable(False) return [ self.RegisterItem, self.address, self.length, self.signed, self.readWrite, self.title, self.description ]
def __init__(self, toc, depth, all_items, normal_font, emphasis_font, parent=None): text = toc.get('title') or '' self.href = (toc.get('dest') or '') if toc.get('frag'): self.href += '#' + toc['frag'] if text: text = re.sub(r'\s', ' ', text) self.title = text self.parent = parent self.node_id = toc['id'] QStandardItem.__init__(self, text) all_items.append(self) self.normal_font, self.emphasis_font = normal_font, emphasis_font for t in toc['children']: self.appendRow( TOCItem(t, depth + 1, all_items, normal_font, emphasis_font, parent=self)) self.setFlags(Qt.ItemFlag.ItemIsEnabled) self.is_current_search_result = False self.depth = depth self.set_being_viewed(False)
def insertProject(self, project): """Função responsável por inserir um novo projeto na árvore da UI""" projeto = QStandardItem(project.name) # Adiciona todas as listas que o projeto possui for key in sorted(project.dirList): lista1 = QStandardItem(project.dirList[key].name) projeto.appendRow(lista1) self.rootNode.appendRow(projeto)
def __init__(self): super().__init__() model = QStandardItemModel() for x in range(10): item = QStandardItem('Foo' + str(x)) item.setChild(0, QStandardItem('Zoo')) model.insertRow(0, item) # model.setItem(2, 2, QStandardItem('Bar')) self.setModel(model) self.setHeaderHidden(True)
def displaysql(self): db = pymysql.connect("localhost", "root", "123456", "flowdata", charset="UTF8") cursor = db.cursor() cursor.execute("SELECT *FROM ANOMALYTYPE") rows = cursor.fetchall() if rows != (): row = cursor.rowcount # 取得记录个数,用于设置表格的行数 vol = len(rows[0]) # 取得字段数,用于设置表格的列数 cursor.close() db.close() self.model = QStandardItemModel() self.model.setHorizontalHeaderLabels( ['异常发生时间', '异常流量源地址', '异常流量目的地址', '异常流量类型']) self.tableView.horizontalHeader().setStretchLastSection(True) self.tableView.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) for i in range(row): for j in range(vol): temp_data = rows[i][j] data = QStandardItem("%s" % (str(temp_data))) self.model.setItem(i, j, data) self.tableView.setModel(self.model) else: cursor.close() db.close()
def __init__(self, id_dict: dict, name_dict: dict, parent=None): """ Supers QComboBox, but also creates class references to the categories dictionaries. Args: id_dict: Categories dictionary with id numbers as keys. name_dict: Categories dictionary with names as keys. parent: Widget parent. """ super().__init__() self.id_dict = id_dict self.name_dict = name_dict cat_list = sorted(list(self.name_dict.keys())) self.fill_combo(cat_list) model = QStandardItemModel() for i, word in enumerate(cat_list): item = QStandardItem(word) model.setItem(i, 0, item) self.setModel(model) self.setModelColumn(0) if parent is not None: self.setParent(parent)
def fillModelByCursor(self, cursor): i = 0 setheader = False self.modeldata = [] for item in cursor: j = 0 items = item.items() if setheader == False: self.setColumnCount(len(items)) self.labels = item.keys() if sys.version > '3': self.labels = sorted(self.labels) else: self.labels.sort() self.setHorizontalHeaderLabels(self.labels) setheader = True self.modeldata.append(item) for (field, value) in items: try: fieldindex = self.labels.index(field) except ValueError: self.labels.append(field) fieldindex = len(self.labels) - 1 self.setHorizontalHeaderLabels(self.labels) valueBytes = str(value).encode("utf_8") self.setItem( i, fieldindex, QStandardItem(valueBytes.decode(encoding='utf_8'))) j += 1 i += 1
def update_usb_devices(self): model = QStandardItemModel() bus = dbus.SystemBus() self.iface = 'org.freedesktop.DBus.ObjectManager' #bus.add_signal_receiver(self.callback_function, signal, iface) proxy = bus.get_object("org.freedesktop.UDisks2", "/org/freedesktop/UDisks2") self.iface = dbus.Interface(proxy, "org.freedesktop.UDisks2") self.iface.connect_to_signal('DeviceAdded', self.device_added_callback) self.iface.connect_to_signal('DeviceRemoved', self.device_removed_callback) self.iface.connect_to_signal('InterfacesAdded', self.device_changed_callback) dev1 = get_usb() items = get_usb() #for text, checked in items: for text in sorted(items): text_item = QStandardItem(text) #checked_item = QStandardItem() #checked_item.setData(QVariant(checked), Qt.CheckStateRole) model.appendRow(text_item) #([text_item, checked_item]) view = QTreeView() view.header().hide() view.setRootIsDecorated(False) combo = self.ui.comboBox_device combo.setView(view) combo.setModel(model) combo.show()
def append_row(self,members,data_model): for (i,member) in enumerate(members): cells = [] user_name = member['UserName'] user_name_cell = QStandardItem(user_name) user_name_cell.setCheckable(True) cells.append(user_name_cell) user_avatar = self.contact_head_home + member['UserName']+".jpg" if not os.path.exists(user_avatar): user_avatar = self.default_head_icon dn = member['DisplayName'] or member['NickName'] if not dn: dn = member['NickName'] item = QStandardItem(QIcon(user_avatar),wechatutil.unicode(dn)) cells.append(item) data_model.appendRow(cells)
def updateList(self): #TODO Upgrade to a table, with more data self.fieldlistModel.clear() for field in self.registerLayout.fields: field.listItem = QStandardItem(field.name) field.listItem.setEditable(False) self.fieldlistModel.appendRow(field.listItem) if self.registerLayout.selected is not None: self.updateSelected(self.registerLayout.selected)
def func(): index = self._s_model.index(0, 0) if index.data(LocationCompleterModel.VisitSearchItemRole): self._s_model.setData(index, trimmedStr, Qt.DisplayRole) self._s_model.setData(index, trimmedStr, LocationCompleterModel.UrlRole) self._s_model.setData(index, self._locationBar.text(), LocationCompleterModel.SearchStringRole) else: item = QStandardItem() item.setText(trimmedStr) item.setData(trimmedStr, LocationCompleterModel.UrlRole) item.setData(self._locationBar.text(), LocationCompleterModel.SearchStringRole) item.setData(True, LocationCompleterModel.VisitSearchItemRole) self._s_model.setCompletions([item]) self._addSuggestions(self._oldSuggestions) self._showPopup() if not self._s_view.currentIndex().isValid(): self._ignoreCurrentChanged = True self._s_view.setCurrentIndex(self._s_model.index(0, 0)) self._ignoreCurrentChanged = False
def OKBtn_click(self): val = [] self.model.removeRow(self.num - 1) self.HeJiMoney = self.HeJiMoney + self.je val.append(QStandardItem("%d" % self.num)) val.append(QStandardItem("%d" % self.Zhongliang.value())) val.append(QStandardItem("%.2f" % self.doubleSpinBox_2.value())) val.append(QStandardItem("%.1f" % self.je)) self.data.append(val) self.model.appendRow(val) self.model.item(self.num - 1, 0).setTextAlignment(Qt.AlignCenter) self.model.item(self.num - 1, 1).setTextAlignment(Qt.AlignCenter) self.model.item(self.num - 1, 2).setTextAlignment(Qt.AlignCenter) self.model.item(self.num - 1, 3).setTextAlignment(Qt.AlignCenter) self.model.setItem(self.num, 3, QStandardItem("合计:%.1f" % self.HeJiMoney)) self.model.item(self.num, 3).setTextAlignment(Qt.AlignCenter) self.tableView.scrollToBottom() #滚动到最底部 self.num += 1
def __init__(self): super().__init__(1, 3) self.setHorizontalHeaderLabels(['Item', 'Show', 'Value']) # Label self.setItem(0, 0, QStandardItem('Antialias')) # Visibility checkbox checkItem = QStandardItem('') checkItem.setCheckable(True) checkItem.setCheckState(Qt.Checked) self.setItem(0, 1, checkItem) # sample count # todo spinbox sampleCount = QStandardItem('X') self.setItem(0, 2, sampleCount)
def _generate_model(self, account_hierarchy: Node): stack = [account_hierarchy] while stack: account: Node = stack.pop() # push all children stack += sorted(account.children, key=lambda a: a.value, reverse=True) path_of_account = [account] # reach to root while account.parent is not None: path_of_account.append(account.parent) account = account.parent # pop root from path account_seg: Node = path_of_account.pop() # get root of the data model tree_model_node: QStandardItem = self.root_node # append the whole path to data model while path_of_account: account_seg = path_of_account.pop() tree_model_child: QStandardItem = None # find corresponding node in the data model for child_idx in range(tree_model_node.rowCount()): child = tree_model_node.child(child_idx) if child.text() == account_seg.value: tree_model_child = child break # if not found if tree_model_child is None: # append item = QStandardItem(account_seg.value) item.setEditable(False) tree_model_node.appendRow(item) # get the child just appended and proceed tree_model_node = tree_model_node.child( tree_model_node.rowCount() - 1) else: # continue tree_model_node = tree_model_child
def __init__(self, parent=None): super(FilterPanel, self).__init__(parent) self.form_layout = QFormLayout(parent) self.form_layout.setFormAlignment(Qt.AlignLeft) self.form_layout.setLabelAlignment(Qt.AlignLeft) self.form_layout.setContentsMargins(1, 0, 0, 1) self.filter_layout_1 = QHBoxLayout() self.filter_label = QLabel("Filtro :") self.filter_line = QLineEdit() self.log_types = QComboBox() model = self.log_types.model() for tag in LOGGER_TAGS: item = QStandardItem(tag['name']) item.setForeground(QColor(tag['color'])) model.appendRow(item) self.log_types.colorCount() self.log_types.setCurrentText(LOGGER_TAGS[0]["name"]) self.log_types.currentTextChanged.connect(self.get_log_type) self.filter_layout_1.addWidget(self.log_types) self.filter_layout_1.addWidget(self.filter_line) self.filter_layout_2 = QHBoxLayout() self.filter_search_button = QPushButton("Search") self.filter_clear_button = QPushButton("Clear") self.filter_layout_2.addWidget(self.filter_search_button) self.filter_layout_2.addWidget(self.filter_clear_button) self.form_layout.addRow(self.filter_label, self.filter_layout_1) self.form_layout.addRow(self.filter_layout_2)
def XiuGaiBtn_click(self): if len(self.data) != 0: #判断是否还有数据 self.HeJiMoney -= float(self.data[-1][3].text()) self.data.pop() if self.HeJiMoney < 0: self.HeJiMoney = 0 self.model.removeRow(self.num - 2) #删除最后一次数据 self.model.removeRow(self.num - 1) #删除合计金额行 self.model.setItem(self.num - 2, 3, QStandardItem("合计:%.1f" % self.HeJiMoney)) self.model.item(self.num - 2, 3).setTextAlignment(Qt.AlignCenter) self.num -= 1 if self.num < 1: self.num = 1
def __init__(self, parent=None): super(HighlightOptionsDialog, self).__init__(parent) self.form_layout = QFormLayout(self) self.form_layout.setFormAlignment(Qt.AlignLeft) self.form_layout.setLabelAlignment(Qt.AlignLeft) self.form_layout.setContentsMargins(2, 2, 2, 2) self.setWindowTitle("Highlight Options") check_box_layout = QHBoxLayout() self.timestamp_check = QCheckBox("Timestamp") self.timestamp_check.setChecked(False) self.timestamp_check.stateChanged.connect(self.timestamp_check_change) self.tag_check = QCheckBox("Tag") self.tag_check.setChecked(True) self.func_check = QCheckBox("Function") self.func_check.setChecked(False) self.module_source_check = QCheckBox("Module/Source") self.module_source_check.setChecked(False) check_box_layout.addWidget(self.timestamp_check, alignment=Qt.AlignLeft) check_box_layout.addWidget(self.tag_check, alignment=Qt.AlignLeft) check_box_layout.addWidget(self.func_check, alignment=Qt.AlignLeft) check_box_layout.addWidget(self.module_source_check, alignment=Qt.AlignLeft) highlight_label = QLabel("Highlight Options") self.timestamp_combo = QComboBox() model = self.timestamp_combo.model() for timestamp in LOGGER_TIMESTAMPS: item = QStandardItem(timestamp["name"]) model.appendRow(item) self.timestamp_combo.setCurrentIndex(0) self.timestamp_combo.setEnabled(self.timestamp_check.isChecked()) self.apply_button = QPushButton("Apply") self.apply_button.clicked.connect(self.apply) self.form_layout.addRow(highlight_label) self.form_layout.addRow(check_box_layout) self.form_layout.addRow("TimeStamp Type :", self.timestamp_combo) self.form_layout.addRow(self.apply_button)
def showTable(self): self.totalprice = 0 # 设置表格表头 self.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.model.clear() self.model.setHorizontalHeaderLabels(self.title) self.tableView.setModel(self.model) # 设置内容 if self.materiallist: for b in self.materiallist: for col in range(3): item = QStandardItem("{}".format(b[col])) self.model.setItem(self.materiallist.index(b), col, item) self.tableView.setModel(self.model) for m in self.materiallist: self.totalprice += m[1] * m[2] self.lineEdit_5.setText("{}".format(self.totalprice))
def handle_search_change(self, text): objs = self.obj_map.get_objs_matching_regex(text) model = QStandardItemModel() root = model.invisibleRootItem() monospaced_font = get_monospaced_font() for x in objs: entry = QStandardItem(x) entry.setFont(monospaced_font) entry.setEditable(False) root.appendRow(entry) self.search_result.setModel(model)
def on_open_dir(self): data_dir = QFileDialog.getExistingDirectory(self, "选取文件夹", "./") self.data_dir = data_dir test_data = os.listdir(data_dir) test_data.sort() self.test_data = test_data self.num_data = len(test_data) self.image_ids = list(range(self.num_data)) self.image_id = 0 self.label_img_info.setText("image_id: {}\nname: {}".format( self.image_id, self.test_data[self.image_id])) # 目录树显示 path_data_name = self.model.invisibleRootItem() for i in range(len(test_data)): gos_data = QStandardItem(test_data[i]) path_data_name.setChild(i, gos_data)
def get_tableitem(self, item): """ Return centered QTableWidgetItem with problem :param item: host or service item :type item: alignak_app.items.host.Host | alignak_app.items.service.Service :return: table item with text :rtype: QStandardItem """ tableitem = QStandardItem(self.get_item_text(item)) tableitem.setData(item, Qt.UserRole) icon = QIcon(settings.get_image( get_icon_name_from_state(item.item_type, item.data['ls_state']) )) tableitem.setIcon(icon) tableitem.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter) return tableitem
def get_output_tableitem(item): """ Return centered QTableWidgetItem with output :param item: host or service item :type item: alignak_app.items.host.Host | alignak_app.items.service.Service :return: table item with text :rtype: QStandardItem """ if not item.data['ls_output']: item.data['ls_output'] = 'n\\a' tableitem = QStandardItem(item.data['ls_output']) tableitem.setData(item, Qt.UserRole) tableitem.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter) return tableitem
def update_view(self, problems_data): """ Update QTableView model and proxy filter :param problems_data: problems found in database :type problems_data: dict :return: proxy filter to connect with line edit :rtype: QSortFilterProxyModel """ problems_model = QStandardItemModel() problems_model.setRowCount(len(problems_data['problems'])) problems_model.setColumnCount(len(self.headers_list)) if problems_data['problems']: for row, item in enumerate(problems_data['problems']): problems_model.setItem(row, 0, self.get_tableitem(item)) problems_model.setItem(row, 1, self.get_output_tableitem(item)) else: tableitem = QStandardItem('No problem to report.') icon = QIcon(settings.get_image('checked')) tableitem.setIcon(icon) tableitem.setTextAlignment(Qt.AlignCenter) problems_model.setItem(0, 0, tableitem) proxy_filter = QSortFilterProxyModel() proxy_filter.setFilterCaseSensitivity(Qt.CaseInsensitive) proxy_filter.setSourceModel(problems_model) problems_model.setHorizontalHeaderLabels(self.headers_list) self.setModel(proxy_filter) self.setColumnWidth(0, 500) self.setColumnWidth(1, 300) return proxy_filter
def update_filename_box(self): doing_multiple = self.doing_multiple model = QStandardItemModel() self.filename_box.setModel(model) self.icon_file_names.sort(key=sort_key) if doing_multiple: item = QStandardItem(_('Open to see checkboxes')) item.setIcon(QIcon(I('blank.png'))) else: item = QStandardItem('') item.setFlags(Qt.ItemFlag(0)) model.appendRow(item) for i,filename in enumerate(self.icon_file_names): item = QStandardItem(filename) if doing_multiple: item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) item.setData(Qt.Unchecked, Qt.CheckStateRole) else: item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable) icon = QIcon(os.path.join(self.icon_folder, filename)) item.setIcon(icon) model.appendRow(item)
def CBTextHint(self, Combox=None): mdel = QStandardItemModel(Combox.model()) firstIndex = mdel.index(0, Combox.modelColumn(), Combox.rootModelIndex()) firstItem = QStandardItem(mdel.itemFromIndex(firstIndex)) firstItem.setSelectable(False)
def addItems(self, parent, elements): for text, children in elements: item = QStandardItem(text) parent.appendRow(item) if children: self.addItems(item, children)
def __init__(self, parent=None): super(SerialDialog, self).__init__(parent) self.serial_handler = serial.Serial() self.form_layout = QFormLayout(self) self.form_layout.setFormAlignment(Qt.AlignLeft) self.form_layout.setLabelAlignment(Qt.AlignLeft) self.form_layout.setContentsMargins(2, 2, 2, 2) self.setWindowTitle("Serial Configuration") # TODO more ports # TODO unix port sintax # TODO connect with text parameters baudrate_label = QLabel("Baudrate :") baudrates = ["9600", "19200", "38400", "57600", "115200"] self.baudrate_combo = QComboBox() model = self.baudrate_combo.model() for baudrate in baudrates: item = QStandardItem(baudrate) model.appendRow(item) self.baudrate_combo.setCurrentText("115200") logger.debug("baudrate ok") port_label = QLabel("Porta :") logger.debug("Listing ports") ports = ["COM" + str(i) for i in range(0, 11)] self.ports_combo = QComboBox() model = self.ports_combo.model() for port in ports: item = QStandardItem(port) model.appendRow(item) self.ports_combo.setCurrentText("COM5") logger.debug("port ok") parity_label = QLabel("Paridade :") paritys = ["None", "Even", "Odd"] self.paritys_combo = QComboBox() model = self.paritys_combo.model() for parity in paritys: item = QStandardItem(parity) model.appendRow(item) self.paritys_combo.setCurrentText("None") stop_bits_label = QLabel("Stop Bits :") stop_bits = ["1", "1.5", "2"] self.stop_bits_combo = QComboBox() model = self.stop_bits_combo.model() for stop_bit in stop_bits: item = QStandardItem(stop_bit) model.appendRow(item) self.stop_bits_combo.setCurrentText("1") byte_size_label = QLabel("Byte Size :") byte_sizes = [str(i) for i in range(5, 9)] self.byte_sizes_combo = QComboBox() model = self.byte_sizes_combo.model() for byte_size in byte_sizes: item = QStandardItem(byte_size) model.appendRow(item) self.byte_sizes_combo.setCurrentText("8") self.widgets_list = [ self.baudrate_combo, self.ports_combo, self.paritys_combo, self.stop_bits_combo, self.byte_sizes_combo ] self.message_box = QPlainTextEdit() self.message_box.setFixedHeight(60) self.message_box.setReadOnly(True) self.connect_button = QPushButton("Conectar") self.connect_button.clicked.connect(self.connect_to_serial) self.connect_button.setEnabled(True) self.disconnect_button = QPushButton("Desconectar") self.disconnect_button.clicked.connect(self.disconnect_from_serial) self.disconnect_button.setEnabled(False) self.form_layout.addRow(baudrate_label, self.baudrate_combo) self.form_layout.addRow(port_label, self.ports_combo) self.form_layout.addRow(parity_label, self.paritys_combo) self.form_layout.addRow(stop_bits_label, self.stop_bits_combo) self.form_layout.addRow(byte_size_label, self.byte_sizes_combo) self.form_layout.addRow(self.message_box) buttons_layout = QHBoxLayout() buttons_layout.addWidget(self.connect_button, alignment=Qt.AlignJustify) buttons_layout.addWidget(self.disconnect_button, alignment=Qt.AlignJustify) self.form_layout.addRow(buttons_layout)
def addItems(parent, elements, t=""): for xref, name in elements: item = QStandardItem(name) data = xref item.setData(data) parent.appendRow(item)