Регулярно приходится писать и ревьюить код, где используется PySide2-6.
Заметил, что в подавляющем большинстве случаев настройка создаваемых базовых виджетов происходит через методы. Думаю, всем знаком такой способ.
Простой пример с кнопкой:
button = QPushButton("Click Me")
button.setMinimumWidth(300)
button.setFlat(True)
button.setStyleSheet("font-size: 20pt")
button.setToolTip("Super Button")
button.clicked.connect(lambda: print("Button clicked"))
Но есть и альтернативный способ - настройка через свойства. Это просто ключевые аргументы конструктора класса. Хоть они и не указаны в документации как аргументы, но они есть)
Этот код делает тоже самое но с помощью Property
button = QPushButton(
"Click Me",
minimumWidth=300,
flat=True,
styleSheet="font-size: 20pt",
toolTip="Super Button",
clicked=lambda: print("Button clicked"),
)
Где это может быть полезно
▫️ Это выглядит более аккуратно и коротко, уже повод использовать
▫️ Может использоваться в заполнении лейаута, когда нам не нужно никакое другое взаимодействие с виджетом и поэтому сохранять его в переменную не требуется. Например, лейбл или кнопка.
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
layout.addWidget(QLabel("Button >", alignment=Qt.AlignRight))
layout.addWidget(QPushButton("Click Me", clicked=lambda: print("Button clicked")))
widget.show()
Либо так
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
for wd in (
QLabel("Button >", alignment=Qt.AlignRight),
QPushButton("Click Me", clicked=lambda: ...)
):
layout.addWidget(wd)
widget.show()
▫️ Можно хранить настройки в каком-то конфиге или генерировать на лету, после чего передавать как kwargs.
kwargs = {"text": "Hello " * 30, "wordWrap": True}
my_label = QLabel(**kwargs)
Как получить полный список доступных свойств?
Эта функция распечатает в терминал все свойства виджета и их текущие значения
def print_widget_properties(widget):
meta_object = widget.metaObject()
for i in range(meta_object.propertyCount()):
property_ = meta_object.property(i)
property_name = property_.name()
property_value = property_.read(widget)
print(f"{property_name}: {property_value}")
#tricks#qt
📩#ENAUSDT 1h | Mid-Term
📉Long Entry Zone: 0.3388-0.3188
🎯 - Strategy Accuracy: 93.16%
Last 5 signals: 100.0%
Last 10 signals: 91.67%
Last 20 signals: 95.45%
⏳ - Signal details:
Target 1: 0.3439
Target 2: 0.3490
Target 3: 0.3540
Target 4: 0.3693
_____
🧲Trend-Line: 0.3188
❌Stop-Loss: 0.3140
💡After reaching the first target you can put the rest of the position to breakeven
📩#ENAUSDT 1h | Mid-Term
📉Long Entry Zone: 0.3974-0.3801
🎯 - Strategy Accuracy: 93%
Last 5 signals: 100%
Last 10 signals: 90%
Last 20 signals: 95%
⏳ - Signal details:
Target 1: 0.4034
Target 2: 0.4093
Target 3: 0.4153
Target 4: 0.4332
_____
🧲Trend-Line: 0.3801
❌Stop-Loss: 0.3744
💡After reaching the first target you can put the rest of the position to breakeven
📩#ENAUSDT 1h | Mid-Term
📉Short Entry Zone: 0.1189-0.1242
🎯 - Strategy Accuracy: 94.26%
Last 5 signals: 100.0%
Last 10 signals: 100.0%
Last 20 signals: 100.0%
⏳ - Signal details:
Target 1: 0.1175
Target 2: 0.1160
Target 3: 0.1146
Target 4: 0.1103
_____
🧲Trend-Line: 0.1242
❌Stop-Loss: 0.1257
💡After reaching the first target you can put the rest of the position to breakeven
#ID20000036639
📩#ENAUSDT 1h | Mid-Term
📈Long Entry Zone: 0.1737-0.1678
🎯 - Strategy Accuracy: 94.11%
Last 5 signals: 100.0%
Last 10 signals: 100.0%
Last 20 signals: 100.0%
⏳ - Signal details:
Target 1: 0.1758
Target 2: 0.1779
Target 3: 0.1800
Target 4: 0.1862
_____
🧲Trend-Line: 0.1678
❌Stop-Loss: 0.1658
💡After reaching the first target you can put the rest of the position to breakeven
#ID20000036408
📩#ENAUSDT 1h | Mid-Term
📈Long Entry Zone: 0.2118-0.2024
🎯 - Strategy Accuracy: 83.44%
Last 5 signals: 90.0%
Last 10 signals: 85.0%
Last 20 signals: 77.5%
⏳ - Signal details:
Target 1: 0.2150
Target 2: 0.2182
Target 3: 0.2213
Target 4: 0.2309
_____
🧲Trend-Line: 0.2024
❌Stop-Loss: 0.1994
💡After reaching the first target you can put the rest of the position to breakeven
#ID20000035694
👀 Well, would you look at that! 👆
#ENAUSDT has just reached 9th TP in the VIP CLUB channel!!!👍
With a 5% entry and a $1000 deposit, you could've earned $461!
Every day we're on fire! 🔥🔥🔥ACCESS TO MANUAL TRADING for 70usdt/month
👉 Not sure? Considering? Contemplating? Come have a look at our performance reports, spend about5 minutes and see for yourself that everything is 100% legit! @propheta_reports
Register and get bonuses up to $6,000
Binance | OKX | ByBit👈🏻click!
#AItrader#cryptobot#cryptochannel