pyqt5でQLabelのレイアウトがずれる

投稿者: Anonymous

python3.5を使っています。pyqt5でレイアウトを試しているのですが、QLabelのレイアウトがずれてしまうのを直したいです。下が実際に書いたコードです。

import sys
from PyQt5.QtWidgets import QWidget, QLabel, QApplication, QLineEdit
from PyQt5.QtWidgets import (QWidget, QLCDNumber, QSlider, 
    QVBoxLayout, QHBoxLayout, QApplication, QPushButton)


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):

        # ラベル名の設定
        lbl1 = QLabel('<h1>1行目<h1>')
        lbl2 = QLabel('<h1>2行目<h1>')
        lbl3 = QLabel('<h1>3行目<h1>')

        self.edit1=QLineEdit()
        self.edit2=QLineEdit()
        self.edit3=QLineEdit()

        btn1=QPushButton("1")
        btn2=QPushButton("2")
        btn3=QPushButton("3")

        firstlayout=QHBoxLayout()
        firstlayout.addWidget(lbl1)
        firstlayout.addWidget(self.edit1)
        firstlayout.addWidget(btn1)

        secondlayout=QHBoxLayout()
        secondlayout.addWidget(lbl2)
        secondlayout.addWidget(self.edit2)
        secondlayout.addWidget(btn2)

        thirdlayout=QHBoxLayout()
        thirdlayout.addWidget(lbl3)
        thirdlayout.addWidget(self.edit3)
        thirdlayout.addWidget(btn3)

        layout=QVBoxLayout()
        layout.addLayout(firstlayout)
        layout.addLayout(secondlayout)
        layout.addLayout(thirdlayout)

        self.setLayout(layout)

        self.setWindowTitle('Absolute')    
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

そしてこれが得られたウィンドウです。
image

QLabelで書かれた個所が上にずれています。これを直したいです。

解決

ラベルの設定箇所が<h1>~</h1>の様に閉じタグになっていないのが間違いではないでしょうか。

lbl1 = QLabel('<h1>1行目</h1>')

もしくは単に太字にするのが目的なら<b>~</b>を使うとか。

lbl1 = QLabel('<b>1行目</b>')
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *