Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: vux от Августа 20, 2012, 19:17



Название: ширина текста в QSpinBox
Отправлено: vux от Августа 20, 2012, 19:17
Есть например QSpinBox. Когда значение меняеться, хотелось бы автоматически подганять ширину по количеству знаков. Сходу не особо задумываясь устанавливал ширину на основе длины строки. Но потом понял что символы ведь разной ширины. Вопрос можно ли узнать область занимаемую текстом в QLineEdit\QSpinBox - чтобы соответственно сигналом менять ширину контрола?


Название: Re: ширина текста в QSpinBox
Отправлено: QtCoder от Августа 21, 2012, 06:28
QFontMetrics


Название: Re: ширина текста в QSpinBox
Отправлено: vux от Августа 21, 2012, 13:40
То шо нада. Но мой питоновский код всеравно дает не ту ширину:
Код
Python
spinbox = QSpinBox()
text = spinbox.text()
spinbox.setFixedWidth( spinbox.lineEdit().fontMetrics().width(text) )
      


Название: Re: ширина текста в QSpinBox
Отправлено: QtCoder от Августа 21, 2012, 14:14
То шо нада. Но мой питоновский код всеравно дает не ту ширину:
Код
Python
spinbox = QSpinBox()
text = spinbox.text()
spinbox.setFixedWidth( spinbox.lineEdit().fontMetrics().width(text) )
      
у spinbox еще стрелочки есть. ты ставишь ширину на весь спинбокс


Название: Re: ширина текста в QSpinBox
Отправлено: vux от Августа 21, 2012, 14:27
стрелочки уже отклычены


Название: Re: ширина текста в QSpinBox
Отправлено: Kurles от Августа 22, 2012, 11:06
стрелочки уже отклычены
А еще бордюр и прочие украшательства виджета.


Название: Re: ширина текста в QSpinBox
Отправлено: vux от Августа 22, 2012, 16:05
это уже понятно. В моем случае +8 пикселей дает вполне то шо нада. Всем спасиба...