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

Резултати

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

Пребарај: #epca

当前筛选 #epca清除筛选
EU in Kazakhstan 🇪🇺🇰🇿

@euinkazakhstan · Post #735 · 11.04.2024 г., 07:34

The 7th meeting of the Committee for Cooperation of the 🇪🇺European Union and the 🇰🇿Republic of Kazakhstan in a trade configuration was held in Brussels. During the meeting, an agreement was reached on arbitrators in accordance with Article 196 of the EPCA. Additionally, several issues related to trade and investment development were discussed, including the implementation of the trade section of the EPCA, the Ready4Trade Central Asia project, sanitary and phytosanitary measures, as well as expanding the range of Kazakhstani goods supplied to the EU market. * Брюссельде 🇪🇺Еуропалық Одақ пен 🇰🇿Қазақстан Республикасының ынтымақтастық комитетінің сауда конфигурациясындағы 7-ші отырысы өтті. Отырыс барысында Кеңейтілген әріптестік пен ынтымақтастық туралы келісімнің 196-бабына сәйкес арбитрлер туралы келісімге қол жеткізілді. Сонымен қатар, сауда мен инвестицияны дамытуға қатысты бірқатар мәселелер, соның ішінде КӘЫК-нің сауда бөлімі, Ready4Trade Орталық Азия жобасын жүзеге асыру, санитарлық және фитосанитарлық шаралар, сондай-ақ ЕО нарығына жеткізілетін қазақстандық тауарлар ассортиментін кеңейту мәселелері талқыланды. #EU#EuropeanUnion#EUinKZ#EUKAZ#Traderelations#EPCA 📷 from Ministry of Trade and integration of the RK

В Брюсселе состоялось подписание Соглашения о расширенном партнёрстве и сотрудничестве (EPCA) между Узбекистаном и Европейским союзом. Новый документ заменяет соглашение 1996 года и определяет приоритеты двустороннего взаимодействия в экономике, науке, транспорте и зелёной энергетике. https://yep.uz/ru/2025/10/uzbekistan-es-rasshirennoe-soglashenie-o-partnerstve/ #Узбекистан#ЕС#EPCA#Мирзиёев#УрсулаФонДерЛяйен#АнтониуКошта#Брюссель#Сотрудничество#Дипломатия#Экономика#ЗелёнаяЭнергетика

Bryusselda O‘zbekiston va Yevropa Ittifoqi o‘rtasida kengaytirilgan sheriklik va hamkorlik to‘g‘risidagi bitim imzolandi. Marosimda Prezident Shavkat Mirziyoyev, Yevropa Kengashi Prezidenti Antoniu Koshta va Yevropa Komissiyasi Prezidenti Ursula fon der Lyayen ishtirok etdi. https://yep.uz/uz/2025/10/ozbekiston-yevropa-ittifoqi-kengaytirilgan-sheriklik-bitimi/ #O‘zbekiston #YevropaIttifoqi#EPCA#ShavkatMirziyoyev#Bryussel#UrsulafonderLyayen#AntoniuKoshta#Hamkorlik#Sheriklik#GlobalDarvoza

Uzbekistan and the European Union have signed the Enhanced Partnership and Cooperation Agreement (EPCA) in Brussels. The new document replaces the 1996 agreement and sets the priorities for bilateral cooperation in trade, science, transport, and green energy. https://yep.uz/en/2025/10/uzbekistan-eu-enhanced-partnership-cooperation-agreement/ #Uzbekistan#EU#EPCA#Mirziyoyev#UrsulavonderLeyen#AntonioCosta#Brussels#Cooperation#Diplomacy#Economy#GreenEnergy