def initializePage(self): super(PanelPage, self).initializePage() rootLayout = QVBoxLayout() rootLayout.setContentsMargins(20, 30, 20, 30) row0 = QHBoxLayout() lable0 = QLabel(' 依赖库:') lable0.setAlignment(Qt.AlignTop | Qt.AlignHCenter) self.lw_files = QListWidget() items0 = QStringList() for moudel in app.g_configurations.libs: items0.append(moudel['name']) self.lw_files.addItems(items0) row0.addWidget(lable0) row0.addWidget(self.lw_files) row1 = QHBoxLayout() lable1 = QLabel('工程文件:') lable1.setAlignment(Qt.AlignTop | Qt.AlignHCenter) self.lw_files = QListWidget() items1 = QStringList() for file in app.g_configurations.config['files']: items1.append(file['target']) self.lw_files.addItems(items1) row1.addWidget(lable1) row1.addWidget(self.lw_files) rootLayout.addLayout(row0) rootLayout.addLayout(row1) self.setLayout(rootLayout)
def _populate_datasets_tree(self): """ Initialize the tree widget of datasets and volumes. """ self._data_treewidget.clear() if self._repos_info is None: return for dset_uuid, dset_info in sorted(self._repos_info.items()): dset_item = QTreeWidgetItem(self._data_treewidget, QStringList(dset_uuid)) dset_item.setData(0, Qt.UserRole, (dset_uuid, "")) for data_name in dset_info["DataInstances"].keys(): data_item = QTreeWidgetItem(dset_item, QStringList(data_name)) data_item.setData(0, Qt.UserRole, (dset_uuid, data_name)) if self._mode == 'specify_new': # If we're in specify_new mode, only the dataset parent items are selectable. flags = data_item.flags() flags &= ~Qt.ItemIsSelectable flags &= ~Qt.ItemIsEnabled data_item.setFlags(flags) # Expand everything self._data_treewidget.expandAll() # Select the first item by default. if self._mode == "select_existing": first_item = self._data_treewidget.topLevelItem(0).child(0) else: first_item = self._data_treewidget.topLevelItem(0) self._data_treewidget.setCurrentItem(first_item, 0)
def __init__(self, parent=None): """ Constructor """ QDialog.__init__(self, parent) self.setupUi(self) self.parent = parent self.pxSchedTbl = parent.pxCurSelGaInOsObj self.setWindowTitle("Configure Schedule Table <%s>" % (self.pxSchedTbl.xScheduleTableName)) self.vDisableAllTab() self.pxCurSelEp = None self.pxCurSelEpSubIndex = -1 self.pxCurSelTreeItem = None #根据table 刷新界面树,初始化 index = 0 for ep in self.pxSchedTbl.xSchedTblEpList: defaultName = QString('Expiry Point %s(%s)' % (index, ep[0])) pxTreeIlem = QTreeWidgetItem(self.trSchedTable, QStringList(defaultName)) self.trSchedTable.addTopLevelItem(pxTreeIlem) index += 1 for epsub in ep[1]: defaultName = QString(epsub) pxTreeIlem2 = QTreeWidgetItem(None, QStringList(defaultName)) pxTreeIlem.addChild(pxTreeIlem2) pxTreeIlem.setExpanded(True) #刷新基本控件 self.cbxSchedTblRepeatable.setChecked( self.pxSchedTbl.xSchedTblRepeatable) self.cbxSchedTblAutostartable.setChecked( self.pxSchedTbl.xSchedTblAutostartable) self.cmbxSchedTblAutoStartType.setCurrentIndex( self.vDoGetAutostartType()) self.cmbxSchedTblSyncStrategy.setCurrentIndex( self.vDoGetSyncStrategy()) self.spbxSchedTblAbsRel.setValue(self.pxSchedTbl.xSchedTblAbsRelValue) self.spbxSchedTblFinalDelay.setValue( self.pxSchedTbl.xSchedTblFinalDelay) self.spbxSchedTblMaxAdvance.setValue( self.pxSchedTbl.xSchedTblMaxAdvance) self.spbxSchedTblMaxRetard.setValue(self.pxSchedTbl.xSchedTblMaxRetard) self.spbxSchedTblPrecision.setValue( self.pxSchedTbl.xSchedTblExplicitPrecision) index = -1 i = 0 for cnt in self.parent.pxGaInOSCounterCfgList: name = cnt.xCounterName self.cmbxSchedTblDrivingCounter.addItem(name) if (self.pxSchedTbl.xSchedTblDrivingCounter == name): index = i i += 1 #模拟一次点击刷新控件 self.on_cbxSchedTblAutostartable_clicked( self.pxSchedTbl.xSchedTblAutostartable) #初始化控件 self.btnAdd.setText("Add Expiry Point") self.btnAdd.setDisabled(False) self.btnInsert.setDisabled(True) self.btnDelete.setDisabled(True)
def prepareQtMacBundle(toolname, version, args): """ Module function for starting Qt tools that are Mac OS X bundles. @param toolname plain name of the tool (e.g. "designer") (string or QString) @param version indication for the requested version (Qt 4) (integer) @param args name of input file for tool, if any (QStringList) @return command-name and args for QProcess (tuple) """ if version == 4: qtDir = Preferences.getQt("Qt4Dir") else: return ("", QStringList()) fullBundle = os.path.join(qtDir, 'bin', generateQtToolName(toolname)) + ".app" if not os.path.exists(fullBundle): fullBundle = os.path.join(qtDir, generateQtToolName(toolname)) + ".app" newArgs = QStringList() newArgs.append("-a") newArgs.append(fullBundle) newArgs += args return ("open", newArgs)
def update_autocomplete_fields(self): self.titleList = QStringList(self.db.get_string_list("Title")) self.speakerList = QStringList(self.db.get_string_list("Speaker")) self.categoryList = QStringList(self.db.get_string_list("Category")) self.eventList = QStringList(self.db.get_string_list("Event")) self.roomList = QStringList(self.db.get_string_list("Room")) self.titleCompleter = QCompleter(self.titleList) self.titleCompleter.setCaseSensitivity(Qt.CaseInsensitive) self.speakerCompleter = QCompleter(self.speakerList) self.speakerCompleter.setCaseSensitivity(Qt.CaseInsensitive) self.categoryCompleter = QCompleter(self.categoryList) self.categoryCompleter.setCaseSensitivity(Qt.CaseInsensitive) self.eventCompleter = QCompleter(self.eventList) self.eventCompleter.setCaseSensitivity(Qt.CaseInsensitive) self.roomCompleter = QCompleter(self.roomList) self.roomCompleter.setCaseSensitivity(Qt.CaseInsensitive) self.talkDetailsWidget.titleLineEdit.setCompleter(self.titleCompleter) self.talkDetailsWidget.presenterLineEdit.setCompleter( self.speakerCompleter) self.talkDetailsWidget.categoryLineEdit.setCompleter( self.categoryCompleter) self.talkDetailsWidget.eventLineEdit.setCompleter(self.eventCompleter) self.talkDetailsWidget.roomLineEdit.setCompleter(self.roomCompleter)
def addRxChannel(self): id = len(self.cfg.rxChannelList) name = QString('vRxChannel%s' % (id)) item = QTreeWidgetItem(self.curtree, QStringList(name)) obj = J1939TpChannel(name) self.cfg.rxChannelList.append(obj) obj.PgsList.append(J1939TpPgs('vRxPg0')) QTreeWidgetItem(item, QStringList('vRxPg0')) self.curtree.setExpanded(True)
def reloadTreeChannel(self, index, list): tree=self.trJ1939Tp.topLevelItem(index); for index in range(0, tree.childCount()): temp=tree.takeChild(0); del temp; for obj in list: item=QTreeWidgetItem(tree,QStringList(obj.name)); for obj2 in obj.PgsList: item2 = QTreeWidgetItem(item,QStringList(obj2.name));
def addTxChannel(self): id = len(self.cfg.txChannelList); name=QString('vTxChannel%s'%(id)); item=QTreeWidgetItem(self.curtree,QStringList(name)); obj = J1939TpChannel(name); self.cfg.txChannelList.append(obj); obj.PgsList.append(J1939TpPgs('vTxPg0')); QTreeWidgetItem(item,QStringList('vTxPg0')); self.curtree.setExpanded(True);
def reloadTaskGui(self): tree = self.trModule.topLevelItem(1) for index in range(0, tree.childCount()): temp = tree.takeChild(0) del temp for obj in self.cfg.taskList: item = QTreeWidgetItem(tree, QStringList(obj.name)) tree.addChild(item) for ent in obj.eventList: item2 = QTreeWidgetItem(item, QStringList(ent.name)) item.addChild(item2)
def reloadCtrlGui(self): tree=self.trCanCfg.topLevelItem(1); for index in range(0, tree.childCount()): temp=tree.takeChild(0); del temp; for obj in self.cfg.CanCtrlList: item=QTreeWidgetItem(tree,QStringList(obj.name)); tree.addChild(item); for hoh in obj.hohList: item2=QTreeWidgetItem(item,QStringList(hoh.name)); item.addChild(item2);
def reloadGui(self): tree = self.trSchedTable.topLevelItem(0) for tbl in self.cfg.table: item = QTreeWidgetItem( tree, QStringList('Expiry Point(offset = %s)' % (tbl.offset))) tree.addChild(item) for action in tbl.actionList: item2 = QTreeWidgetItem(item, QStringList(action)) item.addChild(item2) item.setExpanded(True) tree.setExpanded(True)
def _load_file_symbols(self): item = self.currentItem() module = introspection.load_module(item.path, str(item.text(0)[:-3])) for class_info in introspection.get_classes_and_methods(module): class_item = ItemTree(item, QStringList(class_info['name']), item.path) class_item.setToolTip(0, class_info['name']) for method_info in class_info['methods']: method_item = ItemTree(class_item, QStringList(method_info['name']), item.path) method_item.setToolTip(0, method_info['name'])
def vDoRefreshtrInResAssignedAndAvailableTask(self): self.trInResAssignedTask.clear() self.trInResAvailableTask.clear() for tsk in self.pxGaInOSTaskCfgList: name = QString('%s' % (tsk.xTaskName)) if (tsk.xTaskWithInRes == False): pxTreeIlem = QTreeWidgetItem(self.trInResAvailableTask, QStringList(name)) self.trInResAvailableTask.addTopLevelItem(pxTreeIlem) elif (tsk.xTaskInResName == self.pxCurSelGaInOsObj.xInResName): pxTreeIlem = QTreeWidgetItem(self.trInResAssignedTask, QStringList(name)) self.trInResAssignedTask.addTopLevelItem(pxTreeIlem)
def _load_tree(self): self.clear() try: if self.globals: globals_item = ItemTree(self, QStringList('self.globals')) globals_item.isClickable = False for glob in self.globals: glob_item = ItemTree(globals_item, QStringList(glob['name']), lineno=glob['lineno']) glob_item.setIcon(0, QIcon(resources.images['attribute'])) if self.classes: #classes for klass in self.classes: name = "%s(%s)" % (klass['name'], ', '.join( [k for k in klass['superclasses']])) class_item = ItemTree(self, QStringList(name), lineno=klass['lineno']) class_item.setIcon(0, QIcon(resources.images['class'])) #attributes if klass['attributes']: attributes_item = ItemTree(class_item, QStringList('Attributes')) attributes_item.isClickable = False for attribute in klass['attributes']: item = ItemTree(attributes_item, QStringList(attribute['name']), lineno=attribute['lineno']) item.isAttribute = True item.setIcon(0, QIcon(resources.images['attribute'])) #metodos if klass['methods']: methods_item = ItemTree(class_item, QStringList('Methods')) methods_item.isClickable = False for method in klass['methods']: item = ItemTree(methods_item, QStringList(method['name']), lineno=method['lineno']) item.setIcon(0, QIcon(resources.images['function'])) #functions if self.functions: functions_item = QTreeWidgetItem(self, QStringList('self.functions')) functions_item.isClickable = False for func in self.functions: item = ItemTree(functions_item, QStringList(func['name']), lineno=func['lineno']) item.setIcon(0, QIcon(resources.images['function'])) self.expandAll() except Exception: print 'Error parsing this file for Tree Symbols: method refresh'
def reloadTreeGui(self): tree=self.trCanIfCfg.topLevelItem(0); for index in range(0, tree.childCount()): temp=tree.takeChild(0); del temp; for obj in self.cfg.channelList: item=QTreeWidgetItem(tree,QStringList(obj.name)); tree.addChild(item); for hoh in obj.hthList+obj.hrhList: item2=QTreeWidgetItem(item,QStringList(hoh.name)); item.addChild(item2); for pdu in hoh.pduList: item3=QTreeWidgetItem(item2,QStringList(pdu.name)); item2.addChild(item3);
def test_add_addon(qtbot, addons_editor, addons_file): with patch("mozregui.addons_editor.QFileDialog") as dlg: filePath = addons_file dlg.getOpenFileNames.return_value = QStringList(filePath) qtbot.mouseClick(addons_editor.ui.add_addon, Qt.LeftButton) dlg.getOpenFileNames.assert_called_once_with( addons_editor, "Choose one or more addon files", filter="addon file (*.xpi)", ) # check addons assert addons_editor.list_model.rowCount() == len( QStringList(filePath)) assert addons_editor.get_addons() == [filePath]
def __saveScreenshot(self): format = "png" initialPath = QDesktopServices.storageLocation( QDesktopServices.PicturesLocation) # initialPath = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation); if initialPath.isEmpty(): initialPath = QDir.currentPath() initialPath += "/untitled." + format fileDialog = QtGui.QFileDialog(self, u"存储为", initialPath) fileDialog.setAcceptMode(QtGui.QFileDialog.AcceptSave) fileDialog.setFileMode(QtGui.QFileDialog.AnyFile) fileDialog.setDirectory(initialPath) mimeTypes = QStringList() for bf in QImageWriter.supportedImageFormats(): mimeTypes.append(QLatin1String(bf)) # fileDialog.setMin setMimeTypeFilters(mimeTypes) # fileDialog.selectMimeTypeFilter("image/" + format); fileDialog.setDefaultSuffix(format) if fileDialog.accept(): return fileName = fileDialog.selectedFiles().first() if not self.originalPixmap.save(fileName): QtGui.QMessageBox.Warning( self, u"保存错误", u"图像无法存储到 \"%s\"." % str(QDir.toNativeSeparators(fileName)))
def moveTreeItem(self, trFrom, trTo): if (trFrom.currentItem()): name = trFrom.currentItem().text(0) item = QTreeWidgetItem(trTo, QStringList(name)) #add trFrom.takeTopLevelItem( trFrom.indexOfTopLevelItem(trFrom.currentItem()))
def setCompleter(self, text): if (text.isEmpty()): self.listView.hide() return if text.length() > 1 and not self.listView.isHidden(): return # 如果完整的完成列表中的某个单词包含输入的文本,则加入要显示的完成列表串中 sl = QStringList() for i in range(self.words.count()): if self.words[i].contains(text): sl << self.words[i] self.model.setStringList(sl) self.listView.setModel(self.model) if (self.model.rowCount() == 0): return # Position the text edit self.listView.setMinimumWidth(self.width()) self.listView.setMaximumWidth(self.width()) p = QPoint(0, self.height()) x = self.mapToGlobal(p).x() y = self.mapToGlobal(p).y() + 1 self.listView.move(x, y) self.listView.show()
def RandomDemand(self): d = self.randomDialog types = [] for v in self.project.resources.vertices: if isinstance(v, Storage) and (types.count(v.type) == 0): types.append(v.type) if len(types) == 1: #only type 0 d.ui.cc1.setEnabled(False) d.ui.cc2.setEnabled(False) d.exec_() if d.result() == QDialog.Accepted: dict = d.GetResult() dict["types"] = types for i in range(dict["n"]): demand = self.project.CreateRandomDemand(dict) it = QTreeWidgetItem( self.ui.demands, QStringList([ demand.id, str(demand.startTime), str(demand.endTime), self.tr("No"), self.tr("No") ])) cb = QComboBox() cb.addItems([self.tr("No"), self.tr("Yes")]) self.ui.demands.setItemWidget(it, 3, cb) QObject.connect(cb, SIGNAL("currentIndexChanged(int)"), it.emitDataChanged) it.setFlags(Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable) self.demands[it] = demand
def GenerateRequests(self): generator = self.generators[self.sender()] data = generator.GetSettings() d = ParamsDialog(data, self, generator.GetName() == "Tightly coupled", generator.GetName() == "Tightly coupled") d.exec_() if d.result() == QDialog.Accepted: generator.UpdateSettings(d.data) #TODO: populate the table with new demands self.project.demands = generator.Generate(self.project.resources) self.ui.demands.clear() self.demands = {} for demand in self.project.demands: it = QTreeWidgetItem( self.ui.demands, QStringList([ demand.id, str(demand.startTime), str(demand.endTime), self.tr("No"), self.tr("No") ])) cb = QComboBox() cb.addItems([self.tr("No"), self.tr("Yes")]) self.ui.demands.setItemWidget(it, 3, cb) QObject.connect(cb, SIGNAL("currentIndexChanged(int)"), it.emitDataChanged) it.setFlags(Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable) self.demands[it] = demand
def __init__(self): super(self.__class__, self).__init__() self.setupUi( self) # This is defined in design.py file automatically # self.listWidget_Xoutput_files.addItem("deneme") cleaner_files_path = os.path.join(str(QDir.currentPath()), "cleaner_files") if not os.path.exists(cleaner_files_path): os.mkdir(cleaner_files_path) self.model = QFileSystemModel() self.model.setRootPath(cleaner_files_path) self.model.setNameFilters(QStringList(["Xoutput-n_analyses-*.txt" ])) self.model.setNameFilterDisables(False) self.model.setFilter(QDir.Dirs | QDir.Files) self.treeView_Xoutput_files.setModel(self.model) self.treeView_Xoutput_files.setRootIndex( self.model.index(cleaner_files_path)) self.treeView_Xoutput_files.setColumnWidth(0, 500) self.treeView_Xoutput_files.selectionModel( ).selectionChanged.connect(self.load_and_view_file_contents) self.rules_dict = {} self.special_button_for_level_01.setDisabled(True)
def load_and_view_file_contents(self, current, previous): print current.indexes() model_index = current.indexes()[0] filename = self.model.data(model_index).toString() import re m = re.match(r"Xoutput-n_analyses-([0-9]+)", filename) if m: n_analyzes = int(m.group(1)) else: n_analyzes = -1 if n_analyzes == 1: self.special_button_for_level_01.setDisabled(False) self.special_button_for_level_01.clicked.connect( self.add_all_level_01_to_rule_dict) else: self.special_button_for_level_01.setDisabled(True) with codecs.open(filename, "r", encoding="utf8") as f: lines = f.readlines() # print lines self.listWidget_selected_file_contents.clear() self.listWidget_selected_file_contents.addItems( QStringList(lines)) self.listWidget_selected_file_contents.selectionModel( ).selectionChanged.connect( self.load_and_view_samples_from_train_and_dev) self.load_and_view_rule_file_contents(n_analyzes)
def deleteUser(self): user = str(self.cbUsers.currentText()) if user != 'Usernames': self.cursor.execute('ALTER GROUP ' + self.db + '_project_admins DROP USER ' + user) sql = 'DROP OWNED BY ' + user self.cursor.execute(sql) sql = 'DROP USER ' + user self.cursor.execute(sql) sql = "DELETE FROM password_change_status WHERE username='******'" self.cursor.execute(sql) self.conn.commit() sql = "select usename from pg_shadow where usename NOT IN ('" + self.username + "', 'postgres')" self.cursor.execute(sql) rows = self.cursor.fetchall() users = [user[0] for user in rows] self.cbUsers.clear() self.cbUsers.addItem(QString("Usernames")) self.cbUsers.addItems(QStringList(users)) self.cbUsers.setCurrentIndex(0) message = QtGui.QMessageBox() message.setIcon(QtGui.QMessageBox.Information) message.setText('User deleted successfully.') message.setWindowTitle('User Deletion') message.setStandardButtons(QtGui.QMessageBox.Ok) message.exec_()
def uploadHeader(self): dlg = QFileDialog() dlg.setFileMode(QFileDialog.AnyFile) dlg.setFilter("ASC File (*.asc);; TXT File (*.txt);;All File (*.*)") filenames = QStringList() if dlg.exec_(): filenames = dlg.selectedFiles() self.getWidgetFromParameter # Parse header acs file name with open(str(filenames[0]), 'r') as infile: for line in infile: values = line.strip().split(' ') if values[0] == "ncols": self.widgets["N_COLS"].spnValue.setValue(int(values[1])) elif values[0] == "nrows": self.widgets["N_ROWS"].spnValue.setValue(float(values[1])) elif values[0] == "xllcorner": self.widgets["XLL_CORNER"].spnValue.setValue(float(values[1])) elif values[0] == "yllcorner": self.widgets["YLL_CORNER"].spnValue.setValue(float(values[1])) elif values[0] == "cellsize": self.widgets["CELL_SIZE"].spnValue.setValue(float(values[1])) elif values[0] == "NODATA_value": self.widgets["NODATA_VALUE"].spnValue.setValue(int(values[1])) else: break
def _load_bookmarks(self): self.bookmark_tree.clear() lane_index = self.topLevelOperatorView.current_view_index() lane_nickname = self.topLevelOperatorView.InputImages.meta.nickname or "Lane {}".format( lane_index) bookmarks = self.topLevelOperatorView.Bookmarks.value group_item = QTreeWidgetItem(self.bookmark_tree, QStringList(lane_nickname)) for coord, notes in bookmarks: item = QTreeWidgetItem(group_item, QStringList()) item.setText(0, str(coord)) item.setData(0, Qt.UserRole, (coord, notes)) item.setText(1, notes) self.bookmark_tree.expandAll()
def __init__(self, parent=None): super(InitialWindow, self).__init__(parent) self.setupUi(self) self.CaptureButton.setFocusPolicy(Qt.NoFocus) self.DetailButton.setFocusPolicy(Qt.NoFocus) self.NIChooser.setFocusPolicy(Qt.NoFocus) self.setWindowIcon(QIcon(':/icon/mask.ico')) self.NIChooser.addItems(QStringList(get_nic_list())) # to set table self.MainTable.setEditTriggers(QAbstractItemView.NoEditTriggers) self.MainTable.setFocusPolicy(Qt.NoFocus) self.MainTable.verticalHeader().setVisible(False) self.capture = CountdownTask() #to show the current time dynamically self.show_time() self.Ctime.setAlignment(Qt.AlignCenter) self.Ctime.setStyleSheet("color:red") tim = QTimer(self) tim.timeout.connect(self.show_time) #signal-slot self.DetailButton.clicked.connect(self.show_detail) self.MainTable.cellDoubleClicked.connect(self.show_detail) self.saveButton.clicked.connect(self.save_file)
def __processArgType(self, name, ob, **args): # this is the column index col = len(self._header) # If it's a name then be careful not to add it twice if name == getattr(self.ob, 'UniqueName', 'name'): assert ob.typ == str, 'Object name must be a string' self._tooltips[2] = QVariant(ob.desc) else: # add the header, type and tooltip self._header.append(QVariant(name)) self._types.append(ob.typ) self._tooltips.append(QVariant(ob.desc)) # if we have a default value, set it if 'default' in args: if args['default'] is None: self._defaults[col] = QVariant('None') else: self._defaults[col] = QVariant(args['default']) # if this is optional elif 'optional' in args: self._optional.append(col) # it must be required else: self._required.append(col) # if we have combo box items if hasattr(ob, 'labels'): self._cItems[col] = QVariant( QStringList([QString(str(x)) for x in ob.labels])) # if we have combo box values if hasattr(ob, 'values'): self._cValues[col] = [QVariant(x) for x in ob.values] # if it's an ident if hasattr(ob, 'ident'): self._idents.append(col)
def __init__(self, methodName): """Run once on class initialisation.""" unittest.TestCase.__init__(self, methodName) myPath = os.path.join(TEST_DATA_DIR, 'landsat.tif') rasterFileInfo = QFileInfo(myPath) mRasterLayer = QgsRasterLayer(rasterFileInfo.filePath(), rasterFileInfo.completeBaseName()) rasterRenderer = QgsMultiBandColorRenderer( mRasterLayer.dataProvider(), 2, 3, 4) mRasterLayer.setRenderer(rasterRenderer) #pipe = mRasterLayer.pipe() #assert pipe.set(rasterRenderer), 'Cannot set pipe renderer' QgsMapLayerRegistry.instance().addMapLayers([mRasterLayer]) # create composition with composer map self.mMapRenderer = QgsMapRenderer() layerStringList = QStringList() layerStringList.append(mRasterLayer.id()) self.mMapRenderer.setLayerSet(layerStringList) self.mMapRenderer.setProjectionsEnabled(False) self.mComposition = QgsComposition(self.mMapRenderer) self.mComposition.setPaperSize(297, 210) self.mComposerMap = QgsComposerMap(self.mComposition, 20, 20, 200, 100) self.mComposerMap.setFrameEnabled(True) self.mComposition.addComposerMap(self.mComposerMap)
def mimeTypes(self): types = QStringList() # "application/vnd.text.list"是自定义的类型,在后面的函数中要保持一致 types << "application/vnd.text.list" # types.append("application/vnd.text.list") return types