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

Резултати

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

Пребарај: #kant

当前筛选 #kant清除筛选
EmbajadaRusaVen

@embajadarusaven · Post #1551 · 22.04.2024 г., 22:48

⚡️Hoy se cumplen 300 años del nacimiento de Immanuel Kant. Uno de los principales pensadores de la época de Renacimiento nació el 22 de abril de 1724 en los suburbios de Königsberg (actual Kaliningrado), donde vivió toda su vida. Creó obras en las que fundamentó numerosas ideas y doctrinas filosóficas de importancia para la filosofía teórica y práctica moderna, la ética, la cultura, la política y la lógica. 💯 De hecho, el filósofo fue el primero en comprender los fundamentos del pensamiento humano y en formar un concepto único de la moral. 📍Las ideas revolucionarias de Immanuel #Kant son inseparables del lugar donde nació y vivió toda su vida. 🔗Leer más sobre #Kaliningrado🇷🇺https://shorturl.at/rDJ79

PiaNinoNotovna

@ninonotovna · Post #210 · 05.05.2025 г., 18:55

#Orgue #Principal #Königsberg #Kant Дорогие друзья, Сегодня хочу рассказать одну историю: С детства мечтала играть на органе. Органов в Москве, кроме Большого зала консерватории, в то время почти нигде не было. Но мечта теплилась. Лишь поступив в Консерваторию я смогла начать заниматься. Там их оказалось всего пять (три в классах, два в Залах - в Большом и Малом). Но желающих и жаждущих вроде меня было значительно больше:)) Приходилось вставать в 5 утра, чтобы позаниматься. Но… органисткой я так и не стала. Все закончилось дипломным экзаменом. Выбрала по жизни Рояль. Но вот Евгений АВРАМЕНКО - мой коллега и однокашник по классам фортепиано (у профессора Михаила Межлумова) и органа (у профессора Наталии Гуреевой -Ведерниковой) - стал блистательным органистом - Главным Органистом Собора в Калининграде (это один из лучших органов в стране), прекрасным педагогом и пропагандистом своего Великого инструмента. Если Вы действительно хотите что-то узнать об Органе, о его истории, об органной музыке, об органистах и Великих органах мира - подпишитесь на канал Евгения https://t.me/organprincipal Я вот уже подписалась:)