2017-10-08 71 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

我想出溶液中的兩種方法。我需要在恢復消息正文部件之前刪除消息正文部件。代碼看起來像

self.layout.removeWidget(self.message_body) 
self.layout.addWidget(self.message_body,2,0,4,7)