【问题标题】:Add row to Form Layout将行添加到表单布局
【发布时间】:2014-08-06 10:16:34
【问题描述】:

代码:

import sys
from PySide.QtCore import *
from PySide.QtGui import *

def main():
    app = QApplication(sys.argv)
    main = QMainWindow()
    main.setWindowTitle("First GUI")
    form_widget = QWidget()
    form_widget.layout = QFormLayout()
    form_widget.layout.addRow(QLabel("city 1"), QLabel("delhi"))
    form_widget.layout.addRow(QLabel("city 2"), QLabel("chennai"))
    main.setCentralWidget(form_widget)

    main.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

上面的代码打开了一个以“First GUI”为标题的空窗口。

但行未添加到该窗口。 为什么?如何纠正这个问题?

【问题讨论】:

  • 您可能需要为布局设置大小吗?
  • Style nitpick: addRow 不需要为第一个参数显式实例化 QLabel。您可以简单地以form_widget.layout.addRow("city 1", QLabel("delhi")) 调用它。
  • @folibis 布局的全部意义在于您不需要明确处理它们的大小。

标签: python qt python-2.7 pyside


【解决方案1】:

您需要使用setLayout() 将布局分配给小部件。

form_widget = QWidget()
layout = QFormLayout()
layout.addRow(QLabel("city 1"), QLabel("delhi"))
layout.addRow(QLabel("city 2"), QLabel("chennai"))
form_widget.setLayout(layout)

【讨论】:

  • 或者,将form_widget 作为参数传递给QFormLayout。它节省了一行代码 - 不再需要 setLayout 调用。
猜你喜欢
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2011-07-08
相关资源
最近更新 更多