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

Резултати

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

Пребарај: #cattaneo

当前筛选 #cattaneo清除筛选
Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #42431 · 12.12.2022 г., 12:00

Legge di Bilancio, Forza Italia non molla sulle pensioni. Nonostante il no del governo, il capogruppo forzista #Cattaneo ribadisce che voteranno l'emendamento per l'aumento a 600 euro delle pensioni minime. @UltimoraPolitics24

Hashtags

Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #42723 · 14.01.2023 г., 09:49

Alessandro #Cattaneo (#FI): "Trovo ingeneroso definirci i ‘Pierini’ della coalizione. Non abbiamo mai fatto mancare un voto, non abbiamo mai fatto tardare di una mezz'ora il Consiglio dei ministri. Non siamo leali, siamo lealissimi" @UltimoraPolitics

Hashtags

Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #42596 · 27.12.2022 г., 12:25

Alessandro #Cattaneo (#FI): "Il dl rave, tra le altre cose, contiene anche la norma che anticipa il reintegro dei medici no vax su cui, lo dico con chiarezza, Forza Italia ha grandi perplessità. Senza alcun imbarazzo, siamo assolutamente convinti che sul tema dei vaccini non possano e non debbano esserci ambiguità o esitazioni. Detto questo, Forza Italia non farà mancare i suoi voti." @UltimoraPolitics

Hashtags

Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #42510 · 20.12.2022 г., 12:47

#Spid, il capogruppo #FI alla #Camera Alessandro #Cattaneo assicura: "Non verrà cancellato. Ѐ uno strumento che semplifica la vita dei cittadini, permette di risparmiare tempo, evitando le file agli sportelli, e consente di agire in piena sicurezza. Stiamo cercando il modo di risolvere alcune criticità piuttosto che girarci dall'altra parte. Non possiamo ignorare che ci sono alcune categorie, come gli anziani, che incontrano difficoltà nell'utilizzarlo" @UltimoraPolitics