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

Пребарај: #casalpalocco

当前筛选 #casalpalocco清除筛选
Savino Balzano

@savinobalzano · Post #420 · 27.06.2023 г., 10:32

Qualcuno provava persino a dare la colpa alla mamma che non avrebbe dato la precedenza a quelle zucche vuote, a quelle nullità, a quegli emeriti falliti. Emerge ora che l'abbiano travolta a 124km/h in una strada dove il limite era 30. Venite a difenderli adesso, dai. La mia al TG Plus di Cusano Italia TV #TheBorderline#youtubers#casalpalocco#televisione#informazione#giornalismo#dibattito

Savino Balzano

@savinobalzano · Post #415 · 19.06.2023 г., 06:48

Il gravissimo incidente di #casalpalocco credo sia emblematico della società malata che stiamo costruendo: nullità che si credono qualcuno grazie a milioni di imbecilli che li stanno a guardare. Emeriti idioti defecati dal modello dell'avere che si credono "arrivati" senza aver mai fatto assolutamente nulla di utile per il prossimo e per la comunità di cui fanno parte, per il suo progresso. Cresciuti da altre nullità, da infime deiezioni sociali, capaci di definire "bravata" il gesto che ha ucciso un bimbo di 5 anni, dinanzi agli occhi della mamma e di una sorellina ancora più giovane. Mi fanno schifo: nessuna comprensione, nessuna pietà, solo odio. La mia ai microfoni di Radio Radio e di Stefano Molinari. #TheBorderline#borderline#italia#incidentestradale

Savino Balzano

@savinobalzano · Post #560 · 08.02.2024 г., 15:21

Si moltiplicano gli episodi di violenza giovanile. Sicuramente è necessario prevenire, attraverso un profondo lavoro culturale, ma di certo non basta: è fondamentale ripristinare un clima di rispetto delle regole e di certezza della pena. Non possiamo più accettare l'idea che per una bravata muoia un bambino e il responsabile non faccia un giorno in galera. La mia al TG Plus di Cusano Italia TV #TheBorderline#matteodipietro#manuel#casalpalocco https://www.youtube.com/watch?v=RkkqT-JdO2E&ab_channel=SavinoBalzano

Savino Balzano

@savinobalzano · Post #418 · 23.06.2023 г., 08:57

Quanto accaduto a #casalpalocco è semplicemente il frutto della società miserabile che abbiamo creato. Questo però non solleva certi criminali dalle proprie responsabilità: che paghino, tutto. La mia al TG Plus di Cusano Italia TV #TheBorderline#borderline#italia#incidentestradale#youtubers#influencer#informazione#televisione#giornalismo#TheBorderline