Работа с QTabWidget
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 30.06.22 10:32
Оценка:
Не подскажете ли, уважаемые коллеги, как работать с компонентом QTabWidget?
Меня интересует следующее:
1) Добавление новой страницы на QTabWidget. Какой компонент при этом надо использовать Frame, Widget, Dialog или что-то ещё?
2) Обработка перехода к выбранной странице в QTabWidget. Как это производится?
3) Программный переход к странице с нужным номером. Как это производится?
4) Задание ширины и высоты названий вкладок в QTabWidget, которые расположены у него вверху.
5) Рисование линий каким-то цветом (например, чёрным) границ заголовков вкладок у QTabWidget — для показа того, какая страница была выбрана.
1613 г. = 2024 г.
Re: Работа с QTabWidget
От: DiPaolo Россия  
Дата: 01.07.22 08:39
Оценка:
Ну камон, коллега, соберитесь. Вам тут уже писали. У Qt невероятно удобная документация, и при этом прекраснейшая стройная архитектура с несколькими базовыми принципами, которые надо усвоить: модель наследования (https://doc.qt.io/qt-6/metaobjects.html) и сигналы-слоты (https://doc.qt.io/qt-6/signalsandslots.html). Вообще, это самая мощная и самая удобная в использовании плюсовая библиотека, которую я использовал. Документация по удобству использования на высоте: что в вебе, что встроенная в ИДЕшку.

RF>1) Добавление новой страницы на QTabWidget. Какой компонент при этом надо использовать Frame, Widget, Dialog или что-то ещё?


Widget: https://doc.qt.io/qt-6/qtabwidget.html#addTab
Посудите логичtски: ну какой смысл пихать в таб диалог?

RF>2) Обработка перехода к выбранной странице в QTabWidget. Как это производится?


Захоидите в документации на страницу нужного класса, переходите к списку сигналов. Выбираете нужный
https://doc.qt.io/qt-6/qtabwidget.html#signals

RF>3) Программный переход к странице с нужным номером. Как это производится?


То же самое, только выбираете слоты (или публичные мемберы): https://doc.qt.io/qt-6/qtabwidget.html#public-slots

RF>4) Задание ширины и высоты названий вкладок в QTabWidget, которые расположены у него вверху.


Тычу раз подумайте: действительно ли вам оно нужно? Qt предоставляет и сам рисует все крайне аккуратно и нативно. Нахлобучивать что-то свое обычно лишнее и будет смотреться некрасиво, либо же делать полностью кастомный стиль (см. ниже).

Такое можно сделать сабклассингом (наследованием). Но гемора будет много.

RF>5) Рисование линий каким-то цветом (например, чёрным) границ заголовков вкладок у QTabWidget — для показа того, какая страница была выбрана.


Можно задать свои стили. Будет представлять собой что-то типа CSS. Начать смотреть отсюда https://doc.qt.io/qt-6/stylesheet-reference.html

Но еще раз: крайне советую сто раз подумать, надо ли оно.
Патриот здравого смысла
Re[2]: Работа с QTabWidget
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 04.07.22 12:59
Оценка:
Спасибо за ответ!

У меня такой вопрос: вот я сделал несколько вкладок на QTabWidget. На каждой из этих вкладок я разместил компоненты.
Но у меня при переходе на выбранную вкладку цвет фона — не серый (как пол умолчанию принято на формах), а белый. Как сделать так, чтобы при переходе на выбранную вкладку (страницу) цвет фона был бы серым?
1613 г. = 2024 г.
Re[3]: Работа с QTabWidget
От: DiPaolo Россия  
Дата: 04.07.22 15:56
Оценка:
RF>У меня такой вопрос: вот я сделал несколько вкладок на QTabWidget. На каждой из этих вкладок я разместил компоненты.
RF>Но у меня при переходе на выбранную вкладку цвет фона — не серый (как пол умолчанию принято на формах), а белый. Как сделать так, чтобы при переходе на выбранную вкладку (страницу) цвет фона был бы серым?

По умолчанию Qt рисует так, как задано в настройках системы, т.е. нативно. Либо проверяйте что у вас выставлено в настройках цветовой схемы системы, либо, если надо ненативно кастомно рисовать, то смотрите тут https://doc.qt.io/qt-6/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar.
Патриот здравого смысла
Re[4]: Работа с QTabWidget
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 05.07.22 08:48
Оценка:
Ясно, понял. Спасибо!
1613 г. = 2024 г.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.