本文整理汇总了Python中qgis.PyQt.QtWidgets.QPlainTextEdit类的典型用法代码示例。如果您正苦于以下问题:Python QPlainTextEdit类的具体用法?Python QPlainTextEdit怎么用?Python QPlainTextEdit使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QPlainTextEdit类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: ErrorReportDialog
class ErrorReportDialog(QDialog):
def __init__(self, title, message, errors, username, parent=None):
QDialog.__init__(self, parent)
self.setWindowTitle(title)
self.verticalLayout = QVBoxLayout(self)
self.label = QLabel(message, self)
self.verticalLayout.addWidget(self.label)
self.plainTextEdit = QPlainTextEdit(self)
self.plainTextEdit.setPlainText(errors)
self.plainTextEdit.setReadOnly(True)
self.verticalLayout.addWidget(self.plainTextEdit)
self.buttonBox = QDialogButtonBox(self)
self.buttonBox.setOrientation(Qt.Horizontal)
self.buttonBox.setStandardButtons(QDialogButtonBox.Close)
self.verticalLayout.addWidget(self.buttonBox)
self.reportButton = self.buttonBox.addButton(self.tr("Report error"), QDialogButtonBox.ActionRole)
self.reportButton.clicked.connect(self.__reportError)
self.buttonBox.accepted.connect(self.accept)
self.buttonBox.rejected.connect(self.reject)
self.username = username
self.metadata = MetaData()
def __reportError(self):
body = ("Please provide any additional information here:\n\n\n"
"If you encountered an upload error, if possible please attach a zip file containing a minimal extract of the dataset, as well as the QGIS project file.\n\n\n"
"Technical information:\n%s\n\n"
"Versions:\n"
" QGIS: %s\n"
" Python: %s\n"
" OS: %s\n"
" QGIS Cloud Plugin: %s\n\n"
"Username: %s\n") % (
self.plainTextEdit.toPlainText(),
Qgis.QGIS_VERSION,
sys.version.replace("\n", " "),
platform.platform(),
self.metadata.version(),
self.username)
url = QUrl()
url.toEncoded("mailto:[email protected]?subject=%s&body=%s" % (
urllib.parse.quote(self.windowTitle()),
urllib.parse.quote(body)),
)
QDesktopServices.openUrl(url)
开发者ID:qgiscloud,项目名称:qgis-cloud-plugin,代码行数:50,代码来源:error_report_dialog.py
示例2: __init__
def __init__(self, title, message, errors, username, parent=None):
QDialog.__init__(self, parent)
self.setWindowTitle(title)
self.verticalLayout = QVBoxLayout(self)
self.label = QLabel(message, self)
self.verticalLayout.addWidget(self.label)
self.plainTextEdit = QPlainTextEdit(self)
self.plainTextEdit.setPlainText(errors)
self.plainTextEdit.setReadOnly(True)
self.verticalLayout.addWidget(self.plainTextEdit)
self.buttonBox = QDialogButtonBox(self)
self.buttonBox.setOrientation(Qt.Horizontal)
self.buttonBox.setStandardButtons(QDialogButtonBox.Close)
self.verticalLayout.addWidget(self.buttonBox)
self.reportButton = self.buttonBox.addButton(self.tr("Report error"), QDialogButtonBox.ActionRole)
self.reportButton.clicked.connect(self.__reportError)
self.buttonBox.accepted.connect(self.accept)
self.buttonBox.rejected.connect(self.reject)
self.username = username
self.metadata = MetaData()
开发者ID:qgiscloud,项目名称:qgis-cloud-plugin,代码行数:26,代码来源:error_report_dialog.py
示例3: MultilineTextPanel
class MultilineTextPanel(QWidget):
USE_TEXT = 0
def __init__(self, options, parent=None):
super(MultilineTextPanel, self).__init__(parent)
self.options = options
self.verticalLayout = QVBoxLayout(self)
self.verticalLayout.setSpacing(2)
self.verticalLayout.setMargin(0)
self.combo = QComboBox()
self.combo.addItem(self.tr('[Use text below]'))
for option in options:
self.combo.addItem(option[0], option[1])
self.combo.setSizePolicy(QSizePolicy.Expanding,
QSizePolicy.Expanding)
self.verticalLayout.addWidget(self.combo)
self.textBox = QPlainTextEdit()
self.verticalLayout.addWidget(self.textBox)
self.setLayout(self.verticalLayout)
def setText(self, text):
self.textBox.setPlainText(text)
def getOption(self):
return self.combo.currentIndex()
def getValue(self):
if self.combo.currentIndex() == 0:
return str(self.textBox.toPlainText())
else:
return self.combo.currentData()
def setValue(self, value):
items = [self.combo.itemData(i) for i in range(1, self.combo.count())]
for idx, item in enumerate(items):
if item == value:
self.combo.setCurrentIndex(idx)
return
self.combo.setCurrentIndex(0)
if value:
self.textBox.setPlainText(value)
开发者ID:dbaston,项目名称:QGIS,代码行数:42,代码来源:MultilineTextPanel.py
示例4: GdalParametersPanel
class GdalParametersPanel(ParametersPanel):
def __init__(self, parent, alg):
ParametersPanel.__init__(self, parent, alg)
w = QWidget()
layout = QVBoxLayout()
layout.setMargin(0)
layout.setSpacing(6)
label = QLabel()
label.setText(self.tr("GDAL/OGR console call"))
layout.addWidget(label)
self.text = QPlainTextEdit()
self.text.setReadOnly(True)
layout.addWidget(self.text)
w.setLayout(layout)
self.layoutMain.addWidget(w)
self.connectParameterSignals()
self.parametersHaveChanged()
def connectParameterSignals(self):
for wrapper in list(self.wrappers.values()):
w = wrapper.widget
if isinstance(w, QLineEdit):
w.textChanged.connect(self.parametersHaveChanged)
elif isinstance(w, QComboBox):
w.currentIndexChanged.connect(self.parametersHaveChanged)
elif isinstance(w, QCheckBox):
w.stateChanged.connect(self.parametersHaveChanged)
elif isinstance(w, MultipleInputPanel):
w.selectionChanged.connect(self.parametersHaveChanged)
elif isinstance(w, NumberInputPanel):
w.hasChanged.connect(self.parametersHaveChanged)
def parametersHaveChanged(self):
try:
parameters = self.parent.getParamValues()
for output in self.alg.destinationParameterDefinitions():
if parameters[output.name()] is None:
parameters[output.name()] = self.tr("[temporary file]")
commands = self.alg.getConsoleCommands(parameters)
commands = [c for c in commands if c not in ['cmd.exe', '/C ']]
self.text.setPlainText(" ".join(commands))
except AlgorithmDialogBase.InvalidParameterValue as e:
self.text.setPlainText(self.tr("Invalid value for parameter '{0}'").format(e.parameter.description()))
except:
self.text.setPlainText("")
开发者ID:peterisb,项目名称:QGIS,代码行数:48,代码来源:GdalAlgorithmDialog.py
示例5: __init__
def __init__(self, options, parent=None):
super(MultilineTextPanel, self).__init__(parent)
self.options = options
self.verticalLayout = QVBoxLayout(self)
self.verticalLayout.setSpacing(2)
self.verticalLayout.setMargin(0)
self.combo = QComboBox()
self.combo.addItem(self.tr("[Use text below]"))
for option in options:
self.combo.addItem(option[0], option[1])
self.combo.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
self.verticalLayout.addWidget(self.combo)
self.textBox = QPlainTextEdit()
self.verticalLayout.addWidget(self.textBox)
self.setLayout(self.verticalLayout)
开发者ID:rldhont,项目名称:Quantum-GIS,代码行数:15,代码来源:MultilineTextPanel.py
示例6: initGui
def initGui(self):
self.setWindowTitle('Import to GeoGig')
verticalLayout = QVBoxLayout()
if self.repo is None:
repos = repository.repos
layerLabel = QLabel('Repository')
verticalLayout.addWidget(layerLabel)
self.repoCombo = QComboBox()
self.repoCombo.addItems(["%s - %s" % (r.group, r.title) for r in repos])
self.repoCombo.currentIndexChanged.connect(self.updateBranches)
verticalLayout.addWidget(self.repoCombo)
if self.layer is None:
layerLabel = QLabel('Layer')
verticalLayout.addWidget(layerLabel)
self.layerCombo = QComboBox()
layerNames = [layer.name() for layer in vectorLayers()
if layer.source().lower().split("|")[0].split(".")[-1] in["gpkg", "geopkg"]
and not isRepoLayer(layer)]
self.layerCombo.addItems(layerNames)
verticalLayout.addWidget(self.layerCombo)
self.branchLabel = QLabel("Branch")
verticalLayout.addWidget(self.branchLabel)
self.branchCombo = QComboBox()
self.branches = self.repo.branches() if self.repo is not None else repos[0].branches()
self.branchCombo.addItems(self.branches)
verticalLayout.addWidget(self.branchCombo)
messageLabel = QLabel('Message to describe this update')
verticalLayout.addWidget(messageLabel)
self.messageBox = QPlainTextEdit()
verticalLayout.addWidget(self.messageBox)
self.buttonBox = QDialogButtonBox(QDialogButtonBox.Cancel)
self.importButton = QPushButton("Add layer")
self.importButton.clicked.connect(self.importClicked)
self.buttonBox.addButton(self.importButton, QDialogButtonBox.ApplyRole)
self.buttonBox.rejected.connect(self.cancelPressed)
verticalLayout.addWidget(self.buttonBox)
self.setLayout(verticalLayout)
self.resize(600, 300)
self.messageBox.setFocus()
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:48,代码来源:importdialog.py
示例7: __init__
def __init__(self, parent, alg):
ParametersPanel.__init__(self, parent, alg)
w = QWidget()
layout = QVBoxLayout()
layout.setMargin(0)
layout.setSpacing(6)
label = QLabel()
label.setText(self.tr("GDAL/OGR console call"))
layout.addWidget(label)
self.text = QPlainTextEdit()
self.text.setReadOnly(True)
layout.addWidget(self.text)
w.setLayout(layout)
self.layoutMain.addWidget(w)
self.connectParameterSignals()
self.parametersHaveChanged()
开发者ID:telwertowski,项目名称:Quantum-GIS,代码行数:18,代码来源:GdalAlgorithmDialog.py
示例8: initGui
def initGui(self):
self.setObjectName("CommitDialog")
self.resize(600, 250)
self.setWindowTitle("Syncronize layer to repository branch")
self.verticalLayout = QVBoxLayout()
self.verticalLayout.setSpacing(2)
self.verticalLayout.setMargin(5)
self.branchLabel = QLabel("Branch")
self.verticalLayout.addWidget(self.branchLabel)
self.branchCombo = QComboBox()
self.branches = []
branches = self.repo.branches()
for branch in branches:
trees = self.repo.trees(branch)
if self.layername in trees:
self.branches.append(branch)
self.branchCombo.addItems(self.branches)
try:
idx = self.branches.index("master")
except:
idx = 0
self.branchCombo.setCurrentIndex(idx)
self.verticalLayout.addWidget(self.branchCombo)
self.msgLabel = QLabel("Message to describe this update")
self.verticalLayout.addWidget(self.msgLabel)
self.text = QPlainTextEdit()
self.text.setPlainText(self._message)
self.verticalLayout.addWidget(self.text)
self.buttonBox = QDialogButtonBox(QDialogButtonBox.Ok)
self.verticalLayout.addWidget(self.buttonBox)
self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(bool(self.branches))
self.setLayout(self.verticalLayout)
self.buttonBox.accepted.connect(self.okPressed)
self.text.setFocus()
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:43,代码来源:commitdialog.py
示例9: GdalParametersPanel
class GdalParametersPanel(ParametersPanel):
def __init__(self, parent, alg):
ParametersPanel.__init__(self, parent, alg)
w = QWidget()
layout = QVBoxLayout()
layout.setMargin(0)
layout.setSpacing(6)
label = QLabel()
label.setText(self.tr("GDAL/OGR console call"))
layout.addWidget(label)
self.text = QPlainTextEdit()
self.text.setReadOnly(True)
layout.addWidget(self.text)
w.setLayout(layout)
self.layoutMain.addWidget(w)
self.connectParameterSignals()
self.parametersHaveChanged()
def connectParameterSignals(self):
for wrapper in list(self.wrappers.values()):
wrapper.widgetValueHasChanged.connect(self.parametersHaveChanged)
# TODO - remove when all wrappers correctly emit widgetValueHasChanged!
# For compatibility with 3.x API, we need to check whether the wrapper is
# the deprecated WidgetWrapper class. If not, it's the newer
# QgsAbstractProcessingParameterWidgetWrapper class
# TODO QGIS 4.0 - remove
if issubclass(wrapper.__class__, WidgetWrapper):
w = wrapper.widget
else:
w = wrapper.wrappedWidget()
self.connectWidgetChangedSignals(w)
for c in w.findChildren(QWidget):
self.connectWidgetChangedSignals(c)
for output_widget in self.outputWidgets.values():
self.connectWidgetChangedSignals(output_widget)
def connectWidgetChangedSignals(self, w):
if isinstance(w, QLineEdit):
w.textChanged.connect(self.parametersHaveChanged)
elif isinstance(w, QComboBox):
w.currentIndexChanged.connect(self.parametersHaveChanged)
elif isinstance(w, QgsProjectionSelectionWidget):
w.crsChanged.connect(self.parametersHaveChanged)
elif isinstance(w, QCheckBox):
w.stateChanged.connect(self.parametersHaveChanged)
elif isinstance(w, MultipleInputPanel):
w.selectionChanged.connect(self.parametersHaveChanged)
elif isinstance(w, NumberInputPanel):
w.hasChanged.connect(self.parametersHaveChanged)
elif isinstance(w, DestinationSelectionPanel):
w.destinationChanged.connect(self.parametersHaveChanged)
def parametersHaveChanged(self):
context = createContext()
feedback = QgsProcessingFeedback()
try:
parameters = self.parent.getParameterValues()
for output in self.alg.destinationParameterDefinitions():
if not output.name() in parameters or parameters[output.name()] is None:
parameters[output.name()] = self.tr("[temporary file]")
for p in self.alg.parameterDefinitions():
if (not p.name() in parameters and not p.flags() & QgsProcessingParameterDefinition.FlagOptional) \
or (not p.checkValueIsAcceptable(parameters[p.name()])):
# not ready yet
self.text.setPlainText('')
return
commands = self.alg.getConsoleCommands(parameters, context, feedback, executing=False)
commands = [c for c in commands if c not in ['cmd.exe', '/C ']]
self.text.setPlainText(" ".join(commands))
except AlgorithmDialogBase.InvalidParameterValue as e:
self.text.setPlainText(self.tr("Invalid value for parameter '{0}'").format(e.parameter.description()))
except AlgorithmDialogBase.InvalidOutputExtension as e:
self.text.setPlainText(e.message)
开发者ID:telwertowski,项目名称:Quantum-GIS,代码行数:81,代码来源:GdalAlgorithmDialog.py
示例10: createWidget
def createWidget(self):
if self.dialogType == DIALOG_STANDARD:
if self.param.multiline:
widget = QPlainTextEdit()
if self.param.default:
widget.setPlainText(self.param.default)
else:
widget = StringInputPanel(self.param)
if self.param.default:
widget.setValue(self.param.default)
elif self.dialogType == DIALOG_BATCH:
widget = QLineEdit()
if self.param.default:
widget.setText(self.param.default)
else:
strings = self.dialog.getAvailableValuesOfType(ParameterString, OutputString)
options = [(self.dialog.resolveValueDescription(s), s) for s in strings]
if self.param.multiline:
widget = MultilineTextPanel(options)
widget.setText(self.param.default or "")
else:
widget = QComboBox()
widget.setEditable(True)
for desc, val in options:
widget.addItem(desc, val)
widget.setEditText(self.param.default or "")
return widget
开发者ID:mterente,项目名称:QGIS,代码行数:27,代码来源:wrappers.py
示例11: GdalParametersPanel
class GdalParametersPanel(ParametersPanel):
def __init__(self, parent, alg):
ParametersPanel.__init__(self, parent, alg)
w = QWidget()
layout = QVBoxLayout()
layout.setMargin(0)
layout.setSpacing(6)
label = QLabel()
label.setText(self.tr("GDAL/OGR console call"))
layout.addWidget(label)
self.text = QPlainTextEdit()
self.text.setReadOnly(True)
layout.addWidget(self.text)
w.setLayout(layout)
self.layoutMain.addWidget(w)
self.connectParameterSignals()
self.parametersHaveChanged()
def connectParameterSignals(self):
for wrapper in list(self.wrappers.values()):
w = wrapper.widget
self.connectWidgetChangedSignals(w)
for c in w.findChildren(QWidget):
self.connectWidgetChangedSignals(c)
def connectWidgetChangedSignals(self, w):
if isinstance(w, QLineEdit):
w.textChanged.connect(self.parametersHaveChanged)
elif isinstance(w, QComboBox):
w.currentIndexChanged.connect(self.parametersHaveChanged)
elif isinstance(w, QgsProjectionSelectionWidget):
w.crsChanged.connect(self.parametersHaveChanged)
elif isinstance(w, QCheckBox):
w.stateChanged.connect(self.parametersHaveChanged)
elif isinstance(w, MultipleInputPanel):
w.selectionChanged.connect(self.parametersHaveChanged)
elif isinstance(w, NumberInputPanel):
w.hasChanged.connect(self.parametersHaveChanged)
def parametersHaveChanged(self):
context = createContext()
feedback = QgsProcessingFeedback()
try:
parameters = self.parent.getParameterValues()
for output in self.alg.destinationParameterDefinitions():
if not output.name() in parameters or parameters[output.name()] is None:
parameters[output.name()] = self.tr("[temporary file]")
for p in self.alg.parameterDefinitions():
if (not p.name() in parameters and not p.flags() & QgsProcessingParameterDefinition.FlagOptional) \
or (not p.checkValueIsAcceptable(parameters[p.name()], context)):
# not ready yet
self.text.setPlainText('')
return
commands = self.alg.getConsoleCommands(parameters, context, feedback, executing=False)
commands = [c for c in commands if c not in ['cmd.exe', '/C ']]
self.text.setPlainText(" ".join(commands))
except AlgorithmDialogBase.InvalidParameterValue as e:
self.text.setPlainText(self.tr("Invalid value for parameter '{0}'").format(e.parameter.description()))
开发者ID:Jacory,项目名称:QGIS,代码行数:62,代码来源:GdalAlgorithmDialog.py
示例12: ImportDialog
class ImportDialog(QDialog):
def __init__(self, parent, repo = None, layer = None):
super(ImportDialog, self).__init__(parent)
self.setObjectName("ImportDialog")
self.repo = repo
self.layer = layer
self.ok = False
self.initGui()
def initGui(self):
self.setWindowTitle('Import to GeoGig')
verticalLayout = QVBoxLayout()
if self.repo is None:
repos = repository.repos
layerLabel = QLabel('Repository')
verticalLayout.addWidget(layerLabel)
self.repoCombo = QComboBox()
self.repoCombo.addItems(["%s - %s" % (r.group, r.title) for r in repos])
self.repoCombo.currentIndexChanged.connect(self.updateBranches)
verticalLayout.addWidget(self.repoCombo)
if self.layer is None:
layerLabel = QLabel('Layer')
verticalLayout.addWidget(layerLabel)
self.layerCombo = QComboBox()
layerNames = [layer.name() for layer in vectorLayers()
if layer.source().lower().split("|")[0].split(".")[-1] in["gpkg", "geopkg"]
and not isRepoLayer(layer)]
self.layerCombo.addItems(layerNames)
verticalLayout.addWidget(self.layerCombo)
self.branchLabel = QLabel("Branch")
verticalLayout.addWidget(self.branchLabel)
self.branchCombo = QComboBox()
self.branches = self.repo.branches() if self.repo is not None else repos[0].branches()
self.branchCombo.addItems(self.branches)
verticalLayout.addWidget(self.branchCombo)
messageLabel = QLabel('Message to describe this update')
verticalLayout.addWidget(messageLabel)
self.messageBox = QPlainTextEdit()
verticalLayout.addWidget(self.messageBox)
self.buttonBox = QDialogButtonBox(QDialogButtonBox.Cancel)
self.importButton = QPushButton("Add layer")
self.importButton.clicked.connect(self.importClicked)
self.buttonBox.addButton(self.importButton, QDialogButtonBox.ApplyRole)
self.buttonBox.rejected.connect(self.cancelPressed)
verticalLayout.addWidget(self.buttonBox)
self.setLayout(verticalLayout)
self.resize(600, 300)
self.messageBox.setFocus()
def updateBranches(self):
self.branchCombo.clear()
repo = repository.repos[self.repoCombo.currentIndex()]
self.branches = repo.branches()
self.branchCombo.addItems(self.branches)
def importClicked(self):
ret = QMessageBox.warning(config.iface.mainWindow(), 'Import warning',
"Importing a layer will modify the original layer and might cause data loss.\n"
"Make sure you have a backup copy of your layer before importing.\n"
"Do you want to import the selected layer?",
QMessageBox.Yes | QMessageBox.No)
if ret == QMessageBox.No:
return
if self.repo is None:
self.repo = repository.repos[self.repoCombo.currentIndex()]
if self.layer is None:
text = self.layerCombo.currentText()
self.layer = layerFromName(text)
user, email = config.getUserInfo()
if user is None:
self.close()
return
message = self.messageBox.toPlainText() or datetime.now().strftime("%Y-%m-%d %H_%M_%S")
branch = self.branchCombo.currentText()
try:
self.repo.importgeopkg(self.layer, branch, message, user, email, False)
filename, layername = namesFromLayer(self.layer)
self.repo.checkoutlayer(filename, layername, ref = branch)
self.layer.reload()
self.layer.triggerRepaint()
except GeoGigException as e:
iface.messageBar().pushMessage("Error", str(e),
level=QgsMessageBar.CRITICAL,
duration=5)
self.close()
return
#.........这里部分代码省略.........
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:101,代码来源:importdialog.py
示例13: CommitDialog
class CommitDialog(QDialog):
def __init__(self, repo, layername, _message = "", parent = None):
super(CommitDialog, self).__init__(parent)
self.repo = repo
self.branch = None
self.layername = layername
self._message = _message or suggestedMessage
self.message = None
self.initGui()
def initGui(self):
self.setObjectName("CommitDialog")
self.resize(600, 250)
self.setWindowTitle("Syncronize layer to repository branch")
self.verticalLayout = QVBoxLayout()
self.verticalLayout.setSpacing(2)
self.verticalLayout.setMargin(5)
self.branchLabel = QLabel("Branch")
self.verticalLayout.addWidget(self.branchLabel)
self.branchCombo = QComboBox()
self.branches = []
branches = self.repo.branches()
for branch in branches:
trees = self.repo.trees(branch)
if self.layername in trees:
self.branches.append(branch)
self.branchCombo.addItems(self.branches)
try:
idx = self.branches.index("master")
except:
idx = 0
self.branchCombo.setCurrentIndex(idx)
self.verticalLayout.addWidget(self.branchCombo)
self.msgLabel = QLabel("Message to describe this update")
self.verticalLayout.addWidget(self.msgLabel)
self.text = QPlainTextEdit()
self.text.setPlainText(self._message)
self.verticalLayout.addWidget(self.text)
self.buttonBox = QDialogButtonBox(QDialogButtonBox.Ok)
self.verticalLayout.addWidget(self.buttonBox)
self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(bool(self.branches))
self.setLayout(self.verticalLayout)
self.buttonBox.accepted.connect(self.okPressed)
self.text.setFocus()
def okPressed(self):
self.branch = self.branchCombo.currentText()
self.message = self.text.toPlainText() or datetime.now().strftime("%Y-%m-%d %H_%M_%S")
self.close()
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:62,代码来源:commitdialog.py
示例14: getWidgetFromParameter
#.........这里部分代码省略.........
# if already set, put first in list
for i, (name, layer) in enumerate(items):
if layer and layer.source() == param.value:
items.insert(0, items.pop(i))
item = InputLayerSelectorPanel(items, param)
elif isinstance(param, ParameterBoolean):
item = QCheckBox()
if param.default:
item.setChecked(True)
else:
item.setChecked(False)
elif isinstance(param, ParameterTableField) or isinstance(param, ParameterTableMultipleField):
if isinstance(param, ParameterTableMultipleField):
item = ListMultiSelectWidget()
else:
item = QComboBox()
if param.parent in self.dependentItems:
items = self.dependentItems[param.parent]
else:
items = []
self.dependentItems[param.parent] = items
items.append(param)
parent = self.alg.getParameterFromName(param.parent)
if isinstance(parent, ParameterVector):
layers = dataobjects.getVectorLayers(parent.shapetype)
else:
layers = dataobjects.getTables()
if len(layers) > 0:
if param.optional and isinstance(param, ParameterTableField):
item.addItem(self.tr('[not set]'))
item.addItems(self.getFields(layers[0], param.datatype))
elif isinstance(param, ParameterSelection):
item = QComboBox()
item.addItems(param.options)
if param.default:
item.setCurrentIndex(param.default)
elif isinstance(param, ParameterFixedTable):
item = FixedTablePanel(param)
elif isinstance(param, ParameterRange):
item = RangePanel(param)
elif isinstance(param, ParameterFile):
item = FileSelectionPanel(param.isFolder, param.ext)
elif isinstance(param, ParameterMultipleInput):
if param.datatype == ParameterMultipleInput.TYPE_FILE:
item = MultipleInputPanel(datatype=ParameterMultipleInput.TYPE_FILE)
else:
if param.datatype == ParameterMultipleInput.TYPE_RASTER:
options = dataobjects.getRasterLayers(sorting=False)
elif param.datatype == ParameterMultipleInput.TYPE_VECTOR_ANY:
options = dataobjects.getVectorLayers(sorting=False)
else:
options = dataobjects.getVectorLayers([param.datatype], sorting=False)
opts = [self.getExtendedLayerName(opt) for opt in options]
item = MultipleInputPanel(opts)
elif isinstance(param, ParameterNumber):
item = NumberInputPanel(param.default, param.min, param.max,
param.isInteger)
elif isinstance(param, ParameterExtent):
item = ExtentSelectionPanel(self.parent, self.alg, param.default)
elif isinstance(param, ParameterPoint):
item = PointSelectionPanel(self.parent, param.default)
elif isinstance(param, ParameterCrs):
item = CrsSelectionPanel(param.default)
elif isinstance(param, ParameterString):
if param.multiline:
verticalLayout = QVBoxLayout()
verticalLayout.setSizeConstraint(
QLayout.SetDefaultConstraint)
textEdit = QPlainTextEdit()
if param.default:
textEdit.setPlainText(param.default)
verticalLayout.addWidget(textEdit)
item = textEdit
else:
item = QLineEdit()
if param.default:
item.setText(unicode(param.default))
elif isinstance(param, ParameterGeometryPredicate):
item = GeometryPredicateSelectionPanel(param.enabledPredicates)
if param.left:
widget = self.valueItems[param.left]
if isinstance(widget, InputLayerSelectorPanel):
widget = widget.cmbText
widget.currentIndexChanged.connect(item.onLeftLayerChange)
item.leftLayer = widget.itemData(widget.currentIndex())
if param.right:
widget = self.valueItems[param.right]
if isinstance(widget, InputLayerSelectorPanel):
widget = widget.cmbText
widget.currentIndexChanged.connect(item.onRightLayerChange)
item.rightLayer = widget.itemData(widget.currentIndex())
item.updatePredicates()
if param.default:
item.setValue(param.default)
else:
item = QLineEdit()
if param.default:
item.setText(unicode(param.default))
return item
开发者ID:AM7000000,项目名称:QGIS,代码行数:101,代码来源:ParametersPanel.py
注:本文中的qgis.PyQt.QtWidgets.QPlainTextEdit类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论