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

Резултати

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

Пребарај: #r3vukwtf

当前筛选 #r3vukwtf清除筛选
PT资讯频道

@PrivateTrackerNews · Post #684 · 09.07.2019 г., 14:12

2019/07/09 #开放注册 #OpenSignupTracker #国外PT 电报 @PT资讯频道 Telegram @privatetrackernews 电视站 无分享率要求,HR单集24小时(1天),整季120小时(5天),Gazelle架构 Tracker's Name: #Nebulance(Aka.TransmitThe.net) Genre: TV Sign-up Link: https://nebulance.io/register.php Closing date: Soon! Additional information: Nebulance (Aka.TransmitThe.net) is a ratioless Gazelle-based private TV tracker with no rar files. Tracker got about 5.2K registered members with App. 24K uploaded torrents which makes it an active one with good speeds.Episodes must be seeded for a minimum of 24 hours (1 Day),Seasons must be seeded for a minimum of 120 hours (5 Days). 电影电视音乐综合站 有自动发种机器人发布最新资源 Tracker's Name: #R3VUKWTF (R3V) Genre: General Sign-up Link: http://r3vuk.wtf/login.php Closing date: Soon Review's Link: R3VUK.Wtf | R3V | General | 2018 Review Additional information: Very nice site, normally invite only, but has opened its doors for a short time......well worth a look if you like all the new music, movies and tv. showsR3VUK is an older Private Torrent Tracker for Movies / TV / Music / General Releases This tracker has a great selection of new released music as well as a new release group that will fill all of your movie watching needs! The site has an autobot to bring in all of the latest releases, along with dedicated uploaders to help fill requests!