@Lieqiguai · Post #491227 · 15.04.2026 г., 12:36
小小的也很可爱 #二次元#cos
Hashtags
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
Пребарај: #cos
@Lieqiguai · Post #491227 · 15.04.2026 г., 12:36
小小的也很可爱 #二次元#cos
Hashtags
@Lieqiguai · Post #490979 · 12.04.2026 г., 12:24
感觉来了么? #黑丝#cos
Hashtags
@Lieqiguai · Post #490965 · 11.04.2026 г., 04:45
是认真的么 #猎奇#cos
Hashtags
@Lieqiguai · Post #490691 · 08.04.2026 г., 09:38
我也想认识一些二次元圈子的妹妹 #二次元#cos
Hashtags
@Lieqiguai · Post #490666 · 07.04.2026 г., 09:12
我想摸你的福啊 #二次元#cos
Hashtags
@CoinSonar · Post #244196 · 18.04.2026 г., 13:10
#COS | Volume spike (USDT PAIR) 9 times the average volume 631.13K USDT traded in 15 min └Buying vol: 403.21K USDT 🟢 Boost score: 4/10 24h Vol: 6.26M USDT (Binance) Price: 0.001374 (+13.7% in 24h)
Hashtags
@weibo987 · Post #60683 · 09.04.2026 г., 10:36
我也想认识一些二次元圈子的妹妹 #二次元#cos
Hashtags
@weibo987 · Post #60661 · 09.04.2026 г., 10:16
我想摸你的福啊 #二次元#cos
Hashtags
@weibo987 · Post #60520 · 06.04.2026 г., 19:18
小伙子 长大了 你是要后悔的 #内涵#cos
Hashtags
@proanalysistrader · Post #28340 · 14.12.2024 г., 13:55
#COS/USDT analysis : #COS has successfully regained the 200 EMA support and is exhibiting an impulsive move. The price is currently retracing towards the 200 EMA support zone, where it is expected to test and potentially bounce back to challenge previous highs. It is advisable to wait for a retest of this zone before considering a long entry. TF : 1H Entry : $0.014140 Target : $0.016900 SL : $0.012620
Hashtags
@proanalysistrader · Post #28139 · 08.11.2024 г., 13:10
#COS/USDT analysis : #COS is currently in a downtrend, trading below the 200EMA. The price has broken down and retested the support zone, which has now become a resistance level. After this retest, the price is expected to decline further and continue its bearish momentum, potentially testing lower levels. Look for a pullback for short entry. TF : 4h Entry : $0.006840 Target : $0.005888 SL : $0.007470
Hashtags
@proanalysistrader · Post #27702 · 25.06.2024 г., 02:45
#COS/USDT analysis - #COS is currently in a downtrend, trading below the 200 EMA. The price has broken out of the previous support, displaying a strong bearish movement. At this moment, the price is retesting the breached zone. It is anticipated to reverse from this point and sustain the bearish momentum. Look for a breakout below the $0.00830 level to consider a short position. TF : 1h Entry : $0.00830 Target : $0.00785 SL : $0.00858
Hashtags