TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

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

Hashtags

Резултати

Пронајдени 3 слични објави

Пребарај: #bowu

当前筛选 #bowu清除筛选

Издательство БамБук показало атмосферную обложку новеллы "Туман. Вне измерений" Вэйфэн Цзисюй, которую для российского издания рисовал китайский художник (жаль, что не указано, кто именно). Надеюсь, скоро будут подробности касательно сроков, а пока любуемся #China#novel#WeiFengJiXu#Mist#BoWu#анонсы

Не могу вам объяснить, как это работает, но иногда в моей голове выстраиваются неожиданные ассоциативные ряды, на которые просто нельзя закрывать глаза. Читая очередную главу "Опасных личностей" Мугуа Хуан, я внезапно вспомнила про новеллу "Туман" Вэйфэн Цзисюй. Казалось бы, персонажи и сюжеты не имеют абсолютно ничего общего (кроме ментальных особенностей одного из главных героев), но достаточно было одного эпизода, чтобы я не смогла выкинуть эту мысль из головы. В "Тумане" мне запал в душу момент, когда капитан Сун, помня о том, что советник Цзи обладает уникальной памятью, фиксирующей все, что видит человек, и не дает впоследствии это забыть (гипертимезия), попытался спасти его от ужасающих воспоминаний о своем расчлененном теле (петли времени вошли в чат), поэтому поспешил закрыть ему глаза, поставив душевное равновесие этого человека выше своего собственного. Он попытался посмотреть на мир глазами Цзи Юйши, и картина эта, как мне кажется, была весьма пугающая. В "Опасных личностях", когда Се Линь узнает о способности Чи Цина читать мысли, он воспринимает эту новость с должным пониманием, но моментально перенастраивает свою оптику и начинает ставить себя на место этого странного нелюдимого парня, пытаясь понять, что тот чувствует, когда пропускает через себя порочные мысли людей. Казалось бы, эта способность — дар свыше, благодаря которому можно раскрыть столько запутанных дел, но реакция Се Линя оказалась совершенно иной, ибо он поставил душевное равновесие близкого человека выше очевидной выгоды: — Не снимай перчатки, — Се Линь положил руку ему на плечо. — Тебе не нужно слушать её мысли. Если она не хочет говорить, всегда найдётся способ вывести её на чистую воду. Короче, тебе не нужно вмешиваться. Ранее он догадался лишь о «способности» Чи Цина, а также предположил, что тот каждый раз слышит не совсем нормальные вещи. Но сегодня впервые оказался так близко к этой способности. Как именно радовалась Цзян Июнь у себя в мыслях? Какой недобрый смех Чи Цин услышал? Се Линь не решался даже думать об этом. Он знал лишь одно: эти голоса могли заставить кого угодно начать избегать людское общество в целом. И если это способ излечения, Се Линь скорее согласился бы на то, чтобы Чи Цин навсегда остался бесчувственным и отстранённым. — Пусть даже ты никогда не избавишься от своей болезни, плевать, — сказал он. — Что до чужих мыслей, это вовсе не имеет значения. Не надо их слушать, не надо никого трогать. Если вокруг соберётся толпа народу, ты просто встань за мной и возьми меня за руку. Мугуа Хуан. Опасные личности. Глава 100. Телефонный разговор Почему-то именно такие детали задевают тонкие струны моей души больше, чем любые героические поступки и пафосные речи. #China#novel#MuGuaHuang#DangerousPersonality#WeiFengJiXu#BoWu

Торжественно объявляю празднование Китайского Нового года законным поводом, чтобы прописать на своих книжных полках новых китайских обитателей! Внезапно получила в подарок недавно вышедшие томики издательства БамБук — первые части новелл "Туман Вне измерений" Вэйфэйн Цзисюй и "Его Темнейшество желает знать" Цинсэ Юйи и 11-й том маньхуа "Основатель тёмного пути". С "Темнейшеством" пока лично не знакома, но "Туман" когда-то занял особое место в моём сердце, замкнув десятку первых прочитанных даньмэй-историй. По моему каналу не скажешь, но я являюсь большим поклонником качественного сай-фая (и сейчас как раз читаю одну шикарную историю, о которой скоро будут вам трещать на все лады), поэтому "Туман" угодил всем моим вкусам и даже попал в топ-5 новелл 2022 года. К сожалению, в те времена я ещё не отличалась систематичностью (впрочем, как и сейчас), поэтому полноценного отзыва тогда не написала. Но есть небольшая заметка, которая намекает, что пора бы освежить свои воспоминания и ещё раз прокатиться на этой чёртовой карусели петле времени. #China#novel#DevilVenerable#QingseYuyi#WeiFengJiXu#Mist#BoWu#БамБук