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

Резултати

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

Пребарај: #stremio

当前筛选 #stremio清除筛选
GitHub Trends

@githubtrending · Post #15196 · 04.10.2025 г., 12:00

#javascript#hacktoberfest#stremio Stremio is an easy-to-use media center app that lets you find, watch, and organize movies, TV shows, live channels, and more from many sources in one place. You can install addons to add content, sync your library across devices, and even download videos for offline viewing. It supports subtitles, Chromecast streaming, and high-quality formats like 4K HDR. Stremio keeps your data safe by running addons remotely and respects your privacy with minimal data collection. This means you get a secure, convenient, and personalized streaming experience without switching apps or worrying about security. https://github.com/Stremio/stremio-web

Libreware

@libreware · Post #1035 · 31.01.2022 г., 15:21

Stremio Freedom To Watch Everything You Want Stremio is a modern media center that's a one-stop solution for your video entertainment. You discover, watch and organize video content from easy to install addons. Movies, TV shows, live TV or web channels - find all this on Stremio. Features: • Multi-platform support • Discover new content with ease • Extendable video catalogue • All of your video content on one screen • Organize your video library • Keep track of everything you watch • Cast to another device • Watch video from many different sources • Play HTTP links and torrent files Download: https://www.stremio.com/downloads https://github.com/Stremio ⚠️ Not fully foss? #Stremio#movies @foss_desktop

折腾实验室频道

@TossLabChannel · Post #830 · 12.10.2025 г., 16:37

#Stremio#媒体中心#开源项目 Stremio Web:跨平台流媒体聚合播放器网页版 Stremio Web 是一款由官方维护的 跨平台流媒体聚合播放器网页端,可直接在浏览器中访问 Stremio 的所有内容模块,包括影视资源、插件扩展与个性化推荐。 该版本完全开源,基于 Node.js 与 pnpm 构建,支持 Docker 一键部署,方便开发者自建或定制前端界面。 项目提供 Discover、Meta Details 等完整界面模块,与桌面版功能一致,亦可配合自建服务器实现无客户端使用体验。 🔗开源协议:GPL-2.0 🧰技术栈:Node.js + pnpm + Webpack 🐳部署支持:Docker 🔘@TossLab🔘@TossLabChannel