2017-10-08 16 views
0

QGridLayoutでQTextBoxのサイズを変更することに問題が発生しました。コードはほとんど自明です。私はQTextBoxを私のinit_uiの10個のセルにまたがるように設定しました。私は500x500のウィンドウサイズを持っています。ウィジェットのサイズの問題と新しいウィジェットの追加

def init_ui(self): 
    self.message_body = QTextEdit() 
    self.layout.addWidget(self.message_body, 2, 0, 9, 7) 
    self.show()   

そして、後の方法では、changeSizeでQTextEditのサイズを変更することができました。このメソッドから、次のメソッドを呼び出して、445x280 QTextEditの下に表示されるタイトルを読み込みます。これらのタイトルを読み込むと、新しいウィジェットがレイアウトに追加されます。それは明らかに問題です。これが貧弱なスタイリングかどうかは分かりません。すべてのウィジェットをinitで追加する必要がありますか?いずれにしても

self.layout.addWidget(lbl_title, 10, i) 

が実行されます。サイズを変更したQTextEditは失われます。私は別のサイズ変更機能でそれを続けても。ここで

は、私は解決策を考え出した

def changeSize(self): 
    self.message_body.resize(445,280) 
    self.loadTitles() 

def loadTitles(self): 
    titles = Movie.title_library 
    for i, my_title in enumerate(titles): 
     lbl_title = QLabel(my_title) 
    ## This is the line that refreshes the size to span 10x8 units  
     self.layout.addWidget(lbl_title, 10, i)  
    self.message_body.resize(445,280) 

答えて

0

関与2つの方法です。私はそれを元に戻す前にメッセージ本文ウィジェットを削除する必要がありました。コードは次のように見えます

self.layout.removeWidget(self.message_body) 
self.layout.addWidget(self.message_body,2,0,4,7) 
関連する問題