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