Установить свойства виджета в PySide можно не только через соответствующие методы и конструктор класса. Можно их изменять с помощью метода setProperty по имени.
btn = QPushButton("Click Me")
btn.setProperty("flat", True)
Это аналогично вызову
btn.setFlat(True)
Если указать несуществующее свойство, то оно просто создается
btn.setProperty("btnType", "super")
Получить его значение можно методом .property(name)
btn_type = btn.property("btnType")
Когда это может быть полезно?
▫️Можно просто хранить какие то данные в виджете и потом их доставать обратно
widget = QWidget()
widget.setProperty('my_data', 123)
print(widget.property('my_data'))
▫️ Назначая эти свойства разным виджетам можно потом отличить виджеты во время итераци по ним. Например, найти все кнопки со свойством my_data="superbtn".
Но ведь вместо кастомного свойства можно использовать objectName, будет тот же результат.
Да, но y ObjectName есть ограничение - только строки.
▫️ Если нам потребуется не просто поиск а, например, сортировка по числу, то свойства позволяют нам это сделать. Поддерживается любой тип данных
widget.setProperty('my_data', {'Key': 'value'})
widget.setProperty('order', 1)
all_widgets.sort(key=w: w.property('order'))
Но ведь Python позволяет всё вышеперечисленное сделать простым созданием атрибута у объекта
widget.order = 1
widget.my_data = 123
Да, но я думаю что не надо объяснять почему не стоит так делать. К тому же, если у виджета нет свойства то метод .property(name) вернет None, а отсутствующий атрибут выбросит исключение.
▫️ Действительно полезное применение кастомным свойствам - контроль стилей. Здесь атрибутами не обойтись, нужны именно свойства.
Дело в том, что в селекторах стилей можно указывать конкретные свойства виджетов на которые следует назначать стиль.
Просто запустите этот код
from PySide2.QtWidgets import *
if __name__ == "__main__":
app = QApplication([])
widget = QWidget(minimumWidth=300)
layout = QVBoxLayout(widget)
btn1 = QPushButton("Action 1")
btn2 = QPushButton("Action 2")
btn3 = QPushButton("Action 3", flat=True)
layout.addWidget(btn1)
layout.addWidget(btn2)
layout.addWidget(btn3)
# добавим кастомное свойство одной кнопке
btn1.setProperty("btnType", "super")
# добавляем стили
widget.setStyleSheet(
"""
QPushButton[btnType="super"] {
background-color: yellow;
color: red;
}
QPushButton[flat="true"] {
color: yellow;
}
"""
)
widget.show()
app.exec_()
С помощью селектора мы избирательно назначили стили на конкретные кнопки.
Как получить список всех кастомный свойств?
Функция получения списка кастомных свойств отличается от получения дефолтных.
def print_widget_dyn_properties(widget):
for prop_name in widget.dynamicPropertyNames():
property_name = prop_name.data().decode()
property_value = widget.property(property_name)
print(f"{property_name}: {property_value}")
#tricks#qt
Gedelme Kalesi
https://maps.app.goo.gl/uJwnqTt5MxPgXu2d6
Это одна из достопримечательностей Гедельме плато.
Название крепости переводят как "сушка зерна", "хранение зерна", "зернохранилище" или "Зерно Фригмос".
Этот византийский замок относят к lX веку нашей эры. Считается, что основной задачей его было хранилище зерна всего региона.
Крепость Гедельме сейчас находится в довольно разрушенном состоянии. Но место остается интересным, уникальным, еще и с шикарными видами...
#Анталия
#Kemer
#ТурецкаяТурция
Gedelme mağarası
https://maps.app.goo.gl/zNk4QSeaxgjdbpfH6
Одна из достопримечательностей плато Гедельме расположена, примерно, в ста метрах от Платана возрастом в две тысячи лет.
Пещера Gedelme имеет и другое название. Среди местных она более известна как пещера Peynirdeliği, что означает Сырная Дыра.
Ранее в этой местности было развито скотоводство. Тогда в пещере хранили сыр - она была своего рода холодильником. Даже в летнюю жару здесь довольно прохладно.
Длина пещеры составляет 74 метра, ее максимальная глубина достигает 19-ти. Удачный вариант прохладиться от летней жары и посмотреть колонны сталактитов и сталагмитов, которые формировались миллионы лет.
Вход в пещеру имеет символическую оплату.
#Анталия
#Kemer
#ТурецкаяТурция
Gedelme Çınarı
https://maps.app.goo.gl/29WmvyJZiau4mkMk8
Этот огромный платан растет в древнем поселении на плато Гедельме.
Дерево впечатляющих масштабов - диаметр более 4.5 метров, окружность, по разным данным, 14.26-15.83 метра. Высота - 28 метров.
Возраст этого гиганта - не менее 2000 лет. А по некоторым источникам - не менее 2700 лет...
#Анталия
#Kemer
#ТурецкаяТурция
Kesme Boğazı Mevki
https://maps.app.goo.gl/oa2vtJXTZXCwbbsJA
Этот потрясающий природный уголок находится всего в 10 километрах на запад от Кемера и примерно в 45-ти - от Анталии.
Именно здесь растут Олимпийский Шафран (Crocus wattiorum) и Кемерская орхидея. Эти растения считаются редкими и находятся под государственной охраной.
Kesme Boğazı Mevki связано с легендой. Возможно, вы ее знаете. Согласно легенде, мост, который находится в этой местности, был построен Александром Македонским и полководец им пользовался. Однако, это не более, чем легенда.
Мост относится к римской или ранневизантийской эпохе. Об этом свидетельствует его тип кладки. Во времена Османской империи мост восстановили. Его состояние и сейчас остаётся на высшем уровне.
Местность Kesme Boğazı Mevki имело важное значение. Оно служило ключевым звеном, связывающим древние исторические территории - Ликию с Писидией и Памфилией.
Kesme Boğazı - место, где чудесным образом переплетается уникальная природа и история. А ещё здесь, естественно, есть кафе с завтраками и обедами. Просторные беседки расположены прямо над горной рекой и спуском в эту речку.
При желании можно не только поесть с красивым видом, но и искупаться...
#Анталия
#Kemer
#ТурецкаяТурция
Gedelme Yaylası
Прогулка по Гедельме плато.
Расположено оно на высоте 700 метров, примерно в 15-ти километрах на западе от Кемера.
Это очень богатая древностями местность. Здесь проходит Ликийская тропа и можно встретить лагери путников.
На территории Gedelme Yaylası находится древнее поселение. Из местных достопримечательностей также стоит отметить византийский замок, пещеру...
Gedelme Yaylası - красивое место с шикарным видами и большим количеством старых огромных Платанов (Чинар). Одному из которых - более 2000 лет.
На плато выращивают яблоки, орехи. Здесь растут множество инжировых деревьев.
#Анталия
#Kemer
#ТурецкаяТурция
Kemer
https://maps.app.goo.gl/gruT6zhc31BSkwcj6
Районный центр анталийского региона, о котором, кажется, знает каждый. Но, как правило, эти знания ограничиваются тем, что "Кемер - это туристический центр с пляжами, отелями, клубами, магазинами для туристов..."
Историю заселения территории современного Кемера связывают с античным городом Faselis - это конец Vll века до нашей эры.
Kemer стал городом относительно недавно - около 40 лет назад. Название получил в честь длинной каменной стены. В начале XX века здесь существовало поселение под названием Eski Köy, которое постоянно страдало от наводнений. Чтобы защититься от этого бедствия, у подножия гор построили каменную стену длиной 23 километра. Она будто опоясывала городок, защищая от воды. "Kemer" - в переводе с турецкого - означает "пояс".
Район Kemer богат на природные и рукотворные достопримечательности. Достоинство этой местности - это великолепное сочетание полных лесами гор и моря. Стоит упомянуть трассу Анталия-Кемер - она просто насыщена шикарными видами!..
Пляж города является частью 52-х километровой береговой линии, отмеченной наградой "Голубой флаг". Недалеко от Кемера расположены два прибрежных античных города с пляжами: Олимпос и Фаселис, а между ними - гора Химера с неугасающим огнем.
Продолжают красоты города - охотничий домик сельджуков при въезде в Кемер, плато Gedelme с древним платаном, крепостью и пещерой в 17-ти километрах вглубь гор...
Не остаются без внимания любители тусовок. Кемер - город клубов и громкой музыки, сюда постоянно приезжают музыкальные исполнители.
#Анталия
#Kemer
#ТурецкаяТурция
И снова Кемер
Снова вкусный завтрак в уже любимой кондитерской и купание в бухте.
Но в этот раз другой фокус внимания - красивые цветущие растения, необыкновенные плоды, огромные старые сосны вперемешку с лавровыми деревьями... Как же они пахнут!
И крупный голубой краб, который наблюдал за нами своими выпуклыми глазами.
#Анталия
#Kemer
#ТурецкаяТурция
Сегодня выдался шикарный день с прогулкой по окрестностям Кемера.
Щедрый турецкий завтрак, красивые виды, тенистый пляж с огромными соснами, пение цикад, купание в бухте...
#Анталия
#Kemer
#ТурецкаяТурция
Сегодня Кемер был особенно доброжелателен, красив и вкусен.
Мало кто знает, что ещё до 60-х годов прошлого столетия этот город не имел сухопутных подъездов. К нему можно было добраться только по морю.
Сейчас же к нему ведут классные дороги с тонелями и потрясающими видами.
#Анталия
#Kemer
#ТурецкаяТурция
Günaydın ☀️
Дорога к пляжу Little White Bay.
К счастью, есть еще места (даже в Анталии/Кемере), где почти "не ступала нога человека"...
Этот пляж находится недалеко от Райской Бухты. Но к нему нет подъезда или обустроенного прохода.
К пляжу ведёт только лесная тропа - с красивыми видами, обрывами, руинами античных стен...
#günaydın
#доброеутро
#Kemer
#ТурецкаяТурция
Kemer Pastanesi Fırın&Mutfak
https://maps.app.goo.gl/ZUy5382SFv2Q2amF6
Обычно Кемер воспринимается как абсолютно туристический город с соответствующими заведениями. Но и здесь есть интересные места.
Kemer Pastanesi Fırın&Mutfak - пекарня, которая была основана еще в 1952 году. Она находится в центре города, в пешей доступности от часовой башни.
В 2018-м году стала лучшей кондитерской года, вошла в число лучших заведений и по праву считается одним из важных брендов города.
Основы Kemer Patisserie были заложены ещё в Стамбуле. Основателем стал Turhan Büyükkapucu. Позже имя, традиции и особые рецепты были переданы детям. Сейчас дело продолжает его младший сын Halil Bey.
В этой патисери готовят завтраки. Большие турецкие завтраки Serpme Kahvaltısı тоже есть. Здесь огромное количество выпечки - просто глаза разбегаются! И постоянно приносят новые партии... Впечатлила самса и сырные Pişi.
В патисери очень понравились их корзинки с орехами и сгущённым молоком (süt reçelli). Необыкновенно хрустящая корзинка из песочного теста с ярким привкусом сливочного масла, много разных орехов и сгущенное молоко... Это очень вкусно!
Здесь много видов хлеба. Совершенно разного - из пшеницы, спельты, кукурузы, из темных сортов зерновых, без глютена, сладкого, несладкого...
Если хотите симиты - помните, что выпекают их до часу!
#Анталия
#Kemer
#afiyetolsun
#ТурецкаяТурция
Naturland Vacation Club In Eco Park
https://maps.app.goo.gl/YeqSjUs8KvDa5n9g7
Заброшенный отель находится в городке Çamyuva анталийского региона.
Этот пятизвёздочный отель был открыт в 1988-м году и, проработав более 25 лет, в 2013-м году закрылся. Со временем он превратился в отель-призрак. Это и привлекало туристов - слегка пугающий вид опустошенного отеля...
Длительное время сюда приезжали любители поглазеть на разрушаюшиеся конструкции. Но уже около полугода как вход в отель закрыт. Здесь ведут ремонтные работы. Обещают, что после восстановления отель снова начнет принимать саоих гостей.
Вероятно, какую-то зону выделят в качестве музея истории отеля.
#Анталия
#Kemer
#отель
#ТурецкаяТурция