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

Резултати

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

Пребарај: #longitude

当前筛选 #longitude清除筛选
Amazing Geography 🌍

@amazingeo · Post #601 · 29.01.2026 г., 20:31

🌍 The Prime Meridian, set at 0° longitude, runs through Greenwich, England. Before 1884, over 20 different countries used their own starting meridian, making navigation confusing worldwide. ✨ #coordinates⚡#longitude⚡#navigation⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography 👉more Channels ​

Amazing Geography 🌍

@amazingeo · Post #489 · 02.12.2025 г., 12:31

🌍 The line of longitude at 180°, known as the antimeridian, is mostly ocean but zigzags to avoid splitting island nations. This creates the International Date Line’s famous bends and detours. ✨ #coordinates⚡#longitude⚡#dateline⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography 👉more Channels ​

Amazing Geography 🌍

@amazingeo · Post #109 · 24.08.2025 г., 16:12

🌍 The 180th meridian, a line of longitude, is opposite the Prime Meridian and mostly runs through the Pacific Ocean. It’s where calendar days officially change, creating the famous International Date Line. ✨ #coordinates⚡#longitude⚡#dateline⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography🌍 ​

Amazing Geography 🌍

@amazingeo · Post #641 · 19.02.2026 г., 12:31

🌍 The Equator is the longest line of latitude, stretching over 40,000 kilometers around Earth. By contrast, lines of longitude meet at the poles and are shortest where they cross the Arctic and Antarctic. ✨ #coordinates⚡#latitude⚡#longitude⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography 👉more Channels ​

Amazing Geography 🌍

@amazingeo · Post #19 · 10.08.2025 г., 10:43

🌍 The geographic coordinates of the North Pole are always 90° north latitude, but its longitude can technically be any value—every line of longitude meets at this single icy point. ✨ #coordinates⚡#latitude⚡#longitude⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography🌍

Amazing Geography 🌍

@amazingeo · Post #220 · 12.09.2025 г., 00:12

🌍 The Greenwich Meridian and 180th meridian form a pair of opposite lines that together define Earth's zero point for both longitude and geographic coordinates worldwide. ✨ #meridian⚡#longitude⚡#navigation⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography🌍 ​

Amazing Geography 🌍

@amazingeo · Post #65 · 17.08.2025 г., 13:12

🌍 The Greenwich Meridian, which runs through London, is the starting point for measuring longitude. All other longitudes, east or west, are measured from this invisible line. ✨ #longitude⚡#Greenwich⚡#navigation⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography🌍