Регулярно приходится писать и ревьюить код, где используется 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
Today start a new method of flashing. To give people more independence, we have created a flasher that you simply move most of (except modem) to a folder and run the new script.
Changelog:
-Entirely new method of flashing
-Rooted users are now finally fully stock!!!!
-Added my_preload flash for users coming from COS to get rid of COS bloat
Happy flashing!!! 😎😍✌🏻
Instructions:
https://docs.google.com/document/d/1sTI4krDEa_bLY2GP96cg4FE0rrZEyvHtMX1GjwuWi1Q/edit?usp=sharing
Extract keeping the folder intact:
To test your new independence, here's the new Global 405 build compiled yesterday, Grab it quickly with our new #aria2 note
Link to ROM:
https://gauss-componentotacostmanual-eu.allawnofs.com/remove-7685be6113556521ef7e508873b11b22/component-ota/25/01/16/1fa3f19d21bd49559ebe634a8c068258.zip
by @docnok63 & Jonas
Join @OnePlus13Series
Discussion @OnePlus13SeriesChatRoom
#javascript#123pan#139_cloud#189_cloud#ali_netdisk#aliyun_drive#aria2#baidu#baidu_netdisk#baidunetdisk#baiduyun#motrix#quark_netdisk#tampermonkey#tampermonkey_script#tampermonkey_userscript#tianyi_netdisk#uc_netdisk#userscript#xunlei_netdisk#yidong_netdisk
LinkSwift is a browser script that helps you quickly get direct download links for files stored on popular Chinese cloud services like Baidu, Alibaba, 123, and others—saving you time and making downloads easier without needing to visit each service’s website separately. It also improves the look of these cloud storage pages and adds extra features, such as support for different download tools and customizable themes. The main benefit is convenience: you can manage and download your cloud files faster, with a nicer interface, all from your browser. Just install the script using a tool like Tampermonkey, and it works on Chrome, Edge, and other major browsers.
https://github.com/hmjz100/LinkSwift