2016-09-16 82 views
1

我在QFrame內有QLabel防止QLabel調整父級窗口小部件

有時候,我有太多的文字在QLabel,並調整其大小QFrame它在哪裏。

現在,我想阻止QLabel從調整它駐留在QFrame。 我不想以限制行數或設置QLabel的最大大小,因爲如果應用程序的窗口大小增加,我確實希望允許QLabel的大小增加。

只是想阻止QLabel擴展它的父項。

任何干淨的方式來做到這一點?

+0

不要把太多的文字放在裏面嗎?你想如何處理未顯示的文字? 'QLabel'沒有設計成這樣,你需要一個自定義的小部件。 –

+0

只截斷QLabel。顯示儘可能多的文字。 – tal

回答

1

使用QScrollArea(它繼承QFrame),以及隱藏其滾動條:

label = QtGui.QLabel(text) 
frame = QtGui.QScrollArea() 
frame.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) 
frame.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) 
frame.setWidgetResizable(True) 
frame.setWidget(label) 

這有側面的好處是,用戶仍然可以通過鼠標滾輪滾動查看任何隱藏的文本。