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

Резултати

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

Пребарај: #infra

当前筛选 #infra清除筛选
Indian Development News 🇮🇳

@developmentnewsindia · Post #44438 · 05.05.2026 г., 08:00

Change in West Bengal Govt also means projects stuck now can be implemented 🔸Varanasi - Kolkata Expressway 🔸Gorakhpur - Siliguri Expressway 🔸Extension of Eastern Dedicated Freight Corridor from Bihar to Bengal 🔸Varanasi - Siliguri High Speed Rail Corridor will also see timely execution #Infra

Hashtags

Indian Development News 🇮🇳

@developmentnewsindia · Post #44272 · 01.05.2026 г., 04:32

India's toll plazas gets a serious upgrade. The Multi-Lane Free Flow (MLFF) system is now live and aim is to eventually transition to no boom barriers, no queues, no stopping with FASTag deducted automatically. 108 toll plazas across major national highways, with full rollout targeting all four-lane+ corridors by 2029. The end goal is to eliminate human intervention, no revenue leakage, no fuel wasted idling at barriers. #Infra

Hashtags

Indian Development News 🇮🇳

@developmentnewsindia · Post #44066 · 25.04.2026 г., 14:38

Mumbai-Ahmedabad Bullet Train Project: Assembly of India's largest-ever Tunnel Boring Machine (TBM), with a diameter of 13.56 meters, progressing at Shaft 2 in Vikhroli, Mumbai. Drilling is expected to begin in July 2026. #Infra

Hashtags

Indian Development News 🇮🇳

@developmentnewsindia · Post #43982 · 23.04.2026 г., 12:33

PM Modi to inaugurate the 594 km long Ganga Expressway on April 29 India's longest expressway, linking Meerut-Prayagraj via 12 districts, cutting travel time by ~50% and boosting connectivity & trade #Infra

Hashtags

Indian Development News 🇮🇳

@developmentnewsindia · Post #43860 · 20.04.2026 г., 12:46

Not just sea bridges, coastal roads, tunnels, and metros. In housing too, Mumbai is being rebuilt from the ground up. Dharavi: 641 acres, ₹95,700 crore. Motilal Nagar in Goregaon: 143 acres, up to ₹1,00,000 crore. BDD Chawls in Worli: 87 acres with Tata, Capacit'e and CITIC group. Bhendi Bazaar Kamathipura 5 landmark redevelopment projects with Adani, Tata, and marquee developers. Combined investment crossing ₹2,00,000 crore. The city that powers India's economy is finally getting the urban infrastructure its ambition always deserved #Infra

Hashtags

Indian Development News 🇮🇳

@developmentnewsindia · Post #43653 · 16.04.2026 г., 03:04

Zoji La Tunnel Nears a Major Breakthrough India’s strategic Zoji La tunnel connecting Kashmir to Ladakh is on the brink of a breakthrough, with the final blast expected by end of May 2026. Only 300 meters remain of the 13.1 km tunnel, with work progressing from both Sonamarg and Minamarg ends. #Infra

Hashtags

Indian Development News 🇮🇳

@developmentnewsindia · Post #43620 · 15.04.2026 г., 08:20

Infrastructure spending in India has grown six-fold to more than ₹12 lakh crore a year since 2014, compared with less than ₹2 lakh crore before 2014, Prime Minister Narendra Modi said on Tuesday. #Infra

Hashtags

Indian Development News 🇮🇳

@developmentnewsindia · Post #43256 · 05.04.2026 г., 12:44

Bogibeel Bridge (4.94 km) built on the mighty Brahmaputra river cuts Dibrugarh–Itanagar road distance by 150 km and rail by 705 km. Project cost revised to ₹4,857 crore from ₹3,230 crore; inaugurated in 2018 after 2002 start. Double-line rail + 3-lane road link boosts connectivity across Assam–Arunachal. #Infra

Hashtags

ПретходнаСтраница 1 од 4Следна