我有以下QFormLayout,其中包含一个短值行和一个长值行
plt.subplots_adjust(bottom=0.15)
plt.show()
我得到的是:
layout = QFormLayout()
layout.setLabelAlignment(Qt.AlignLeft)
layout.setFormAlignment(Qt.AlignLeft)
layout.addRow(QLabel('Label short'), QLabel('2'))
layout.addRow(QLabel('Label long'), QLabel('1234567890'))
我想要的是:
Label short 2
Label long 1234567890
我将第一列称为标签列,第二列称为值列。
Label short 2
Label long 1234567890
,我可以将整个表单向左或向右移动,但是值列的对齐方式保持不变setFormAlignment()
,我可以更改标签列,但不能更改值列setLabelAlignment()
似乎没有任何作用第二列上是否有用于控制对齐方式的端点?
答案 0 :(得分:0)
使用QLabel,您应该能够使用AlignRight将水平文本对齐方式设置为右侧
类似的东西(使用C ++,但在Python中具有相同的选项)
label->setAlignment(Qt::AlignBottom | Qt::AlignRight);
答案 1 :(得分:0)
尝试一下:
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
centralWidget = QWidget()
self.setCentralWidget(centralWidget)
layout = QFormLayout(centralWidget)
layout.setLabelAlignment(Qt.AlignLeft)
layout.setFormAlignment(Qt.AlignLeft)
layout.addRow(QLabel('Label short'), QLabel('2', alignment=Qt.AlignRight))
layout.addRow(QLabel('Label long'), QLabel('1234567890', alignment=Qt.AlignRight))
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())