Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: spirits25 от Февраль 07, 2012, 11:52



Название: Проблема с заголовком QGroupBox
Отправлено: spirits25 от Февраль 07, 2012, 11:52
Доброе время суток.
Сразу скажу - пишу на PySide.
У QGroupBox не меняется выравнивание заголовка.
В документации
Цитировать
QGroupBox.alignment()
Return type:   Alignment
This property holds the alignment of the group box title..

Most styles place the title at the top of the frame. The horizontal alignment of the title can be specified using single values from the following list:

Qt::AlignLeft aligns the title text with the left-hand side of the group box.
Qt::AlignRight aligns the title text with the right-hand side of the group box.
Qt::AlignHCenter aligns the title text with the horizontal center of the group box.
The default alignment is Qt::AlignLeft.
то есть по умолчанию выровнено по левому краю, но мне даже код
Код:
groupbox = QtGui.QGroupBox(text, self)
groupbox.setAlignment(QtCore.Qt.AlignLeft)
дает выравнивание по центру.

Что мне нужно сделать, чтобы заголовок сдвинуть влево?


Название: Re: Проблема с заголовком QGroupBox
Отправлено: spirits25 от Февраль 07, 2012, 15:44
Есть хоть какие-нибудь предположения? :(


Название: Re: Проблема с заголовком QGroupBox
Отправлено: GreatSnake от Февраль 07, 2012, 16:08
Есть хоть какие-нибудь предположения? :(
Вполне возможно, что текущий стиль сбрасывает твои установки. Посмотри как ведёт себя designer.


Название: Re: Проблема с заголовком QGroupBox
Отправлено: spirits25 от Февраль 07, 2012, 16:17
Есть хоть какие-нибудь предположения? :(
Вполне возможно, что текущий стиль сбрасывает твои установки. Посмотри как ведёт себя designer.
кто такой designer? Если это про дизайнера, то я в блокноте пишу интерфейс руками.


Название: Re: Проблема с заголовком QGroupBox
Отправлено: GreatSnake от Февраль 07, 2012, 16:23
кто такой designer? Если это про дизайнера, то я в блокноте пишу интерфейс руками.
Писать ты можешь где угодно и чем угодно)
Я предлагаю через дизайнер проверить работу выравнивания.


Название: Re: Проблема с заголовком QGroupBox
Отправлено: spirits25 от Февраль 07, 2012, 16:37
Питоновский файл можно в QtDesinger'е посмотреть? подскажите как, я о таком и не думал, если честно=)


Название: Re: Проблема с заголовком QGroupBox
Отправлено: GreatSnake от Февраль 07, 2012, 16:48
Питоновский файл можно в QtDesinger'е посмотреть? подскажите как, я о таком и не думал, если честно=)
Причём здесь вообще питон ???
Запусти дизайнер, создай форму, кинь на неё GroupBox и меняй в его свойствах alignment.


Название: Re: Проблема с заголовком QGroupBox
Отправлено: spirits25 от Февраль 07, 2012, 17:00
попробовал.
Верно, горизонтальный alignment = AlignLeft, Но всё равно посередине выровнено. причём если устанавливаю flat в true, по надпись сдвигается влево (но стиль, разумеется, становится убогим).
Если alignment установить в AlignRight, то надпись на пару пикселей смещается (тоже по центру но чуть правее).
Посоветуйте, что с этим сделать?


Название: Re: Проблема с заголовком QGroupBox
Отправлено: spirits25 от Февраль 10, 2012, 12:23
Ни с Qt, ни с PySide не могу добиться, чтобы заголовок QGroupBox был слева.
Подскажите, как поправить это?


Название: Re: Проблема с заголовком QGroupBox
Отправлено: GreatSnake от Февраль 10, 2012, 13:13
Какая платформа, окружение, версия Qt?


Название: Re: Проблема с заголовком QGroupBox
Отправлено: spirits25 от Февраль 13, 2012, 08:14
linux, kde 4, PySide 1.0.9
Цитировать
PySide is the Nokia-sponsored Python Qt bindings project, providing access to not only the complete Qt 4.7 framework but also Qt Mobility, as well as to generator tools for rapidly generating bindings for any C++ libraries
то есть полная поддержка Qt 4.7.


Название: Re: Проблема с заголовком QGroupBox
Отправлено: spirits25 от Февраль 14, 2012, 08:53
решил проблему так:
Код:
        
           self.setStyleSheet( \
                     'QGroupBox::title {'\
                     'font: bold 14px;'\
                     'subcontrol-position: top left; '\
                     'padding: 5 5px;'\
                                       '}')