Layout PyQt:同一行上有多个标签

Layout PyQt:同一行上有多个标签,layout,pyqt5,Layout,Pyqt5,我试图制作一个简单的布局组件,其中有一个文本后跟计数器。理想情况下,它看起来像下图中的第一个示例,但实际上它看起来像第二个示例: 数字是取决于用户选择或进度的变量,因此我的代码中有自己的变量,整行代码由四个不同的QLabel小部件组成:一个用于文本,一个用于每个计数器,一个用于斜杠。但由于某些原因,这些标签占用了很多空间,我将第一个标签的背景色设置为红色以说明问题 我应该如何实现这一点,以便得到第一个示例的结果,但我可以单独控制这些计数器?我曾试图改变利润率、规模政策等,但似乎一切都不正常 以

我试图制作一个简单的布局组件,其中有一个文本后跟计数器。理想情况下,它看起来像下图中的第一个示例,但实际上它看起来像第二个示例:

数字是取决于用户选择或进度的变量,因此我的代码中有自己的变量,整行代码由四个不同的QLabel小部件组成:一个用于文本,一个用于每个计数器,一个用于斜杠。但由于某些原因,这些标签占用了很多空间,我将第一个标签的背景色设置为红色以说明问题

我应该如何实现这一点,以便得到第一个示例的结果,但我可以单独控制这些计数器?我曾试图改变利润率、规模政策等,但似乎一切都不正常

以下是当前的实施情况:

    progress_line = QHBoxLayout()
    label = QLabel('Example label:')
    progress_line.addWidget(label)
    progress_line.addWidget(self.progress_count_current)
    progress_line.addWidget(QLabel('/'))
    progress_line.addWidget(self.progress_count_total)

    # Add to other layout
    parent.addLayout(progress_line)

我看不出你的代码有什么问题,因为你没有全部显示,我不知道什么类型的对象是“self.progress\u count\u current”和“self.progress\u count\u total”。但我有一个小例子,它似乎能满足你的需要。试试看它是否有效

import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QHBoxLayout
from PyQt5.QtWidgets import QLabel
from PyQt5.QtWidgets import QWidget


class Widget(QWidget):

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

        self.h_layout = QHBoxLayout()
        self.setLayout(self.h_layout)

        self.label = QLabel('Example label:')
        self.current_value = '1'
        self.total_value = '3'

        self.label_current = QLabel(self.current_value)
        self.slash_label = QLabel('/')
        self.label_total = QLabel(self.total_value)

        self.h_layout.addWidget(self.label)
        self.h_layout.addWidget(self.label_current)
        self.h_layout.addWidget(self.slash_label)
        self.h_layout.addWidget(self.label_total)


if __name__=="__main__":
    app = QApplication(sys.argv)
    mw = Widget()
    mw.show()
    sys.exit(app.exec_())