Регулярно приходится писать и ревьюить код, где используется 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
#ComingSoon: An integrated development at Yew Tee which will house 2-room Flexi flats for seniors, a community club, a polyclinic, retail shops, and Choa Chu Kang’s first hawker centre all under one roof!
P.S. The 2-room Flexi flats will be launched in the upcoming November sales exercise, along with over 4,000 flats in Hougang, Jurong West, Kallang/Whampoa and Tengah 😊
(Photo credit: MKPL Architects)
🚨The SingSing Tycoon NFT Marketplace is on its way🚨
💥 Trade exclusive NFTs for profits.
💎 Flex your collection.
🎮 Unlock game-changing assets.
Get ready to take your SingSing Tycoon experience to the next level! 🚀
🔜 Your favorite NFTs, all in one place—stay tuned for more details 👀
#NFT#SingSingMarketplace#ComingSoon
🎤Announcement | Chat | X (Twitter) | Website | Game
🚀 Big News Alert 🚀
$SING is gearing up for an exciting CEX listing next week! 📈 But we’re keeping the exchange a secret…for now! 🤫
Guess the CEX & get ready for the reveal! 🔥
#SingSing#CEXListing#ComingSoon
🎤Announcement | Chat | X (Twitter) | Website | Game
Kaptaan | Official Teaser | Amazon MX Player
Language: Hindi
Genre: Drama, Crime, Thriller
jahan insaaf ki zarurat ho, wahan Kaptaan ki entry pakki hai ⚖️🔥
Kaptaan, coming soon, only on Amazon MX Player for FREE!
watch now🔗- https://youtu.be/X4Kb6K7B61o
#Kaptaan#AmazonMXPlayer#ComingSoon
Famously Fit with Sophie | Official Trailer | Amazon MX Player
Language: Hindi
Genre : Fitness based Chat Show
Bollywood fitness secrets, finally out 👀
Famously Fit with Sophie, coming soon only on Amazon MX Player for FREE!
watch now - https://youtu.be/Cs6lCuRgBC8
#AmazonMXPlayer#ComingSoon#FamouslyFitwithSophie
🔜 Exciting partnership announcement coming soon! 🎉
Can you guess who will be integrating SingSing's SocialFi SDK next? 🤔
Stay tuned for the big reveal! 🚀✨
#Partnership#SocialFi#SingSing#ComingSoon
📢CLOSED BETA WHITELIST CLOSED
Attention, QuasarK Community: the application period for our closed beta is now officially closed. We want to express our heartfelt thanks ❤️ to everyone who applied and showed their interest in being a part of this exclusive testing phase. Your support and enthusiasm mean the world to us! 👏
🚀 But hold on tight, because the journey is just getting started! In a matter of days we’ll be reaching out to our whitelisted beta testers🏆. If you made it to the whitelist, keep an eye on your notifications and direct messages 📩 as we will be sharing important updates and instructions with you. BEWARE OF SCAM!
Stay tuned for more updates and announcements 👀 as we continue to make progress towards the launch of QuasarK. We appreciate your ongoing support and look forward to embarking on this exciting journey together!
#QuasarK#ClosedBeta#BetaTesters#ComingSoon