2016-09-16 3 views
1

У меня есть QLabel внутри QFrame.Предотвращение изменения 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) 

Это имеет побочное преимущество, что пользователь будет по-прежнему иметь возможность просматривать любой скрытый текст, прокручивая колесико мыши ,

Смежные вопросы