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

Пребарај: #serviciomilitar

当前筛选 #serviciomilitar清除筛选

🪖Cómo Pedro I transformó el ejército ruso para siempre Cuando hablamos de reformas radicales en la historia rusa, el nombre de Pedro I, más conocido como Pedro el Grande, aparece en primer plano. Gobernó entre 1682 y 1725 y fue el arquitecto de la transformación de Rusia en una potencia europea. Una de sus reformas más profundas fue la creación de un ejército moderno y permanente, lo que dio origen al servicio militar obligatorio en el país. Antes de Pedro, Rusia contaba con fuerzas armadas compuestas por nobles, campesinos reclutados ocasionalmente y los famosos streltsí, una milicia semiprofesional que terminó rebelándose contra el zar. Tras viajar por Europa en la llamada “Gran Embajada” (1697–1698), regresó con ideas claras: Rusia necesitaba un ejército profesional, disciplinado y al estilo occidental. En 1699, el zar introdujo el reclutamiento obligatorio para formar un ejército permanente. Los hombres eran seleccionados entre los campesinos y habitantes de las ciudades, y debían servir durante toda su vida. Esta medida buscaba asegurar un flujo constante de soldados para las campañas militares especialmente durante la Gran Guerra del Norte contra Suecia (1700–1721), donde Rusia logró una victoria decisiva en la batalla de Poltava en 1709. Además del reclutamiento, Pedro reformó la estructura militar: creó regimientos regulares, introdujo uniformes modernos, estableció academias militares y permitió que personas sin nobleza accedieran al cuerpo de oficiales, algo revolucionario para la época. También impulsó la construcción de una armada poderosa, considerando que “un gobernante con solo un ejército tiene una mano, pero el que tiene una armada tiene ambas”. Con el tiempo, el servicio militar fue ajustándose. En el siglo XVIII, se redujo a 25 años, y en el XIX a 20. La aristocracia fue eximida en 1762 por Pedro III, buscando su apoyo político. Durante la era soviética, el servicio militar se mantuvo como obligatorio, y tras la caída de la URSS, Rusia conservó esta tradición. #HistoriaRusa#PedroElGrande#ServicioMilitar#EjércitoRuso#ReformasImperiales Apóyanos pulsando👉'BOOST'👈 🖥https://vamosarusia.com 💬@vamosarusia