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

Резултати

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

Пребарај: #newdevelopmentbank

当前筛选 #newdevelopmentbank清除筛选

✒️Ambassador Albert P. Khorev's Interview with the TASS News Agency(February 9, 2026) Key points: #Priorities Currently, we are prioritizing contacts in the field of regional security and the fight against international terrorism. We are also coordinating efforts in multilateral forums, primarily the UN and the SCO. Cooperation between the cities and regions of our respective countries also shows promise. Moscow, the Republic of Tatarstan, and Primorsky Krai in Russia, as well as the provinces of Punjab and Sindh in Pakistan, have already expressed interest in this regard. #Education#Science#Culture We are paying special attention to strengthening ties in education, science, and culture. We are actively working to promote the Russian language in Pakistan, including through the federal project "Russian Teachers Abroad." We also facilitate the organization of joint scientific conferences and cultural and sporting events. #PakistanStillMills#Insulin In the coming years, it is crucial to promote mutual trade, develop reliable alternative payment mechanisms, and implement large-scale joint projects. These projects include the revival of the Pakistan Still Mills, establishing rail connections between Russia and Pakistan, collaborating on hydropower, and creating joint ventures to produce medicines, including insulin. #Oil Pakistan is interested in cooperating with our country in oil exploration and production. Russia is ready to help Pakistan strengthen its energy sovereignty. We already have positive experience in this area. It was the USSR that helped Pakistan establish the state-owned oil and gas company, the Oil and Gas Development Company Limited, in the 1960s, and it assisted in discovering a number of oil and gas fields in Pakistan. #SCO We acknowledge the constructive collaboration with our Pakistani partners within the SCO. Ensuring regional security and combating terrorism and organized transnational crime are our priorities. #BRICS#NewDevelopmentBank Russia welcomes Pakistan's interest in joining BRICS. One practical step toward integrating Pakistan into BRICS could be Islamabad's accession to the New Development Bank, which finances infrastructure projects in developing countries. #DiplomatsDay On February 10, the Russian Foreign Service celebrates Diplomats' Day. On this festive occasion, I would like to wish my colleagues in Moscow and at foreign missions happiness, good health, endless inspiration, and success in promoting Russia's position on the world stage. #RussiaPakistan