Russian Qt Forum
Август 22, 2017, 04:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Зачем в примере стиля дважды задаётся ширина границы виджета?  (Прочитано 1256 раз)
Гурман
Житель матрицы
******
Offline Offline

Сообщений: 1258

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6


Просмотр профиля
« : Декабрь 14, 2016, 14:23 »

Я не очень опытен в использовании таблиц стилей в Qt, поскольку традиционно предпочитаю задавать параметры в коде. В примерах использования таблицы стилей у QPushButton дважды для каждой границы задаётся её ширина:

Код:
       QPushButton {
            color: grey;
            border-image: url(/home/kamlie/code/button.png) 3 10 3 10;
            border-top: 3px transparent;
            border-bottom: 3px transparent;
            border-right: 10px transparent;
            border-left: 10px transparent;
        }

С border-image всё понятно - числами задана ширина не масштабируемых частей картинки. А далее зачем это делается повторно?
Записан

2^7-1 == 127, задумайтесь...
gil9red
Administrator
Neo
*****
Offline Offline

Сообщений: 1784



Просмотр профиля WWW
« Ответ #1 : Декабрь 14, 2016, 14:39 »

Насколько я вижу, там задается размер картинки в кнопке и размер самой кнопки
Записан

Гурман
Житель матрицы
******
Offline Offline

Сообщений: 1258

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6


Просмотр профиля
« Ответ #2 : Декабрь 14, 2016, 14:58 »

Насколько я вижу, там задается размер картинки в кнопке и размер самой кнопки

Нет.
Цитировать
The numbers after the url gives the top, right, bottom and left number of pixels, respectively. These numbers correspond to the border and should not stretch when the size changes.

То есть, в border-image задается картинка для кнопки, а числа за ним - ширина в пикселах для границ картинки с четырех сторон, которые не масштабируются при масштабировании всей кнопки. Вот зачем они дублируются потом?
Записан

2^7-1 == 127, задумайтесь...
Bepec
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 7480


W7 x64, Qt SDK 4.7.2, Руки v1.5


Просмотр профиля
« Ответ #3 : Декабрь 14, 2016, 19:33 »

Границы для размещения окантовки и границы самой кнопки - разные вещи.
Бордер имейдж задает рисунок, но при этом не ограничивая внутренний контейнер кнопки.
Бордер кнопки задаёт отступы, которые используются при рассчете внутреннего контейнера. Как бы так.

Т.е. окантовка у вас может быть на 3px, а бордюр на деле 5 px.
Записан

"Мастер простых решений" Ɋt

чОрный список: Spark
Гурман
Житель матрицы
******
Offline Offline

Сообщений: 1258

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6


Просмотр профиля
« Ответ #4 : Декабрь 14, 2016, 20:01 »

Границы для размещения окантовки и границы самой кнопки - разные вещи.
Бордер имейдж задает рисунок, но при этом не ограничивая внутренний контейнер кнопки.
Бордер кнопки задаёт отступы, которые используются при рассчете внутреннего контейнера. Как бы так.

Т.е. окантовка у вас может быть на 3px, а бордюр на деле 5 px.

То есть, в border-image я задаю границы, которые не масштабируются при масштабировании кнопки, а остальные border- в примере - это области в которых кнопка не получает события? То есть, это как бы "рамка" с полной функциональностью - её толщина не меняется, и кнопка при нажатии на неё не реагирует. Так что ли?
Записан

2^7-1 == 127, задумайтесь...
Bepec
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 7480


W7 x64, Qt SDK 4.7.2, Руки v1.5


Просмотр профиля
« Ответ #5 : Декабрь 14, 2016, 20:43 »

Хз, пробуйте. Никто до вас не изучал поведение данных параметров Веселый
Записан

"Мастер простых решений" Ɋt

чОрный список: Spark
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3811


Просмотр профиля WWW
« Ответ #6 : Декабрь 15, 2016, 10:23 »

Может это поможет: http://htmlbook.ru/css/border-image
Обрати внимание на исходную картинку
Записан

Юра.
Гурман
Житель матрицы
******
Offline Offline

Сообщений: 1258

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6


Просмотр профиля
« Ответ #7 : Декабрь 15, 2016, 11:28 »

Может это поможет: http://htmlbook.ru/css/border-image
Обрати внимание на исходную картинку
Перед написанием ответа читать вопрос и дальнейшее обсуждение уже не принято? Вопрос был не про что такое border-image, а... суть вопроса в самом вопросе.
Записан

2^7-1 == 127, задумайтесь...
Гурман
Житель матрицы
******
Offline Offline

Сообщений: 1258

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6


Просмотр профиля
« Ответ #8 : Декабрь 15, 2016, 11:31 »

Хз, пробуйте. Никто до вас не изучал поведение данных параметров Веселый
Это равнозначно "никто не использовал"...
Записан

2^7-1 == 127, задумайтесь...
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3811


Просмотр профиля WWW
« Ответ #9 : Декабрь 16, 2016, 07:35 »

Гурман, я прочитал тему и дал ответ по существу.
Для того чтобы понять зачем указаны толщины границы (border), нужно понять, что задают цифры в border-image.
Эти цифры не задают толщину границы, они задают толщину части рисунка, которую нужно использовать для границы.

граница толщиной 40 пкс может содержать часть рисунка толщиной 10 пкс.
Записан

Юра.
Гурман
Житель матрицы
******
Offline Offline

Сообщений: 1258

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6


Просмотр профиля
« Ответ #10 : Декабрь 16, 2016, 14:33 »

Гурман, я прочитал тему и дал ответ по существу.

Нет.
Записан

2^7-1 == 127, задумайтесь...
Гурман
Житель матрицы
******
Offline Offline

Сообщений: 1258

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6


Просмотр профиля
« Ответ #11 : Декабрь 16, 2016, 14:34 »

Для того чтобы понять зачем указаны толщины границы (border), нужно понять, что задают цифры в border-image.

Границы border-* к border-image вообще не имеют отношения.
Записан

2^7-1 == 127, задумайтесь...
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.051 секунд. Запросов: 23.