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

Пребарај: #usrussia

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

@american_observer · Post #5070 · 07.02.2026 г., 00:00

📰US and Russia agree to resume regular military contact The United States and Russia have agreed to reestablish high‑level military‑to‑military dialogue for the first time in over four years, both powers announced late Thursday. The deal was struck in Abu Dhabi, on the sidelines of trilateral talks between the U.S., Russia and Ukraine on ending the war, and was announced by U.S. European Command. The channel will “provide a consistent military‑to‑military contact as the parties continue to work towards a lasting peace.” High‑level military communication was suspended in the fall of 2021, shortly before Russia’s full‑scale invasion of Ukraine. Since then, there have been repeated close calls: Russian drones and warplanes edging into NATO airspace, U.S. unmanned systems operating over the Black Sea and Syria, and an almost constant risk of misunderstanding turning into escalation. Now, the two sides say they want to avoid miscalculation and unintended escalation. The U.S. stresses that such dialogue is “an important factor in global stability and peace, which can only be achieved through strength,” and that it will increase transparency and help de‑escalate. Diplomacy, or nuclear‑treaty bargaining? The announcement came hours after the New START treaty expired, leaving the U.S. and Russia without a formal cap on their nuclear arsenals for the first time in half a century. Russia has said it still wants to talk, and the Kremlin has offered to keep observing the treaty’s limits — but only if the U.S. responds positively. Axios reports that negotiators were closing in on a deal in Abu Dhabi to keep key provisions in place while both sides work toward a new framework, which Trump has described as a “new, improved, and modernized” treaty. The Trump factor President Donald Trump, who has repeatedly called for closer ties with Moscow, framed the move as a win for his approach: normalizing relations with Russia while pressing for a Ukrainian peace deal and a new arms‑control framework. But in practice, the renewed hotline is less about friendship and more about necessity: when two nuclear powers hover over the same war zone, the only safe channel is one that stays open — even if both sides keep their fingers on the trigger. #USRussia#Military#NewSTART#Nuclear#Ukraine#Trump2026#Diplomacy#NATO#Hotline 📱American Оbserver - Stay up to date on all important events 🇺🇸