【问题标题】:How to add text (QLabel) outside (on top) grid layout?如何在网格布局外部(顶部)添加文本(QLabel)?
【发布时间】:2019-10-02 23:10:10
【问题描述】:

我正在使用 Pyqt5 构建一个非常简单的 GUI。 在这个窗口中,我想在网格布局的顶部放置一些带有信息的文本。网格由 2 列组成,我希望文本全宽(如 HTML 属性 colspan)。我找不到放置整个文本的方法。

文本为:“从二维点文件中返回等距点对的列表”

我尝试将包含文本的 Qlabel 设置为网格的 1x1 元素,并为其设置 2 列的宽度,我尝试使用 move 函数手动放置 i;这些解决方案中的任何一个都无法正确显示文本。

class MatchDistance(QWidget):

   def initUI(self):
       super().initUI()
       self.setWindowTitle('Match distance')

       info_label = QLabel("Return a list of same-distance points couples from a file of 2D points", self)
       info_label.move(10, 10)

      # QPushButton and QLineEdit setup [...]

       self.grid.addWidget(self.input_file_1, 1, 1)
       self.grid.addWidget(self.output_file, 2, 1)
       self.grid.addWidget(self.btn_input_1, 1, 2)
       self.grid.addWidget(self.btn_output, 2, 2)
       self.grid.addWidget(self.btn_run, 3, 2)
       self.grid.addWidget(self.btn_mainwindow, 4, 2)

       self.setWindowTitle("script#1: Match distance")
       self.show()

【问题讨论】:

  • 你可以试试self.grid.addWidget(info_label, 0, 0, 1, 2)

标签: python python-3.x pyqt pyqt5


【解决方案1】:

您的描述令人困惑,因此我不会提及您的实现,但要做出回应,您必须考虑以下几点:

  • 设置行列的索引从 0 开始。
  • 如果您使用布局,则不能再使用移动,因为位置由布局处理。

综合以上情况,解决办法是:

self.grid.addWidget(info_label, 0, 0, 1, 2)
self.grid.addWidget(self.input_file_1, 1, 0)
self.grid.addWidget(self.output_file, 2, 0)
self.grid.addWidget(self.btn_input_1, 1, 1)
self.grid.addWidget(self.btn_output, 2, 1)
self.grid.addWidget(self.btn_run, 3, 1)
self.grid.addWidget(self.btn_mainwindow, 4, 1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 2019-04-22
    • 2019-04-26
    • 2018-03-27
    • 2021-06-10
    • 1970-01-01
    • 2019-07-11
    相关资源
    最近更新 更多