2017-05-17 17 views
0

私は、テキストの後ろにカウンタがある単純なレイアウトコンポーネントを作ろうとしています。理想的には、画像を次の最初の例のようになりますが、代わりに、それは第二の例のようになります。PyQt:同じ行に複数のラベルがあります

enter image description here

数値は、ユーザーの選択や進捗状況に依存する変数ですので、私は私のコードでそれらのための独自の変数を持っており、行全体は4つの異なるQLabelウィジェットで構成されています.1つはテキスト用、もう1つはカウンタ用、もう1つはスラッシュ用です。しかし何らかの理由でそれらのラベルには多くのスペースが必要ですが、問題を説明するために最初のラベルの背景色を赤に設定しました。

最初の例の結果が得られるようにこれを実装する必要がありますが、これらのカウンタを個別に制御できますか?私は余白、サイズのポリシーなどを変更しようとしましたが、何も正しく動作するようです。ここで

は、現在の実装である:

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

私はあなたがそれのすべてを示さなかったので、私は「自己であるオブジェクトの種類を、あなたのコード内の問題を知っていないされているものを見ることができません.progress_count_current "および" 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_()) 
関連する問題