本文整理汇总了Python中qgis.core.QgsPrintLayout.setName方法的典型用法代码示例。如果您正苦于以下问题:Python QgsPrintLayout.setName方法的具体用法?Python QgsPrintLayout.setName怎么用?Python QgsPrintLayout.setName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsPrintLayout
的用法示例。
在下文中一共展示了QgsPrintLayout.setName方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testGenerateUniqueTitle
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testGenerateUniqueTitle(self):
project = QgsProject()
manager = QgsLayoutManager(project)
self.assertEqual(manager.generateUniqueTitle(QgsMasterLayoutInterface.PrintLayout), 'Layout 1')
self.assertEqual(manager.generateUniqueTitle(QgsMasterLayoutInterface.Report), 'Report 1')
layout = QgsPrintLayout(project)
layout.setName(manager.generateUniqueTitle())
manager.addLayout(layout)
self.assertEqual(manager.generateUniqueTitle(), 'Layout 2')
self.assertEqual(manager.generateUniqueTitle(QgsMasterLayoutInterface.Report), 'Report 1')
layout2 = QgsPrintLayout(project)
layout2.setName(manager.generateUniqueTitle())
manager.addLayout(layout2)
self.assertEqual(manager.generateUniqueTitle(), 'Layout 3')
report1 = QgsReport(project)
report1.setName(manager.generateUniqueTitle(QgsMasterLayoutInterface.Report))
manager.addLayout(report1)
self.assertEqual(manager.generateUniqueTitle(QgsMasterLayoutInterface.Report), 'Report 2')
manager.clear()
self.assertEqual(manager.generateUniqueTitle(), 'Layout 1')
self.assertEqual(manager.generateUniqueTitle(QgsMasterLayoutInterface.Report), 'Report 1')
示例2: testRemoveLayout
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testRemoveLayout(self):
project = QgsProject()
layout = QgsPrintLayout(project)
layout.setName('test layout')
self.manager = QgsLayoutManager(project)
layout_removed_spy = QSignalSpy(self.manager.layoutRemoved)
layout_about_to_be_removed_spy = QSignalSpy(self.manager.layoutAboutToBeRemoved)
# tests that layout still exists when layoutAboutToBeRemoved is fired
self.manager.layoutAboutToBeRemoved.connect(self.layoutAboutToBeRemoved)
# not added, should fail
self.assertFalse(self.manager.removeLayout(layout))
self.assertEqual(len(layout_removed_spy), 0)
self.assertEqual(len(layout_about_to_be_removed_spy), 0)
self.assertTrue(self.manager.addLayout(layout))
self.assertEqual(self.manager.layouts(), [layout])
self.assertTrue(self.manager.removeLayout(layout))
self.assertEqual(len(self.manager.layouts()), 0)
self.assertEqual(len(layout_removed_spy), 1)
self.assertEqual(layout_removed_spy[0][0], 'test layout')
self.assertEqual(len(layout_about_to_be_removed_spy), 1)
self.assertEqual(layout_about_to_be_removed_spy[0][0], 'test layout')
self.assertTrue(self.aboutFired)
self.manager = None
示例3: testReadWriteXml
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testReadWriteXml(self):
p = QgsProject()
l = QgsPrintLayout(p)
l.setName('my layout')
l.setUnits(QgsUnitTypes.LayoutInches)
collection = l.pageCollection()
# add a page
page = QgsLayoutItemPage(l)
page.setPageSize('A6')
collection.addPage(page)
grid = l.gridSettings()
grid.setResolution(QgsLayoutMeasurement(5, QgsUnitTypes.LayoutPoints))
g1 = QgsLayoutGuide(Qt.Horizontal, QgsLayoutMeasurement(5, QgsUnitTypes.LayoutCentimeters),
l.pageCollection().page(0))
l.guides().addGuide(g1)
snapper = l.snapper()
snapper.setSnapTolerance(7)
# add some items
item1 = QgsLayoutItemMap(l)
item1.setId('xxyyxx')
l.addItem(item1)
item2 = QgsLayoutItemMap(l)
item2.setId('zzyyzz')
l.addItem(item2)
l.setReferenceMap(item2)
doc = QDomDocument("testdoc")
elem = l.writeXml(doc, QgsReadWriteContext())
l2 = QgsPrintLayout(p)
self.assertTrue(l2.readXml(elem, doc, QgsReadWriteContext()))
self.assertEqual(l2.name(), 'my layout')
self.assertEqual(l2.units(), QgsUnitTypes.LayoutInches)
collection2 = l2.pageCollection()
self.assertEqual(collection2.pageCount(), 1)
self.assertAlmostEqual(collection2.page(0).pageSize().width(), 105, 4)
self.assertEqual(collection2.page(0).pageSize().height(), 148)
self.assertEqual(l2.gridSettings().resolution().length(), 5.0)
self.assertEqual(l2.gridSettings().resolution().units(), QgsUnitTypes.LayoutPoints)
self.assertEqual(l2.guides().guidesOnPage(0)[0].orientation(), Qt.Horizontal)
self.assertEqual(l2.guides().guidesOnPage(0)[0].position().length(), 5.0)
self.assertEqual(l2.guides().guidesOnPage(0)[0].position().units(), QgsUnitTypes.LayoutCentimeters)
self.assertEqual(l2.snapper().snapTolerance(), 7)
# check restored items
new_item1 = l2.itemByUuid(item1.uuid())
self.assertTrue(new_item1)
self.assertEqual(new_item1.id(), 'xxyyxx')
new_item2 = l2.itemByUuid(item2.uuid())
self.assertTrue(new_item2)
self.assertEqual(new_item2.id(), 'zzyyzz')
self.assertEqual(l2.referenceMap().id(), 'zzyyzz')
示例4: testCombo
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testCombo(self):
project = QgsProject()
manager = QgsLayoutManager(project)
layout = QgsPrintLayout(project)
layout.setName('ccc')
self.assertTrue(manager.addLayout(layout))
layout2 = QgsPrintLayout(project)
layout2.setName('bbb')
self.assertTrue(manager.addLayout(layout2))
r = QgsReport(project)
r.setName('ddd')
manager.addLayout(r)
combo = QgsLayoutComboBox(None, manager)
spy = QSignalSpy(combo.layoutChanged)
self.assertEqual(combo.count(), 3)
self.assertEqual(combo.itemText(0), 'bbb')
self.assertEqual(combo.itemText(1), 'ccc')
self.assertEqual(combo.itemText(2), 'ddd')
self.assertEqual(combo.layout(0), layout2)
self.assertEqual(combo.layout(1), layout)
self.assertEqual(combo.layout(2), r)
combo.setCurrentLayout(None)
self.assertEqual(combo.currentLayout(), None)
self.assertEqual(len(spy), 1)
combo.setCurrentLayout(layout)
self.assertEqual(combo.currentLayout(), layout)
self.assertEqual(len(spy), 2)
combo.setCurrentLayout(r)
self.assertEqual(combo.currentLayout(), r)
self.assertEqual(len(spy), 3)
combo.setCurrentLayout(layout2)
self.assertEqual(combo.currentLayout(), layout2)
self.assertEqual(len(spy), 4)
combo.setAllowEmptyLayout(True)
self.assertEqual(combo.count(), 4)
self.assertEqual(combo.itemText(0), '')
self.assertEqual(combo.itemText(1), 'bbb')
self.assertEqual(combo.itemText(2), 'ccc')
self.assertEqual(combo.itemText(3), 'ddd')
combo.setCurrentLayout(None)
self.assertEqual(combo.currentIndex(), 0)
combo.setFilters(QgsLayoutManagerProxyModel.FilterPrintLayouts)
self.assertEqual(combo.count(), 3)
self.assertEqual(combo.itemText(0), '')
self.assertEqual(combo.itemText(1), 'bbb')
self.assertEqual(combo.itemText(2), 'ccc')
combo.setFilters(QgsLayoutManagerProxyModel.FilterReports)
self.assertEqual(combo.filters(), QgsLayoutManagerProxyModel.FilterReports)
self.assertEqual(combo.count(), 2)
self.assertEqual(combo.itemText(0), '')
self.assertEqual(combo.itemText(1), 'ddd')
示例5: testExpressionInText
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testExpressionInText(self):
"""Test expressions embedded in legend node text"""
point_path = os.path.join(TEST_DATA_DIR, 'points.shp')
point_layer = QgsVectorLayer(point_path, 'points', 'ogr')
layout = QgsPrintLayout(QgsProject.instance())
layout.setName('LAYOUT')
layout.initializeDefaults()
map = QgsLayoutItemMap(layout)
map.attemptSetSceneRect(QRectF(20, 20, 80, 80))
map.setFrameEnabled(True)
map.setLayers([point_layer])
layout.addLayoutItem(map)
map.setExtent(point_layer.extent())
legend = QgsLayoutItemLegend(layout)
legend.setTitle("Legend")
legend.attemptSetSceneRect(QRectF(120, 20, 100, 100))
legend.setFrameEnabled(True)
legend.setFrameStrokeWidth(QgsLayoutMeasurement(2))
legend.setBackgroundColor(QColor(200, 200, 200))
legend.setTitle('')
legend.setLegendFilterByMapEnabled(False)
legend.setStyleFont(QgsLegendStyle.Title, QgsFontUtils.getStandardTestFont('Bold', 16))
legend.setStyleFont(QgsLegendStyle.Group, QgsFontUtils.getStandardTestFont('Bold', 16))
legend.setStyleFont(QgsLegendStyle.Subgroup, QgsFontUtils.getStandardTestFont('Bold', 16))
legend.setStyleFont(QgsLegendStyle.Symbol, QgsFontUtils.getStandardTestFont('Bold', 16))
legend.setStyleFont(QgsLegendStyle.SymbolLabel, QgsFontUtils.getStandardTestFont('Bold', 16))
legend.setAutoUpdateModel(False)
QgsProject.instance().addMapLayers([point_layer])
s = QgsMapSettings()
s.setLayers([point_layer])
group = legend.model().rootGroup().addGroup("Group [% 1 + 5 %] [% @layout_name %]")
layer_tree_layer = group.addLayer(point_layer)
layer_tree_layer.setCustomProperty("legend/title-label", 'bbbb [% 1+2 %] xx [% @layout_name %] [% @layer_name %]')
QgsMapLayerLegendUtils.setLegendNodeUserLabel(layer_tree_layer, 0, 'xxxx')
legend.model().refreshLayerLegend(layer_tree_layer)
legend.model().layerLegendNodes(layer_tree_layer)[0].setUserLabel('bbbb [% 1+2 %] xx [% @layout_name %] [% @layer_name %]')
layout.addLayoutItem(legend)
legend.setLinkedMap(map)
map.setExtent(QgsRectangle(-102.51, 41.16, -102.36, 41.30))
checker = QgsLayoutChecker(
'composer_legend_expressions', layout)
checker.setControlPathPrefix("composer_legend")
result, message = checker.testLayout()
self.assertTrue(result, message)
QgsProject.instance().removeMapLayers([point_layer.id()])
示例6: testAddLayout
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testAddLayout(self):
project = QgsProject()
layout = QgsPrintLayout(project)
layout.setName('test layout')
manager = QgsLayoutManager(project)
layout_about_to_be_added_spy = QSignalSpy(manager.layoutAboutToBeAdded)
layout_added_spy = QSignalSpy(manager.layoutAdded)
self.assertTrue(manager.addLayout(layout))
self.assertEqual(len(layout_about_to_be_added_spy), 1)
self.assertEqual(layout_about_to_be_added_spy[0][0], 'test layout')
self.assertEqual(len(layout_added_spy), 1)
self.assertEqual(layout_added_spy[0][0], 'test layout')
# adding it again should fail
self.assertFalse(manager.addLayout(layout))
# try adding a second layout
layout2 = QgsPrintLayout(project)
layout2.setName('test layout2')
self.assertTrue(manager.addLayout(layout2))
self.assertEqual(len(layout_added_spy), 2)
self.assertEqual(layout_about_to_be_added_spy[1][0], 'test layout2')
self.assertEqual(len(layout_about_to_be_added_spy), 2)
self.assertEqual(layout_added_spy[1][0], 'test layout2')
# adding a layout with duplicate name should fail
layout3 = QgsPrintLayout(project)
layout3.setName('test layout2')
self.assertFalse(manager.addLayout(layout3))
示例7: testReadWriteXml
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testReadWriteXml(self):
"""
Test reading and writing layout manager state to XML
"""
project = QgsProject()
manager = QgsLayoutManager(project)
# add a bunch of layouts
layout = QgsPrintLayout(project)
layout.setName('test layout')
layout2 = QgsPrintLayout(project)
layout2.setName('test layout2')
layout3 = QgsPrintLayout(project)
layout3.setName('test layout3')
manager.addLayout(layout)
manager.addLayout(layout2)
manager.addLayout(layout3)
# save to xml
doc = QDomDocument("testdoc")
elem = manager.writeXml(doc)
doc.appendChild(elem)
# restore from xml
project2 = QgsProject()
manager2 = QgsLayoutManager(project2)
self.assertTrue(manager2.readXml(elem, doc))
self.assertEqual(len(manager2.layouts()), 3)
names = [c.name() for c in manager2.layouts()]
self.assertCountEqual(names, ['test layout', 'test layout2', 'test layout3'])
示例8: testDuplicateLayout
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testDuplicateLayout(self):
"""
Test duplicating layouts
"""
project = QgsProject()
manager = QgsLayoutManager(project)
doc = QDomDocument("testdoc")
self.assertFalse(manager.duplicateLayout(None, 'dest'))
layout = QgsPrintLayout(project)
layout.setName('test layout')
layout.initializeDefaults()
manager.addLayout(layout)
# duplicate name
self.assertFalse(manager.duplicateLayout(layout, 'test layout'))
result = manager.duplicateLayout(layout, 'dupe layout')
self.assertTrue(result)
# make sure result in stored in manager
self.assertEqual(result, manager.layoutByName('dupe layout'))
self.assertEqual(result.name(), 'dupe layout')
self.assertEqual(result.pageCollection().pageCount(), 1)
示例9: get_print_layout
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def get_print_layout(self):
template_path = self.getTemplateFilePath()
if not os.path.isfile(template_path):
msg = 'The requested template {} is not currently available.'.format(template_path)
QMessageBox.critical(self.iface.mainWindow(), 'Template Not Found', msg)
return
# Create a new print layout with name equal to the project title
project = QgsProject.instance()
layout_manager = project.layoutManager()
existing_print_layout = layout_manager.layoutByName(self.ui.titleLineEdit.text())
if existing_print_layout:
layout_manager.removeLayout(existing_print_layout)
print_layout = QgsPrintLayout(project)
print_layout.setName(self.ui.titleLineEdit.text())
layout_manager.addLayout(print_layout)
# Load the template file
try:
tree = ET.parse(template_path)
doc = QDomDocument()
doc.setContent(ET.tostring(tree.getroot()))
except IOError:
# problem reading xml template
msg = 'The requested template {} could not be read.'.format(template_path)
QMessageBox.critical(self.iface.mainWindow(), 'Failed to Read Template', msg)
return
except:
# Unexpected problem
msg = 'An unexpected error occurred while reading {}:\n\n{}'.format(template_path, traceback.format_exc())
QMessageBox.critical(self.iface.mainWindow(), 'Failed to Read Template', msg)
return
if not print_layout.loadFromTemplate(doc, QgsReadWriteContext(), True):
msg = 'loadFromTemplate returned False.'
QMessageBox.critical(self.iface.mainWindow(), 'Failed to Read Template', msg)
return
return print_layout
示例10: testRenameSignal
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testRenameSignal(self):
project = QgsProject()
manager = QgsLayoutManager(project)
layout = QgsPrintLayout(project)
layout.setName('c1')
manager.addLayout(layout)
layout2 = QgsPrintLayout(project)
layout2.setName('c2')
manager.addLayout(layout2)
layout_renamed_spy = QSignalSpy(manager.layoutRenamed)
layout.setName('d1')
self.assertEqual(len(layout_renamed_spy), 1)
# self.assertEqual(layout_renamed_spy[0][0], layout)
self.assertEqual(layout_renamed_spy[0][1], 'd1')
layout2.setName('d2')
self.assertEqual(len(layout_renamed_spy), 2)
# self.assertEqual(layout_renamed_spy[1][0], layout2)
self.assertEqual(layout_renamed_spy[1][1], 'd2')
示例11: testLayouts
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testLayouts(self):
project = QgsProject()
manager = QgsLayoutManager(project)
layout = QgsPrintLayout(project)
layout.setName('test layout')
layout2 = QgsPrintLayout(project)
layout2.setName('test layout2')
layout3 = QgsPrintLayout(project)
layout3.setName('test layout3')
manager.addLayout(layout)
self.assertEqual(manager.layouts(), [layout])
manager.addLayout(layout2)
self.assertEqual(set(manager.layouts()), {layout, layout2})
manager.addLayout(layout3)
self.assertEqual(set(manager.layouts()), {layout, layout2, layout3})
示例12: testLayoutsByName
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testLayoutsByName(self):
project = QgsProject()
manager = QgsLayoutManager(project)
# add a bunch of layouts
layout = QgsPrintLayout(project)
layout.setName('test layout')
layout2 = QgsPrintLayout(project)
layout2.setName('test layout2')
layout3 = QgsPrintLayout(project)
layout3.setName('test layout3')
manager.addLayout(layout)
manager.addLayout(layout2)
manager.addLayout(layout3)
self.assertFalse(manager.layoutByName('asdf'))
self.assertEqual(manager.layoutByName('test layout'), layout)
self.assertEqual(manager.layoutByName('test layout2'), layout2)
self.assertEqual(manager.layoutByName('test layout3'), layout3)
示例13: testClear
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testClear(self):
project = QgsProject()
manager = QgsLayoutManager(project)
# add a bunch of layouts
layout = QgsPrintLayout(project)
layout.setName('test layout')
layout2 = QgsPrintLayout(project)
layout2.setName('test layout2')
layout3 = QgsPrintLayout(project)
layout3.setName('test layout3')
manager.addLayout(layout)
manager.addLayout(layout2)
manager.addLayout(layout3)
layout_removed_spy = QSignalSpy(manager.layoutRemoved)
layout_about_to_be_removed_spy = QSignalSpy(manager.layoutAboutToBeRemoved)
manager.clear()
self.assertEqual(len(manager.layouts()), 0)
self.assertEqual(len(layout_removed_spy), 3)
self.assertEqual(len(layout_about_to_be_removed_spy), 3)
示例14: testModel
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testModel(self):
project = QgsProject()
manager = QgsLayoutManager(project)
model = QgsLayoutManagerModel(manager)
self.assertEqual(model.rowCount(QModelIndex()), 0)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), None)
self.assertEqual(model.indexFromLayout(None), QModelIndex())
layout = QgsPrintLayout(project)
layout.setName('test layout')
self.assertEqual(model.indexFromLayout(layout), QModelIndex())
self.assertTrue(manager.addLayout(layout))
self.assertEqual(model.rowCount(QModelIndex()), 1)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'test layout')
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout)
self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), layout)
self.assertEqual(model.indexFromLayout(layout), model.index(0, 0, QModelIndex()))
self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
self.assertEqual(model.layoutFromIndex(model.index(1, 0, QModelIndex())), None)
layout.setName('test Layout')
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'test Layout')
layout2 = QgsPrintLayout(project)
layout2.setName('test layout2')
self.assertTrue(manager.addLayout(layout2))
self.assertEqual(model.rowCount(QModelIndex()), 2)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'test Layout')
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout)
self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), layout)
self.assertEqual(model.indexFromLayout(layout), model.index(0, 0, QModelIndex()))
self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'test layout2')
self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2)
self.assertEqual(model.layoutFromIndex(model.index(1, 0, QModelIndex())), layout2)
self.assertEqual(model.indexFromLayout(layout2), model.index(1, 0, QModelIndex()))
manager.removeLayout(layout)
self.assertEqual(model.rowCount(QModelIndex()), 1)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'test layout2')
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2)
self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), layout2)
self.assertEqual(model.layoutFromIndex(model.index(1, 0, QModelIndex())), None)
self.assertEqual(model.indexFromLayout(layout2), model.index(0, 0, QModelIndex()))
manager.clear()
self.assertEqual(model.rowCount(QModelIndex()), 0)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), None)
# with empty row
model.setAllowEmptyLayout(True)
self.assertEqual(model.rowCount(QModelIndex()), 1)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), None)
layout = QgsPrintLayout(project)
layout.setName('test layout')
self.assertTrue(manager.addLayout(layout))
self.assertEqual(model.rowCount(QModelIndex()), 2)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'test layout')
self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout)
self.assertEqual(model.data(model.index(2, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(model.data(model.index(2, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), None)
self.assertEqual(model.layoutFromIndex(model.index(1, 0, QModelIndex())), layout)
self.assertEqual(model.indexFromLayout(layout), model.index(1, 0, QModelIndex()))
layout2 = QgsPrintLayout(project)
layout2.setName('test layout2')
self.assertTrue(manager.addLayout(layout2))
self.assertEqual(model.rowCount(QModelIndex()), 3)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'test layout')
self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout)
self.assertEqual(model.data(model.index(2, 0, QModelIndex()), Qt.DisplayRole), 'test layout2')
self.assertEqual(model.data(model.index(2, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2)
self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), None)
self.assertEqual(model.layoutFromIndex(model.index(1, 0, QModelIndex())), layout)
self.assertEqual(model.layoutFromIndex(model.index(2, 0, QModelIndex())), layout2)
self.assertEqual(model.indexFromLayout(layout), model.index(1, 0, QModelIndex()))
self.assertEqual(model.indexFromLayout(layout2), model.index(2, 0, QModelIndex()))
manager.clear()
self.assertEqual(model.rowCount(QModelIndex()), 1)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), None)
示例15: testProxyModel
# 需要导入模块: from qgis.core import QgsPrintLayout [as 别名]
# 或者: from qgis.core.QgsPrintLayout import setName [as 别名]
def testProxyModel(self):
project = QgsProject()
manager = QgsLayoutManager(project)
model = QgsLayoutManagerModel(manager)
proxy = QgsLayoutManagerProxyModel()
proxy.setSourceModel(model)
self.assertEqual(proxy.rowCount(QModelIndex()), 0)
self.assertEqual(proxy.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(proxy.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
layout = QgsPrintLayout(project)
layout.setName('ccc')
self.assertTrue(manager.addLayout(layout))
self.assertEqual(proxy.rowCount(QModelIndex()), 1)
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), Qt.DisplayRole), 'ccc')
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout)
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
layout2 = QgsPrintLayout(project)
layout2.setName('bbb')
self.assertTrue(manager.addLayout(layout2))
self.assertEqual(proxy.rowCount(QModelIndex()), 2)
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), Qt.DisplayRole), 'bbb')
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2)
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), Qt.DisplayRole), 'ccc')
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout)
layout.setName('aaa')
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), Qt.DisplayRole), 'aaa')
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout)
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), Qt.DisplayRole), 'bbb')
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2)
model.setAllowEmptyLayout(True)
self.assertEqual(proxy.rowCount(QModelIndex()), 3)
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), Qt.DisplayRole), 'aaa')
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout)
self.assertEqual(proxy.data(proxy.index(2, 0, QModelIndex()), Qt.DisplayRole), 'bbb')
self.assertEqual(proxy.data(proxy.index(2, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2)
r = QgsReport(project)
r.setName('ddd')
manager.addLayout(r)
self.assertEqual(proxy.rowCount(QModelIndex()), 4)
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), Qt.DisplayRole), 'aaa')
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout)
self.assertEqual(proxy.data(proxy.index(2, 0, QModelIndex()), Qt.DisplayRole), 'bbb')
self.assertEqual(proxy.data(proxy.index(2, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2)
self.assertEqual(proxy.data(proxy.index(3, 0, QModelIndex()), Qt.DisplayRole), 'ddd')
self.assertEqual(proxy.data(proxy.index(3, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), r)
proxy.setFilters(QgsLayoutManagerProxyModel.FilterPrintLayouts)
self.assertEqual(proxy.filters(), QgsLayoutManagerProxyModel.FilterPrintLayouts)
self.assertEqual(proxy.rowCount(QModelIndex()), 3)
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), Qt.DisplayRole), 'aaa')
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout)
self.assertEqual(proxy.data(proxy.index(2, 0, QModelIndex()), Qt.DisplayRole), 'bbb')
self.assertEqual(proxy.data(proxy.index(2, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2)
proxy.setFilters(QgsLayoutManagerProxyModel.FilterReports)
self.assertEqual(proxy.filters(), QgsLayoutManagerProxyModel.FilterReports)
self.assertEqual(proxy.rowCount(QModelIndex()), 2)
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), Qt.DisplayRole), None)
self.assertEqual(proxy.data(proxy.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None)
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), Qt.DisplayRole), 'ddd')
self.assertEqual(proxy.data(proxy.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), r)
proxy.setFilters(QgsLayoutManagerProxyModel.FilterPrintLayouts | QgsLayoutManagerProxyModel.FilterReports)
self.assertEqual(proxy.filters(), QgsLayoutManagerProxyModel.FilterPrintLayouts | QgsLayoutManagerProxyModel.FilterReports)
self.assertEqual(proxy.rowCount(QModelIndex()), 4)