Регулярно приходится писать и ревьюить код, где используется 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
Минус пара-тройка выходных — и вуаля! Мы наконец-то прошли проверку, и теперь у нас, как у взрослых разработчиков, есть своя страничка в Steam!
Можно вишлистить и делиться ссылочкой с друзьями
😊
Каждый ваш вишлист — на вес золота для нас! Он помогает в продвижении проекта и делает нас заметнее в этом жестоком мире геймдева. Ценим. Любим
❤️
https://store.steampowered.com/app/3487760/Froggy_Jelly_Punch/
__
A couple of weekends down the drain — and voilà! We finally passed the review, and now we have our very own Steam page, just like the grown-up devs do!
You can wishlist it and share the link with your friends
😊
Every single wishlist is pure gold for us! It helps boost the project’s visibility and makes us stand out in this tough world of gamedev. We appreciate it. We love you
❤️
__
#indiegame#indiedev#gamedev
🎮Steam Featured Right Now
🎯NBA 2K26 Hall of Fame Pass: Season 7 — $19.99
View on Steam
🔥The Adventures of Sir Kicksalot — $8.99 (-10%)
View on Steam
🔥Adventurer Liena: The Targeted Girl and Her Boyfriend — $8.09 (-10%)
View on Steam
🎯Forza Horizon 6 Treasure Map — $2.99
View on Steam
🔥Psychic Kung Fu Master — $16.99 (-15%)
View on Steam
Anything catching your eye? 👇
#gamedev#steam#gaming#indiedev
🎮Steam Featured Right Now
🎯Forza Horizon 6 Treasure Map — $2.99
View on Steam
🔥Psychic Kung Fu Master — $16.99 (-15%)
View on Steam
🔥Cat Island Petrichor — $13.49 (-10%)
View on Steam
🔥Dark Light: Survivor — $13.59 (-20%)
View on Steam
🔥Mad King Redemption — $13.49 (-10%)
View on Steam
Anything catching your eye? 👇
#gamedev#steam#gaming#indiedev
🎮Steam Featured Right Now
🎯Company of Heroes 3: Dare & Destroy — $24.99
View on Steam
🎯American Truck Simulator - Illinois — $11.99
View on Steam
🔥Blades of Fire — $29.99 (-25%)
View on Steam
🔥Wall Street Raider — $25.49 (-15%)
View on Steam
🔥Hotel Architect — $23.39 (-22%)
View on Steam
Anything catching your eye? 👇
#gamedev#steam#gaming#indiedev
🎮Steam Featured Right Now
🔥Space Haven — $14.99 (-40%)
View on Steam
🔥Vultures - Scavengers of Death — $14.39 (-20%)
View on Steam
🔥Clockwork Ambrosia — $17.99 (-10%)
View on Steam
🔥Call of the Elder Gods — $19.99 (-20%)
View on Steam
🔥Black Jacket — $12.74 (-15%)
View on Steam
Anything catching your eye? 👇
#gamedev#steam#gaming#indiedev
🎮Steam Featured Right Now
🔥Space Haven — $14.99 (-40%)
View on Steam
🔥Clockwork Ambrosia — $17.99 (-10%)
View on Steam
🔥Call of the Elder Gods — $19.99 (-20%)
View on Steam
🔥Black Jacket — $12.74 (-15%)
View on Steam
🎯Directive 8020 — $49.99
View on Steam
Anything catching your eye? 👇
#gamedev#steam#gaming#indiedev
🎮Steam Featured Right Now
🔥Clockwork Ambrosia — $17.99 (-10%)
View on Steam
🔥Call of the Elder Gods — $19.99 (-20%)
View on Steam
🔥Black Jacket — $12.74 (-15%)
View on Steam
🎯Directive 8020 — $49.99
View on Steam
🎯Season 3 Battlefield Pro - Battlefield™ 6 and REDSEC — $24.99
View on Steam
Anything catching your eye? 👇
#gamedev#steam#gaming#indiedev
🎮Steam Featured Right Now
🔥Call of the Elder Gods — $19.99 (-20%)
View on Steam
🔥Black Jacket — $12.74 (-15%)
View on Steam
🎯Palia – Royal Highlands Supporter Pack — $59.99
View on Steam
🎯Directive 8020 — $49.99
View on Steam
🎯Season 3 Battlefield Pro - Battlefield™ 6 and REDSEC — $24.99
View on Steam
Anything catching your eye? 👇
#gamedev#steam#gaming#indiedev