@qirimdnaproject · Post #113 · 12.10.2025 г., 13:57
Saka ancestry [Kazakh_steppe + Tian_Shan] #scythians#genetics
Hashtags
TGINSIGHT SIMILAR POSTS
Изворен канал @pythonotes · Post #381 · 23 окт.
Установить свойства виджета в 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
Пребарај: #scythians
@qirimdnaproject · Post #113 · 12.10.2025 г., 13:57
Saka ancestry [Kazakh_steppe + Tian_Shan] #scythians#genetics
Hashtags
@r1az93 · Post #1494 · 01.08.2024 г., 17:47
"آماده سازی برای دفن". فرهنگ پازیریک ، قرن چهارم قبل از میلاد ، پنجمین بارو پازیریک. پنجمین بارو پازیریک بخشی از یک گروه هشت بارو در دره رودخانه بولشوی اولاگان در کوه های آلتای است. پنجمین بارو با مجموعه ای از چیزها ثروتمندترین آنها است و توسط S. I. Rudenko در سال 1949 حفاری شد. زیر خاکریز سنگی به ارتفاع 4 متر و قطر 42 متر یک گودال قبر به عمق 4 متر و مساحت 55 متر مربع وجود داشت. گودال توسط دو چوب پوشانده شده بود. بین آنها یک لایه سنگ به وزن مجموع 3 تن بود. اتاق دفن به شکل یک کابین چوبی دوگانه سه ستون پشتیبانی در دیوارهای شمالی و جنوبی داشت که وزن را محدود می کرد. بعد از اینکه سارقان باستانی تخته های چوبی و سقف دوگانه را قطع کردند ، آب شروع به نفوذ به اتاق کرد. با شروع زمستان ، یخ زد و به لطف شیب سنگی ، در تابستان آب نشد. این یک لنز یخ زیر تپه ایجاد کرد که اشیاء ساخته شده از مواد آلی را حفظ می کرد ، از جمله مومیایی های مرحوم. در قسمت شمالی گودال دفن ، 9 اسب پیدا شد: 5 اسب سوار و 4 اسب مهار. در کنار اسب های مهار ، یک ارابه 4 چرخ با شعاع ، که هیچ مکانیسم چرخشی نداشت ، که در آن چهار اسب در یک سونامی مهار شدند ، از هم پاشیده شده بود. در این واگن همسر رئیس به دنیای بعدی رفت ، زمانی که برای رئیس خود اسب سواری آماده شد. در پنجمین بارو پازیریک در یک چوب سارکوفاگ 5 متری ، اجساد مومیایی شده رئیس و همسرش قرار داشت. مرد حدود 55 سال سن داشت ، قدش 176 سال بود. به طور کلی ، اشراف پازیریک 170-180 سانتی متر قد داشتند. مردان معمولی پازیریک با رشد پایین تر ، به طور متوسط 164 سانتی متر مشخص شدند. در بخش عمده ای از عشایر آلتای قفقاز از نوع "شمالی" بودند ، موهای روشن (از قهوه ای و بلوند تیره تا بلوند) و چشم های روشن داشتند ، این نیز توسط انسان شناسی جمجمه ها نشان داده می شود (بله ، هر نوع نژادی دارای رنگدانه خاصی از چشم ، مو و رنگ پوست است) و قطعات حفظ شده مو در مومیایی ها. اما اغلب ، حتی در میان اشراف ، قفقاز با ویژگی های مغولویی وجود دارد ، که با ازدواج خارجی و ازدواج های سلسله ای با زنان دیگر قبایل غیر اسکیتی همراه است. "Подготовки к погребению". Пазырыкская культура, IV век до н.э., Пятый Пазырыкский курган. Пятый Пазырыкский курган входит в группу из восьми курганов в долине реки Большой Улаган в Горном Алтае. Пятый курган самый богатый из них по набору вещей и был раскопан С.И. Руденко в 1949 году. Под каменной насыпью высотой 4 метра и диаметром 42 метра находилась могильная яма глубиной 4 метра площадью 55 кв. м. Яму перекрывали два наката из брёвен. Между ними был слой камней общим весом 3 тонны. Погребальная камера в виде двойного сруба имела три опорных столба у северной и южной стен, которые сдерживали этот груз. После того, как древние грабители прорубили бревенчатый накат и двойной потолок, вода стала просачиваться в камеру. С наступлением зимы она промерзала и, благодаря каменному откосу, не оттаивала летом. Благодаря чему под курганом образовалась ледяная линза, сохранившая предметы из органических материалов, включая мумии покойных. В северной части могильной ямы обнаружили 9 лошадей: 5 верховых и 4 упряжных. Рядом с упряжными в разобранном виде лежала 4-х колёсная повозка со спицами, которая не имела поворотных механизмов, в которую цугом запрягали четверку лошадей. На этой повозке жена вождя отправлялась в мир иной, когда для самого вождя были подготовлены верховые кони. В Пятом Пазырыкском кургане в колоде-саркофаге длиною 5 м. лежали мумифицированные тела вождя и его жены. Мужчина был европпеоидом примерно 55 лет, ростом 176. В целом, пазырыкская аристократия была ростом 170-180 см. Рядовые пазырыкские мужчины отличались более низким ростом, в среднем 164 см. В основной своей массе алтайские кочевники были европеоидами "северного" типа, имели светлые волосы (от каштановых и темно-русых до блонда) и светлые глаза, на это также указывает антропология черепов (да, каждому расовому типу присуща определенная пигментация глаз, волос и тона кожи) и сохранившиеся фрагменты волос у мумий. Но нередко, даже среди знати встречаются европеоиды с монголоидными чертами, что связано с экзогамией и династическими браками с женщинами других нескифских племён. #scythians#indoeuropean#скифы#индоевропейцы Kār-nāmag ī Āryān | Подписаться👑