我试图创建一个简单的布局组件,其中有一个文本,后跟计数器。理想情况下,它看起来像下面图片中的第一个例子,但它看起来像第二个例子:
数字是依赖于用户选择或进度的变量,因此我的代码中有自己的变量,整行由四个不同的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)
答案 0 :(得分:0)
我无法查看代码中的问题,因为您没有显示所有内容,我不知道什么类型的对象是" self.progress_count_current&#34 ;和" self.progress_count_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_())