Регулярно приходится писать и ревьюить код, где используется 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
#Apple
Apple Store 上线国家补贴,仅限北京上海
🔗Apple Store (中国大陆)
Apple Store 官方在中国大陆上线了国家补贴,购买 iPhone、iPad 或指定配置 Apple Watch 最高优惠 RMB 500。商品总价须低于 RMB 6000。购买符合条件的 Mac 机型最高优惠 RMB 2000。升级配置不可享受补贴优惠。仅限 Apple Store 在线商店 (北京收货地址) 和 Apple Store 零售店 (上海地区)。
常见问题
符合资格的消费者购买参与活动的 iPhone、iPad、Apple Watch 时,可享商品到手价基础上再立减 15% 的国家补贴,每件补贴不超过 500 元,仅限到手价不超过 6000 元的单件商品;购买参与活动的 Mac 时,可享商品到手价基础上再立减 20% 的国家补贴,每件补贴不超过 2000 元。如该产品同时参与 Apple 或其合作伙伴提供的其他优惠活动,优惠额度部分不计算国家补贴。实际补贴金额以商品购买页面展示为准。
符合资格的消费者每类产品仅可享补贴 1 件。
参与国家补贴的订单仅可包含 1 件参与活动的商品。若订单包含多个商品,则该订单中的所有商品均无法享受国家补贴。
参与国家补贴的订单不支持与 iPhone 年年焕新计划、Apple Trade In 换购计划或 AppleCare+ 服务计划同时下单购买。
参与国家补贴的订单不支持保价退差。
Apple Store 在线商店:参与国家补贴的 Apple Store 在线商店订单不支持 Apple Store 零售店取货服务、快送服务,不支持定制化服务、镌刻服务。按照政府的相关规定,参与国家补贴的 Apple Store 在线商店订单对签收时间有特殊要求。消费者须在下单之日起 6 天内完成签收,否则订单将被取消,商品由承运商取回。在承运商经尝试送货,消费者无法签收的情况下,订单可能会被取消。商品发货日期超过一定期限的非现货商品可能无法享受国家补贴。请在商品购买页面确认是否具备补贴活动参与资格。参与国家补贴的 Apple Store 在线商店订单不支持部分退款,不支持收货地址更改,不支持换货。参与国家补贴的 Apple Store 在线商店订单需在签收快递时配合承运商完成现场拆封、激活及拍照存档等国家补贴政策所要求的操作。如无法在签收当场完成激活或配合拍照存档等操作,订单将被取消,商品由承运商取回。
Apple Store 零售店:于上海地区 Apple Store 零售店参与活动的消费者,在享受国家补贴时,必须出示身份证件,提供姓名,用以按要求开具个人实名信息的发票。参与国家补贴的 Apple Store 零售店订单不支持部分退款,不支持换货,不支持部分付款方式,不支持定制化服务。参与国家补贴的 Apple Store 零售店订单,购买后需在门店配合工作人员完成现场拆封、激活及拍照存档等国家补贴政策所要求的操作。如不能在购买当场完成激活或配合拍照存档等操作,则无法享受国家补贴。
本次活动仅针对个人消费者。参与国家补贴的订单仅支持开具个人的增值税普通发票 (如需发票抬头,仅可开具消费者本人实名信息),不支持变更抬头,不支持企业抬头。
#Promotions#AppleStore
📮 频道 @AppPie