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

Резултати

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

Пребарај: #peertube

当前筛选 #peertube清除筛选
Libreware

@libreware · Post #1459 · 07.05.2025 г., 03:54

PeerTube Mobile App v1 Is Out | Linuxiac The PeerTube mobile app has reached version 1, allowing users to easily edit playlists, comment on videos, and switch between accounts Sortie de la v1 de l'application mobile ! | JoinPeerTube PeerTube | F-Droid - Free and Open Source Android App Repository Go to the git page to get version 1.0 the F-Droid link is 0.6 https://framagit.org/framasoft/peertube/mobile-application/-/releases Via @linuxgram #PeerTube

Hashtags

Libreware

@libreware · Post #1265 · 29.03.2024 г., 01:21

P2Play - Peertube client (Unofficial client for Peertube) P2Play is an Android application for Peertube. The features are as follows: - Show list of recent, popular and local videos. - Play videos (very simple) - Log in and register in your instance - Refresh View downloaded videos - Subscribe to accounts - View videos from your subscriptions - Rate videos https://f-droid.org/packages/org.libre.agosto.p2play/ https://instances.joinpeertube.org/instances #PeerTube

Hashtags

Libreware

@libreware · Post #1462 · 04.06.2025 г., 19:45

PeerTube v7.2.0 => https://joinpeertube.org/ PeerTube is a free, decentralized and federated video platform developed as an alternative to other platforms that centralize our data and attention, such as YouTube, Dailymotion or Vimeo. 🎬 Changelog: => https://github.com/Chocobozzz/PeerTube/releases/tag/v7.2.0 Via @dcntr #PeerTube#ActivityPub

Libreware

@libreware · Post #1440 · 21.03.2025 г., 18:20

PeerTube 7.1 brings Podcast 2.0 support, enhanced identification and Mastodon verification | AlternativeTo PeerTubePeerTube has launched version 7.1 of its open-source, decentralized video-sharing platform, introducing a range of new features and improvements. A key update is enhanced platform identification, which now highlights the hosting platform's address for each video. Users can click on this address to learn more about the video's origin and explore all videos hosted on the remote instance. Version 7.1 also advances its support for #Podcast 2.0, enabling users to subscribe to channels and play video audio streams through traditional podcast applications like #AntennaPod and #Podverse. Additionally, the podcast feed is now compatible with Apple Podcast, broadening accessibility PeerTube v7.1 is out! | JoinPeerTube https://joinpeertube.org/news/release-7.1 #PeerTube

GitHub Trends

@githubtrending · Post #15452 · 29.01.2026 г., 19:00

#java#4k#android#bandcamp#download_videos#newpipe#peertube#soundcloud#translation#video#watch#youtube_video NewPipe is a free, open-source Android app for ad-free streaming and downloading videos/audio from YouTube, SoundCloud, PeerTube and more, with background play, pop-up mode, subscriptions without accounts, and no Google tracking for full privacy. The team is rewriting the code for a modern, stable version—download nightly builds to try new features early. This benefits you by saving data/battery, enabling offline/multitasking use, and protecting your data on any device. https://github.com/TeamNewPipe/NewPipe