Установить свойства виджета в PySide можно не только через соответствующие методы и конструктор класса. Можно их изменять с помощью метода setProperty по имени.
btn = QPushButton("Click Me")
btn.setProperty("flat", True)
Это аналогично вызову
btn.setFlat(True)
Если указать несуществующее свойство, то оно просто создается
btn.setProperty("btnType", "super")
Получить его значение можно методом .property(name)
btn_type = btn.property("btnType")
Когда это может быть полезно?
▫️Можно просто хранить какие то данные в виджете и потом их доставать обратно
widget = QWidget()
widget.setProperty('my_data', 123)
print(widget.property('my_data'))
▫️ Назначая эти свойства разным виджетам можно потом отличить виджеты во время итераци по ним. Например, найти все кнопки со свойством my_data="superbtn".
Но ведь вместо кастомного свойства можно использовать objectName, будет тот же результат.
Да, но y ObjectName есть ограничение - только строки.
▫️ Если нам потребуется не просто поиск а, например, сортировка по числу, то свойства позволяют нам это сделать. Поддерживается любой тип данных
widget.setProperty('my_data', {'Key': 'value'})
widget.setProperty('order', 1)
all_widgets.sort(key=w: w.property('order'))
Но ведь Python позволяет всё вышеперечисленное сделать простым созданием атрибута у объекта
widget.order = 1
widget.my_data = 123
Да, но я думаю что не надо объяснять почему не стоит так делать. К тому же, если у виджета нет свойства то метод .property(name) вернет None, а отсутствующий атрибут выбросит исключение.
▫️ Действительно полезное применение кастомным свойствам - контроль стилей. Здесь атрибутами не обойтись, нужны именно свойства.
Дело в том, что в селекторах стилей можно указывать конкретные свойства виджетов на которые следует назначать стиль.
Просто запустите этот код
from PySide2.QtWidgets import *
if __name__ == "__main__":
app = QApplication([])
widget = QWidget(minimumWidth=300)
layout = QVBoxLayout(widget)
btn1 = QPushButton("Action 1")
btn2 = QPushButton("Action 2")
btn3 = QPushButton("Action 3", flat=True)
layout.addWidget(btn1)
layout.addWidget(btn2)
layout.addWidget(btn3)
# добавим кастомное свойство одной кнопке
btn1.setProperty("btnType", "super")
# добавляем стили
widget.setStyleSheet(
"""
QPushButton[btnType="super"] {
background-color: yellow;
color: red;
}
QPushButton[flat="true"] {
color: yellow;
}
"""
)
widget.show()
app.exec_()
С помощью селектора мы избирательно назначили стили на конкретные кнопки.
Как получить список всех кастомный свойств?
Функция получения списка кастомных свойств отличается от получения дефолтных.
def print_widget_dyn_properties(widget):
for prop_name in widget.dynamicPropertyNames():
property_name = prop_name.data().decode()
property_value = widget.property(property_name)
print(f"{property_name}: {property_value}")
#tricks#qt
🛜Bepul Wi-Fi nuqtalarini topish
📌WiFi Map – sizning shahringizda mavjud bo‘lgan bepul Wi-Fi nuqtalarini topib, xaritada ko‘rsatib beradi.
🔐 Parollarni ko‘rish uchun premium obuna kerak bo‘ladi, ammo ko‘plab nuqtalar ochiq va foydalanish mumkin.
🌍 Shahar nomlarini ingliz tilida kiriting, shunda topib beradi. Xohlasangiz Android ilovasi ham mavjud.
👍Bizning barcha loyihalar | #wifi
Qanday qilib siz ulanib turgan WiFi parolini bilish mumkin?
📶 Agar do'stingiz o'z WiFi'yi parolini siz bilishingizni istamasa, lekin sizning kompyuteringizni ulab bergan bo'lsa uning WiFi'yi parolini quyidagi usul bilan bilib olishingiz mumkin, ya'ni siz bilan kompyuter ulanib turgan WiFi parolini ko'rishni o'rganamiz:
🧑💻Win + R bosib Run oynasini oching va ncpa.cpl so'zini kiriting. Sizga Network Connections oynasi ochiladi, siz u yerdan o'zingiz ulanib turgan WiFi ustiga sichqoncha bilan ikki marta bosing. Keyingi ochilgan oynadan Wireless Properties'ga bosing va u yerdan Security'ga o'ting. Network security key ostidagi Show characters'ni belgilang va siz WiFi parolini ko'rasiz.
Bosingizlar...😉
👉🏼Birinchi raqamli windows blog | #wifi
Qanday qilib siz ulanib turgan WiFi parolini bilish mumkin?
📶 Agar do'stingiz o'z WiFi'yi parolini siz bilishingizni istamasa, lekin sizning kompyuteringizni ulab bergan bo'lsa uning WiFi'yi parolini quyidagi usul bilan bilib olishingiz mumkin, ya'ni siz bilan kompyuter ulanib turgan WiFi parolini ko'rishni o'rganamiz:
🧑💻Win + R bosib Run oynasini oching va ncpa.cpl so'zini kiriting. Sizga Network Connections oynasi ochiladi, siz u yerdan o'zingiz ulanib turgan WiFi ustiga sichqoncha bilan ikki marta bosing. Keyingi ochilgan oynadan Wireless Properties'ga bosing va u yerdan Security'ga o'ting. Network security key ostidagi Show characters'ni belgilang va siz WiFi parolini ko'rasiz.
Bosingizlar...😉
👉🏼Birinchi raqamli windows blog | #wifi
🌐 Уязвимы ли Wi-Fi 6 (802.11ax) и Wi-Fi 7 (802.11be) к беспроводным атакам в 2025?
• Данный материал содержит практические примеры и актуальные методы для анализа безопасности Wi-Fi:
➡Защищён ли Wi-Fi последних стандартов от взлома. Пример взлома новых протоколов Wi-Fi в 2025;
➡Можно ли взломать современный Wi-Fi последних поколений?
➡Перевод беспроводного адаптера с поддержкой Wi-Fi 7 (802.11be) в режим монитора;
➡Захват рукопожатий и взлом паролей;
➡Использование Hashcat и John the Ripper;
➡Как выделить хеши для определённых точек доступа;
➡Возврат беспроводного сетевого интерфейса в управляемый режим;
➡Как противостоять атакам направленных на взлом пароля Wi-Fi.
➡️Читать статью [10 min].
#WiFi
#WIFI broken up the Bearish channel on 8H Time frame,we expect a good pump after pullback to the Green zone..👀
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
#WIFI touched the Supply zone on 2D Time frame again,in the case of rejection it will reach the trendline soon
📉
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
Wi‐Fi kuchini qanday aniqlash mumkin?
📶 Aytaylik, Wi-Fi'ingiz signali kuchini bilmoqchisiz. Buning siz Taskbar'dagi Wi-Fi ikonkasi ustiga bosasiz va ulanib turgan vayfayingiz qatorlari "nechta chiqayotganiga" qaraysiz. Bitta chiqayotgan bo'lsa, past. Ikki yoki uchta chiqayotgan bo'lsa o'rtacha, to'liq chiqayotgan bo'lsa signal kuchli chiqayotgan bo'ladi va demak, vayfay sizga juda yaqin joyda turgan bo'ladi.
📃 Lekin sizga yanada aniq javob kerak bo'lsa, unda quyidagi amalni bajaring:
🧑💻 Command Prompt (cmd yoki terminal) dasturini ishga tushiring. Unga quyidagini kiritib, Enter'ni bosing:
netsh wlan show interfaces
🌐 Buyruq ishga tushadi va sizga rasmdagidek, vayfayingiz signali qanchalik kuchli ekanligini foizda ko'rsatib beradi.
Xo'sh, sizda necha foiz ekan?
👉🏼Birinchi raqamli Windows Blog | #wifi / #lifehack