Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: VergilEx от Август 01, 2011, 08:38



Название: QTabWidget высота табов.
Отправлено: VergilEx от Август 01, 2011, 08:38
Здравствуйте. Пишем гуй на сенсорный монитор. Совершенно не устраивает высота табов в QTabWidget(тяжело пальцем попадать). Как можно их увеличить.


Название: Re: QTabWidget высота табов.
Отправлено: Пантер от Август 01, 2011, 09:34
Отнаследоваться от QTabWidget и установить ему свой QTabBar.


Название: Re: QTabWidget высота табов.
Отправлено: GreatSnake от Август 01, 2011, 10:06
Через CSS (http://www.doc.crossplatform.ru/qt/4.7.x/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar).


Название: Re: QTabWidget высота табов.
Отправлено: climber от Август 01, 2011, 10:55
Например так:
Код:
  
QTabWidget *tabWidget = new QTabWidget;
QSize sz(25, 25);
tabWidget->setIconSize(sz);
При этом Вам не обязательно вставлять иконку для таба


Название: Re: QTabWidget высота табов.
Отправлено: VergilEx от Август 01, 2011, 13:45
Да этот вариант самый простой ;D. Спасибо большое. Правда без иконки он не сайзит, пришлось поставить иконку и занулить width.


Название: Re: QTabWidget высота табов.
Отправлено: climber от Август 01, 2011, 15:01
У меня просто на все табы иконки стоят, поэтому не знал, что без них нельзя =)


Название: Re: QTabWidget высота табов.
Отправлено: GreatSnake от Август 01, 2011, 16:27
Да этот вариант самый простой ;D. Спасибо большое. Правда без иконки он не сайзит, пришлось поставить иконку и занулить width.
А чем это сложно?
Код
C++ (Qt)
setStyleSheet( "QTabBar::tab { min-height: 120px; }" );


Название: Re: QTabWidget высота табов.
Отправлено: climber от Август 01, 2011, 16:40
Да этот вариант самый простой ;D. Спасибо большое. Правда без иконки он не сайзит, пришлось поставить иконку и занулить width.
А чем это сложно?
Код
C++ (Qt)
setStyleSheet( "QTabBar::tab { min-height: 120px; }" );

Согласен, такой вариант подходит как нельзя лучше для данной конкретной задачи, поскольку setStyleSheet устанавливает min-height для всех табов. Однако это не всегда удобно, когда используешь табвиджеты для разных целей (с разными настройками вкладок).


Название: Re: QTabWidget высота табов.
Отправлено: GreatSnake от Август 01, 2011, 16:45
Цитировать
Однако это не всегда удобно, когда используешь табвиджеты для разных целей (с разными настройками вкладок).
Хм, а хардкодить это удобно ??? Можно для конкретного указать.


Название: Re: QTabWidget высота табов.
Отправлено: climber от Август 01, 2011, 16:50
Цитировать
Однако это не всегда удобно, когда используешь табвиджеты для разных целей (с разными настройками вкладок).
Хм, а хардкодить это удобно ??? Можно для конкретного указать.

Каким образом? Если вот так, то все равно это ко всем табвиджетам применится
Код:
  QTabWidget *tabWidget = new QTabWidget;
  tabWidget->setStyleSheet("QTabBar::tab { min-height: 120px; }");
Или я что то не правильно понимаю?


Название: Re: QTabWidget высота табов.
Отправлено: GreatSnake от Август 01, 2011, 16:54
Цитировать
Или я что то не правильно понимаю?
Именно. Читай руководство (http://www.doc.crossplatform.ru/qt/4.7.x/stylesheet-syntax.html#selector-types).

Код
C++ (Qt)
qApp->setStyleSheet("QTabBar#your_tab_widget_name::tab { min-height: 120px; }");


Название: Re: QTabWidget высота табов.
Отправлено: climber от Август 02, 2011, 08:34
Спасибо, буду знать