PYQGIS Composer标签对齐

时间:2016-09-05 10:48:42

标签: alignment label pyqt4 qgis atlas

我一直在为QGIS制作一些脚本,以便通过作曲家自动生成地图集。

我遇到的唯一问题是我无法正确对齐作曲家标签。这是代码示例:

composerLabel = QgsComposerLabel(c)
newFont = QFont("times", 40)
composerLabel.setFont(newFont) 
composerLabel.setText("Hello world")
composerLabel.adjustSizeToText()
composerLabel.setItemPosition(c.paperWidth() / 2,0)

composerLabel.setHAlign(Qt.AlignCenter)

c.addItem(composerLabel)

Here's what the image output looks like

我已经看过API和PYQGIS论坛,但没有人听起来他们有类似的对齐问题。任何人都可以看到我可能会出错的地方吗?

1 个答案:

答案 0 :(得分:1)

您只需在# add label composerLabel = QgsComposerLabel(c) newFont = QFont("times", 40) composerLabel.setFont(newFont) composerLabel.setText("Hello world") composerLabel.adjustSizeToText() composerLabel.setItemPosition(c.paperWidth() / 2,0,QgsComposerItem.UpperMiddle) composerLabel.setHAlign(Qt.AlignCenter) c.addComposerLabel(composerLabel) 方法中添加 ItemPositionMode

public static class CBaseExtensions
{
    ///<param name="Searchstring"> String nach dem die Lastenliste durchsucht werden soll </param>
    ///<param name="Parameter"> NAME für Lastenname, ALIASNAME oder DESCRIPTION</param>
    public static T GetItem<T>(this Collection<T> self, string Searchstring, string Parameter = "NAME") where T : CBase
    {
        if (self.Count == 0) return null;
        if (Searchstring.Length == 0) return null;
        switch (Parameter)   // Parameter auswerten
        {
            case ("NAME"): return self.FirstOrDefault(item => item.Name == Searchstring);
            case ("DESCRIPTION"): return self.FirstOrDefault(item => item.Description == Searchstring);
            default: throw new System.Exception($"Suchparameter {Parameter} nicht vorhanden");
        }
    }
}