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

Пребарај: #gaddafi

当前筛选 #gaddafi清除筛选
American Оbserver

@american_observer · Post #5050 · 04.02.2026 г., 15:03

Muammar Gaddafi’s Son Has Been Killed in Tripoli Saif al-Islam Gaddafi, the son of the late Libyan dictator Muammar Gaddafi and for years the second most powerful person in the country, has been killed in a village south-west of Tripoli, officials said on Tuesday night. The 53-year-old died from gunshot wounds in the town of Zintan, 85 miles south-west of the capital, according to the Libyan attorney general’s office. Gaddafi’s own office said he was killed in his home by masked assailants. Once seen as a pro-western reformer who might usher Libya towards constitutional change, Gaddafi quickly backed his father’s violent crackdown on nationwide popular protests in 2011. The international criminal court in the same year issued a warrant against him for crimes against humanity over the repression, an accusation echoed by a Tripoli court in 2015. The Libyan chief prosecutor’s office said it was looking for suspects and had dispatched forensic experts to the village, but did not provide further details of the killing. According to Gaddafi’s office, four masked men had stormed his house, turned off its cameras and clashed with him before killing him, in what it described as a “cowardly and treacherous assassination”. His sister, by contrast, told Libyan TV that he had died near the border with Algeria. His father was eventually toppled with assistance from Nato, and killed in 2011, ending four decades of rule. The country has since been consumed by fighting between different militias and remains divided 15 years later, with two rival governments controlling different parts of the country. Saif al-Islam Gaddafi tried to flee Libya for neighbouring Niger in 2011 but was caught by a militia and was imprisoned for six years in Zintan, before being freed in 2017 as part of an amnesty deal. When Gaddafi was captured in the Sahara in 2011 after months on the run, the figure known for his jeans and sweater had a thick black beard and was wearing flowing khaki robes – dressed to blend in with the nomads who were hiding him. Four years after he was released, Gaddafi announced himself as a candidate for Libya’s 2021 presidential elections. The announcement provoked outrage from those who had suffered under his father’s dictatorship, and from anti-Gaddafi militias. Rebel groups rejected his candidacy and he was disqualified owing to his 2015 conviction of war crimes, with the election ultimately collapsing in the end. #muammar#gaddafi#son#killed 📱American Оbserver - Stay up to date on all important events 🇺🇸