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 слични објави

Пребарај: #topnews

当前筛选 #topnews清除筛选
BadVolf

@badvolfnews · Post #1047 · 02.10.2023 г., 20:35

🗓 Top News Today ▫️ In Donetsk direction, the enemy losses were up to 180 Ukrainian servicemen killed and wounded, two armoured fighting vehicles, three motor vehicles, as well as two Gvozdika self-propelled artillery systems. ◽️ Air defence forces, electronic warfare systems, and small-arms fire shot downtwo HIMARS MLRS missiles and two operational-tactical missiles. ▫️ In the course of the counter-battery warfare, one Gvozdika self-popelled artillery system, one M-46 gun, one D-30 howitzer, as well as one AN/TPQ-48 counterbattery warfare radarwere eliminated. ◽️45unmanned aerial vehicles were shot down during the day. ▫️The Russian Defence Ministry publishes objective control data of AFU hardware wiped out by artillery near Urozhaynoye, as well as the elimination of AFU manpower by Solntsepyok heavy flamethrower systems and artillery close to Urozhaynoye, as well as by infantry units and mortar crews in Zaporozhye region. ▫️The Russian Defence Ministry shows 57mm S-60 automatic surface-to-air guns, as well asSu-25SM attack aircraft and Ka-52 attack and reconnaissance helicopters, assisted by air support controllers, in action within the special military operation. ▫️Another AFU POW told about chaos and low morale in Ukrainian units. ▫️Russian peacekeepers continue to ensure the safety of transportation of vehicles with civilians independently leaving territory of Nagorno-Karabakh through Lachin corridor. #TopNews 🔹Russian Defence Ministry

Hashtags

Daily Political Press

@dailypolitical · Post #11 · 08.04.2026 г., 13:05

📰US stock prices soar in early Asian trading after truce news 🔗https://top-news.shepherdgazette.com/us-stock-prices-soar-early-asian-trading-truce/?utm_source=telegram&utm_medium=social&utm_campaign=zimm-distribute via Daily Political Press #Asian#TopNews#News