Название: Зачем в примере стиля дважды задаётся ширина границы виджета? Отправлено: Гурман от Декабрь 14, 2016, 14:23 Я не очень опытен в использовании таблиц стилей в Qt, поскольку традиционно предпочитаю задавать параметры в коде. В примерах (http://doc.qt.io/qt-5.7/stylesheet-examples.html) использования таблицы стилей у QPushButton дважды для каждой границы задаётся её ширина:
Код: QPushButton { С border-image всё понятно - числами задана ширина не масштабируемых частей картинки. А далее зачем это делается повторно? Название: Re: Зачем в примере стиля дважды задаётся ширина границы виджета? Отправлено: gil9red от Декабрь 14, 2016, 14:39 Насколько я вижу, там задается размер картинки в кнопке и размер самой кнопки
Название: Re: Зачем в примере стиля дважды задаётся ширина границы виджета? Отправлено: Гурман от Декабрь 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 задается картинка для кнопки, а числа за ним - ширина в пикселах для границ картинки с четырех сторон, которые не масштабируются при масштабировании всей кнопки. Вот зачем они дублируются потом? Название: Re: Зачем в примере стиля дважды задаётся ширина границы виджета? Отправлено: Bepec от Декабрь 14, 2016, 19:33 Границы для размещения окантовки и границы самой кнопки - разные вещи.
Бордер имейдж задает рисунок, но при этом не ограничивая внутренний контейнер кнопки. Бордер кнопки задаёт отступы, которые используются при рассчете внутреннего контейнера. Как бы так. Т.е. окантовка у вас может быть на 3px, а бордюр на деле 5 px. Название: Re: Зачем в примере стиля дважды задаётся ширина границы виджета? Отправлено: Гурман от Декабрь 14, 2016, 20:01 Границы для размещения окантовки и границы самой кнопки - разные вещи. Бордер имейдж задает рисунок, но при этом не ограничивая внутренний контейнер кнопки. Бордер кнопки задаёт отступы, которые используются при рассчете внутреннего контейнера. Как бы так. Т.е. окантовка у вас может быть на 3px, а бордюр на деле 5 px. То есть, в border-image я задаю границы, которые не масштабируются при масштабировании кнопки, а остальные border- в примере - это области в которых кнопка не получает события? То есть, это как бы "рамка" с полной функциональностью - её толщина не меняется, и кнопка при нажатии на неё не реагирует. Так что ли? Название: Re: Зачем в примере стиля дважды задаётся ширина границы виджета? Отправлено: Bepec от Декабрь 14, 2016, 20:43 Хз, пробуйте. Никто до вас не изучал поведение данных параметров :D
Название: Re: Зачем в примере стиля дважды задаётся ширина границы виджета? Отправлено: lit-uriy от Декабрь 15, 2016, 10:23 Может это поможет: http://htmlbook.ru/css/border-image
Обрати внимание на исходную картинку Название: Re: Зачем в примере стиля дважды задаётся ширина границы виджета? Отправлено: Гурман от Декабрь 15, 2016, 11:28 Может это поможет: http://htmlbook.ru/css/border-image Перед написанием ответа читать вопрос и дальнейшее обсуждение уже не принято? Вопрос был не про что такое border-image, а... суть вопроса в самом вопросе.Обрати внимание на исходную картинку Название: Re: Зачем в примере стиля дважды задаётся ширина границы виджета? Отправлено: Гурман от Декабрь 15, 2016, 11:31 Хз, пробуйте. Никто до вас не изучал поведение данных параметров :D Это равнозначно "никто не использовал"...Название: Re: Зачем в примере стиля дважды задаётся ширина границы виджета? Отправлено: lit-uriy от Декабрь 16, 2016, 07:35 Гурман, я прочитал тему и дал ответ по существу.
Для того чтобы понять зачем указаны толщины границы (border), нужно понять, что задают цифры в border-image. Эти цифры не задают толщину границы, они задают толщину части рисунка, которую нужно использовать для границы. граница толщиной 40 пкс может содержать часть рисунка толщиной 10 пкс. Название: Re: Зачем в примере стиля дважды задаётся ширина границы виджета? Отправлено: Гурман от Декабрь 16, 2016, 14:33 Название: Re: Зачем в примере стиля дважды задаётся ширина границы виджета? Отправлено: Гурман от Декабрь 16, 2016, 14:34 Для того чтобы понять зачем указаны толщины границы (border), нужно понять, что задают цифры в border-image. Границы border-* к border-image вообще не имеют отношения. |