TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #381 · 23 окт.

Установить свойства виджета в 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

Hashtags

Резултати

Пронајдени 34 слични објави

Пребарај: #renaissance

当前筛选 #renaissance清除筛选

“Renaissance” jamoasi “Yangi O‘zbekiston” universiteti talabalar kengashi uchun o‘tkazilgan saylovlarda g'oliblikni qo‘lga kiritdi 🗳 “Yangi O‘zbekiston” universiteti talabalar kengashi prezidentligi uchun o‘tkazilgan saylovlarda Nurislombek Maxkamjonhojizoda hamda uning “Renaissance” jamoasi g‘oliblikni qo‘lga kiritishdi. 📊 O‘tkazilgan saylov natijalariga ko‘ra “Sentinels” jamoasi 40.7% “Renaissance” jamoasi esa 59.3% natijani qayd etishdi. 🎗“Renaissance” jamoasini g‘oliblik bilan tabriklab, kelajakdagi faoliyatida omad tilab qolamiz. 🔁English ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ #election#renaissance ⬇️Biz ijtimoiy tarmoqlarda: Veb-sayt | Telegram | Instagram | Facebook

NewUU Student Council

@newuu_sc · Post #672 · 26.06.2023 г., 14:48

“Renaissance” jamoasi “Yangi O‘zbekiston” universiteti talabalar kengashi uchun o‘tkazilgan saylovlarda g'oliblikni qo‘lga kiritdi 🗳 “Yangi O‘zbekiston” universiteti talabalar kengashi prezidentligi uchun o‘tkazilgan saylovlarda Nurislombek Maxkamjonhojizoda hamda uning “Renaissance” jamoasi g‘oliblikni qo‘lga kiritishdi. 📊 O‘tkazilgan saylov natijalariga ko‘ra “Sentinels” jamoasi 40.7% “Renaissance” jamoasi esa 59.3% natijani qayd etishdi. 🎗“Renaissance” jamoasini g‘oliblik bilan tabriklab, kelajakdagi faoliyatida omad tilab qolamiz. 🔁English ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ #election#renaissance ⬇️Biz ijtimoiy tarmoqlarda: Veb-sayt | Telegram | Instagram | Facebook

Classical Music

@exploreclassical · Post #189 · 04.02.2021 г., 12:17

今天分享一首Renaissance时期的音乐吧,Gregorio Allegri的Miserere,作于大约1638年。这首作品当年只有在特殊的日子才在西斯廷教堂演奏。据说莫扎特有一回去意大利玩,在西斯廷教堂听到了这首作品,凭借他惊人的耳朵和记忆力transcribe出了这部作品,还是很惊人的,最复杂的地方 有九声部的polyphony #renaissance#choir https://www.youtube.com/watch?v=IA88AS6Wy_4 ref: https://en.wikipedia.org/wiki/Miserere_(Allegri)

Dreams Gallery

@dreamsgallerys · Post #1717 · 18.11.2023 г., 09:02

Ещё один долгий апскейл. Большой пнг файл будет доступен для подписчиков 3 тира на бусти - https://boosty.to/voodoont Dreams Gallery By Voodoont #voodoont #арт#art#ai#girl#renaissance#hot#upscale

Libertà è ragione

@libertaeragione · Post #4093 · 09.01.2024 г., 11:38

#Francia Il Presidente Emmanuel #Macron (#Renaissance|RE) ha nominato il Ministro dell'Educazione Gabriel #Attal Renaissance) come nuovo Primo Ministro. Nella Quinta Repubblica, Attal sarà il Primo Ministro più giovane di sempre (34 anni). @OsservatorioEsteri

NewUU Student Council

@newuu_sc · Post #671 · 23.06.2023 г., 11:35

📢 Election Update: Renaissance Team Emerges Victorious!🎉 We are thrilled to announce the conclusion of the Student Council elections, held online through Google Forms from June 20 to 22. After an intense battle for leadership, the results are finally in! ✨ Team Renaissance has emerged as the winner, securing an impressive 59.3% of the votes! 🎊 We extend our warmest congratulations to their members for their outstanding campaign and commitment to making a positive impact on our school community. 🏅 We also commend the Sentinels team for their dedication and hard work, as they garnered a respectable 40.7% of the votes. Your participation and contributions have been invaluable throughout this process. We would like to express our gratitude to all candidates who put themselves forward for the Student Council elections. Your passion, ideas, and willingness to serve are truly commendable. A special thanks goes out to every student who participated in the voting process. Your engagement and enthusiasm have played a crucial role in shaping the future of our Student Council and the initiatives it will undertake. Let us now join hands and offer our full support to the Renaissance Team as they embark on their journey of leadership. Together, we can strive to create an inclusive and vibrant school environment that fosters growth, innovation, and collaboration. Best Regards, Student Affairs. 🎓🌟#StudentCouncilElections#Renaissance#Sentinels#Congratulations

Tibicen

@world_music_geek · Post #410 · 24.05.2023 г., 15:01

Alessandro Moreschi — The Last Castrato (Opal, 1984) #renaissance#baroque#classicism#romanticism#Italy Алессандро Морески — один из последних певцов-кастратов и единственный, чей голос был записан на фонограф. Родился Алессандро в 1858 году в коммуне Монте-Компатри в Папской Области. В детстве у него обнаружили паховую грыжу, единственным методом лечения которой была кастрация. Уже в 15 лет он стал первым сопрано в базилике Сан-Джованни-ин-Латерано, а в возрасте 25 лет поступил в Сикстинскую Капеллу, в которой прослужил 30 лет. Устаревшая техника пения Морески звучит странно для современного слушателя и может быть неверно истолкована как слабость. Именно поэтому оценка творчества певца разделилась на два лагеря. Один называют его посредственным певцом, запомнившимся только тем, что он был последним в своем роде. Другие говорят, что записи Алессандро — удивительный памятник навсегда исчезнувшего искусства певцов-кастратов. Spotify | AppleMusic | VK

ПретходнаСтраница 1 од 3Следна