Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ QPushButton style sheet align text

Автор: SABROG 8.1.2009, 13:31

button->setStyleSheet("text-align: top;");


Все работает, а именно top - нет.

Qt 4.4.0beta1

Автор: Litkevich Yuriy 8.1.2009, 15:47

SABROG, можешь простейший компилируемый код дать, яб на 4.4.3 приверил, может это бага.

Автор: SABROG 8.1.2009, 17:25

Вот

 QPushButtonSS.zip ( 1.54 килобайт ) : 175
 

Автор: Litkevich Yuriy 8.1.2009, 19:54

SABROG, похоже что это свойство просто не поддерживается:

Цитата
QPushButton
Supports the box model. Supports the :default, :flat, :checked pseudo states.
For QPushButton with a menu, the menu indicator is styled using the ::menu-indicator subcontrol. Appearance of checkable push buttons can be customized using the :open and :closed pseudo-states.
See Customizing QPushButton for an example.


И ещё, видимо нет такого
Цитата(SABROG @ 8.1.2009, 16:31) *
top;


см. http://www.htmlbook.ru/css/text-align.html

всякие такие:
text-align: left;
text-align: center;
text-align: right;

работают

Автор: SABROG 8.1.2009, 21:52

Как так? Ты собирал исходники, пробовал подставлять что-то кроме top?

Скопировано со страницы "Qt Style Sheets Reference"

Цитата
Alignment
{ top
| bottom
| left
| right
| center }*
Horizontal and/or vertical alignment.
Example:
QTextEdit { background-position: bottom center }


Оттуда же и пример:

Цитата
text-align
Alignment
The alignment of text and icon within the contents of the widget.
If this value is not specified, it defaults to the value that depends on the native style.
Example:
QPushButton {
text-align: left;
}
This property is currently supported only by QPushButton and QProgressBar.


Точно говорю, что bottom и сочитания типа "center bottom", "left bottom" и т.п. работают, включая обычные left, right, center. А везде где идет top - нет.
---

Вчера кто-то http://trolltech.com/developer/task-tracker/index_html?method=entry&id=240367 запостил

Автор: Litkevich Yuriy 8.1.2009, 22:50

Цитата(SABROG @ 9.1.2009, 0:52) *
Как так? Ты собирал исходники, пробовал подставлять что-то кроме top?
ага, те которые перечислил

SABROG, свойства Alignment и text-align разные свойства, яж тебе далл ссылку, нет для text-align вертикального выравнивания

поэтому и троли не сделали, так как в http://www.w3.org/TR/CSS21/text.html#propdef-text-align его нет:
Цитата
This property describes how inline content of a block is aligned. Values have the following meanings:
left, right, center, justify


странно то, что bottom работает

проверял на Qt 4.3.5 и Qt 4.4.3
(остальное как в моей подписи)

Автор: SABROG 8.1.2009, 23:33

Цитата(Litkevich Yuriy @ 8.1.2009, 22:50) *
SABROG, свойства Alignment и text-align разные свойства


В "Qt Style Sheets Reference" свойство text-align относится к типу Alignment и если на него нажать, то ссылка ведет именно на возможные значения этого типа, среди которых и top и bottom. И похоже troll'и не особо придерживаются стандарта CSS, т.к. в противном случае у нас было бы еще одно свойство - "vertical-align", но вместо этого в документации напротив свойства типа Alignment написано "Horizontal and/or vertical alignment.". Т.е. разделения нет.

В итоге либо троллям надо сделать разделение - ввести свойство vertical-align и убрать работающий bottom. Либо сделать работащим top.
---
vertical-align есть только у QTextDocument'a, который поддерживает HTML.

Автор: Litkevich Yuriy 9.1.2009, 0:55

вобщем мутновато как-то реализовано.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)