Установить свойства виджета в 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
⌨️ Microsoft Word'da matnni tahrirlash uchun mo‘ljallangan klavishlar birikmalari (2-qism)
👉🏻 Ushbu ro‘yxatning 1-qismi.
• CTRL + B — belgilangan matn shriftini qalin qilish / oddiy holatiga qaytarish;
• CTRL + I — belgilangan matn shriftini kursiv qilish / oddiy holatiga qaytarish;
• CTRL + U — belgilangan matn ostiga chizish / oddiy holatiga qaytarish;
• CTRL + D — Шрифт muloqot oynasini ekranga chaqirish;
• CTRL + Q — abzatsga nisbatan qo‘llanilgan formatni o‘chirish;
• CTRL + M — chap tomondan otstup qo‘shish;
• CTRL + SHIFT + M — chap tomondan otstupni olib tashlash;
• CTRL + PROBEL — belgilangan matn fragmentidan, unga nisbatan qo‘llanilgan formatni o‘chirish (matn dastur sozlamasida qoida bo‘yicha o‘rnatilgan shrift turi va o‘lchamiga qaytadi).
• CTRL + SHIFT + A — barcha harflarni katta (agar allaqachon katta bo‘lsa, u holda kichik) ko‘rinishga keltirish;
• CTRL + SHIFT + C (CTRL + SHIFT + V) — formatlarni nusxalash / boshqa matnga nisbatan qo‘llash;
• CTRL + SHIFT + D — matn ostiga ikkitalik chiziq chizish / bekor qilish;
• CTRL + SHIFT + H — belgilangan matnni berkitish / ko‘rsatish (bunda berkitilgan matn chop etish vaqtida ko‘rinmaydi, Главная menyu satrida chop etilmaydigan belgilarni ko‘rsatish uchun xizmat qiluvchi ¶ tugmasi ustiga bosilgan taqdirda ko‘rinadi);
• CTRL + SHIFT + K — barcha harflarni kichik harf o‘lchamidagi katta harflar ko‘rinishiga keltirish / bekor qilish;
• CTRL + SHIFT + W — so‘zlar ostiga probellarni hisobga olmagan holda chizish;
• CTRL + T (CTRL + SHIFT + T) — Выступ qo‘shish / olib tashlash (abzatslarga nisbatan qo‘llaniladi);
• SHIFT + F1 — dastur oynasining o‘ng tomonida ochiluvchi matnni formatlash panelini faollashtirish / berkitish.
🤔Kanalimiz sizga kerakli bilimlarni ulashyabdi deb hisoblaysizmi?
👉🏼Birinchi raqamli windows blog | @itspecuz | #hotkeys
⚡️Excel dasturida tezkor tugmalar
Ctrl + Delete Tanlangan matn o'chiriladi.
Ctrl + Alt + V Maxsus qo'shimchalar paydo bo'ladi
Ctrl + belgisi + Belgilangan ustunlar va satrlar qo'shiladi.
Ctrl + belgisi - Tanlangan ustunlar yoki satrlar o'chiriladi.
Ctrl + D Pastki qator tanlangan katakchadagi ma'lumotlar bilan to'ldiriladi
Ctrl + R O'ng tarafdagi diapazon tanlangan uyaning ma'lumotlari bilan to'ldiriladi.
Ctrl + H Search-Replace oynasi paydo bo'ladi.
Ctrl + Z So'nggi harakatlar bekor qilinadi.
Ctrl + Y So'nggi harakat takrorlandi
Ctrl + 1 Hujayra formatini tahrirlash oynasi ochiladi.
Ctrl + B tugmalari Matn qalin qilib ko'rsatilgan
Ctrl + I Kursiv o'rnatish
Ctrl + U Matn tagiga chizilgan.
Ctrl + 5 Belgilangan matn ajratib ko'rsatilgan.
Ctrl + Enter Barcha kataklar tanlangan.
Ctrl +; Sana ko'rsatilgan
Ctrl + Shift +; Vaqt muhrlandi
Ctrl + Backspace Kursor oldingi katakka qaytadi.
Ctrl + Bo'sh joy Ustun ajralib turadi
Ctrl + A Ko'rinadigan narsalar ta'kidlangan.
Ctrl + End Kursor oxirgi katakka joylashtirilgan.
Ctrl + Shift + End Oxirgi katak ajratilgan
Ctrl + strelkalar Kursor ustunning chekkalari bo'ylab o'qlar yo'nalishi bo'yicha harakatlanadi.
Ctrl + N Yangi bo'sh kitob paydo bo'ladi
Ctrl + S Hujjat saqlandi
Ctrl + O Kerakli faylni qidirish oynasi ochiladi.
Ctrl + L tugmalarini bosing Smart stol rejimi boshlanadi
Ctrl + F2 Ko'rib chiqish kiritilgan
Ctrl + K Giperhavola kiritilgan
Ctrl + F3 Ismlar menejeri ishga tushirilad
K.B: Hammasini yod olish qiyin lekin doimiy foydalanish ancha ishni tezlashtiradi!
👉🏼Birinchi raqamli windows blog | #hotkeys
⚡️Excel dasturida tezkor tugmalar
Ctrl + Delete Tanlangan matn o'chiriladi.
Ctrl + Alt + V Maxsus qo'shimchalar paydo bo'ladi
Ctrl + belgisi + Belgilangan ustunlar va satrlar qo'shiladi.
Ctrl + belgisi - Tanlangan ustunlar yoki satrlar o'chiriladi.
Ctrl + D Pastki qator tanlangan katakchadagi ma'lumotlar bilan to'ldiriladi
Ctrl + R O'ng tarafdagi diapazon tanlangan uyaning ma'lumotlari bilan to'ldiriladi.
Ctrl + H Search-Replace oynasi paydo bo'ladi.
Ctrl + Z So'nggi harakatlar bekor qilinadi.
Ctrl + Y So'nggi harakat takrorlandi
Ctrl + 1 Hujayra formatini tahrirlash oynasi ochiladi.
Ctrl + B tugmalari Matn qalin qilib ko'rsatilgan
Ctrl + I Kursiv o'rnatish
Ctrl + U Matn tagiga chizilgan.
Ctrl + 5 Belgilangan matn ajratib ko'rsatilgan.
Ctrl + Enter Barcha kataklar tanlangan.
Ctrl +; Sana ko'rsatilgan
Ctrl + Shift +; Vaqt muhrlandi
Ctrl + Backspace Kursor oldingi katakka qaytadi.
Ctrl + Bo'sh joy Ustun ajralib turadi
Ctrl + A Ko'rinadigan narsalar ta'kidlangan.
Ctrl + End Kursor oxirgi katakka joylashtirilgan.
Ctrl + Shift + End Oxirgi katak ajratilgan
Ctrl + strelkalar Kursor ustunning chekkalari bo'ylab o'qlar yo'nalishi bo'yicha harakatlanadi.
Ctrl + N Yangi bo'sh kitob paydo bo'ladi
Ctrl + S Hujjat saqlandi
Ctrl + O Kerakli faylni qidirish oynasi ochiladi.
Ctrl + L tugmalarini bosing Smart stol rejimi boshlanadi
Ctrl + F2 Ko'rib chiqish kiritilgan
Ctrl + K Giperhavola kiritilgan
Ctrl + F3 Ismlar menejeri ishga tushirilad
K.B: Hammasini yod olish qiyin lekin doimiy foydalanish ancha ishni tezlashtiradi!
👉🏼Birinchi raqamli windows blog | #hotkeys
⌨️ Microsoft Word'da matnni tahrirlash uchun mo‘ljallangan klavishlar birikmalari (2-qism)
👉🏻 Ushbu ro‘yxatning 1-qismi.
• CTRL + B — belgilangan matn shriftini qalin qilish / oddiy holatiga qaytarish;
• CTRL + I — belgilangan matn shriftini kursiv qilish / oddiy holatiga qaytarish;
• CTRL + U — belgilangan matn ostiga chizish / oddiy holatiga qaytarish;
• CTRL + D — Шрифт muloqot oynasini ekranga chaqirish;
• CTRL + Q — abzatsga nisbatan qo‘llanilgan formatni o‘chirish;
• CTRL + M — chap tomondan otstup qo‘shish;
• CTRL + SHIFT + M — chap tomondan otstupni olib tashlash;
• CTRL + PROBEL — belgilangan matn fragmentidan, unga nisbatan qo‘llanilgan formatni o‘chirish (matn dastur sozlamasida qoida bo‘yicha o‘rnatilgan shrift turi va o‘lchamiga qaytadi).
• CTRL + SHIFT + A — barcha harflarni katta (agar allaqachon katta bo‘lsa, u holda kichik) ko‘rinishga keltirish;
• CTRL + SHIFT + C (CTRL + SHIFT + V) — formatlarni nusxalash / boshqa matnga nisbatan qo‘llash;
• CTRL + SHIFT + D — matn ostiga ikkitalik chiziq chizish / bekor qilish;
• CTRL + SHIFT + H — belgilangan matnni berkitish / ko‘rsatish (bunda berkitilgan matn chop etish vaqtida ko‘rinmaydi, Главная menyu satrida chop etilmaydigan belgilarni ko‘rsatish uchun xizmat qiluvchi ¶ tugmasi ustiga bosilgan taqdirda ko‘rinadi);
• CTRL + SHIFT + K — barcha harflarni kichik harf o‘lchamidagi katta harflar ko‘rinishiga keltirish / bekor qilish;
• CTRL + SHIFT + W — so‘zlar ostiga probellarni hisobga olmagan holda chizish;
• CTRL + T (CTRL + SHIFT + T) — Выступ qo‘shish / olib tashlash (abzatslarga nisbatan qo‘llaniladi);
• SHIFT + F1 — dastur oynasining o‘ng tomonida ochiluvchi matnni formatlash panelini faollashtirish / berkitish.
🤔Kanalimiz sizga kerakli bilimlarni ulashyabdi deb hisoblaysizmi?
👉🏼Birinchi raqamli windows blog | @itspecuz | #hotkeys
Har kuni kerak bo'ladigan kombinatsiyalar
#hotkeys
🔸F2 - belgilangan fayl yoki papkani nomini tahrirlash (переименовать) imkonini beradi.
🔸Alt + Enter - belgilangan fayl yoki papkani xususiyatlari (свойства) ni ochadi.
🔸Ctrl + Shift + Esc - "Диспетчер задач" ni ochishga imkon beradi. U yerdan "injiq" dasturlarga "zarba" berish mumkin.
🤔Siz qaysi kombinatsiyalardan juda ko'p foydalanasiz?
💻 Kompyuterni birga o'rganamiz ⤵️
Telegram I YouTube I Insta I TikTok