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

Пребарај: #qalqilya

当前筛选 #qalqilya清除筛选
RNN Archive

@rnn_archive · Post #591 · 16.09.2023 г., 21:03

The Azzun Phenomenon: Our attentive readers may have noticed updates every now and then about settlers being injured by stones or Molotovs in the modest town of Azzun, #Qalqilya: a simple search yields about 60 such reported operations in the last year. These operations, while simple, turn out to be very effective at shattering settler security. Azzun's stone-throwing prowess is not a coincidence, and in fact, the choice to carry out these operations here is a strategic one. The town of just 8,000 residents and 9 kilometers squared—which has offered 80 prisoners and five martyrs in recent years—is located at a historically important crossroads. Yet, this small town has become a nightmare for settlers. In August, at least 25 settlers were wounded by such operations in Azzun alone, rivaling injuries of resistance strongholds such as Jenin and Nablus. Last week there, four settlers were wounded and nearly a dozen of their cars were destroyed in one day. Settlers here are specifically targeted on a major vein of zionist infrastructure: settler bypass road Route 55, passing through Azzun. This road has actually been around since 300 BC. It was established formally in 1935, and this racist road was blocked often by Palestinians during the first intifada. As a result, the occupation built a number of alternative bypass roads. In 2002 amidst the second intifada, it became a settler bypass road, with its purpose being to give settlers a Jewish-only detour such that they can avoid the apparent danger of Palestinian areas. This stone-throwing has become a major problem for the occupation, who increased its security on Qalqilya for almost two months now, arresting a number of alleged stone-throwers. Today, the steadfast resistance of Azzun continue to create nightmares for settlers despite the siege, shattering their glass, destroying their cars, and targeting them with rudimentary explosive devices made at home. In all forms, resistance increases, and Azzun marches on the path of Jenin, Nablus, Tulkarem, and Gaza.

Hashtags

Resistance News Network Mirror

@PalestineResist_Mirror · Post #4566 · 01.05.2026 г., 00:04

🚨 IOF units are conducting a widespread campaign of raids and incursions across occupied Palestine, with operations concentrated in #Nablus, #Qalqilya, and #AlKhalil. Concurrently, armed settlers are launching violent assaults with live fire against residential areas in the vicinity of Al-Arroub camp. Settler provocations are also reported across the Nablus district.

RNN Mirror

@Palresistmirror · Post #94010 · 01.05.2026 г., 00:04

🚨 IOF units are conducting a widespread campaign of raids and incursions across occupied Palestine, with operations concentrated in #Nablus, #Qalqilya, and #AlKhalil. Concurrently, armed settlers are launching violent assaults with live fire against residential areas in the vicinity of Al-Arroub camp. Settler provocations are also reported across the Nablus district.