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

Резултати

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

Пребарај: #updater

当前筛选 #updater清除筛选
YuKongA | Channel

@YuKongA13579 · Post #1534 · 17.09.2025 г., 11:30

## Major Updates * Device lists can now be updated remotely * Supports Verification code and 2FA login * Improve search history support (old data is not supported, you need to clear the history) * Improve Security Patch Level and Build Time parsing speed * Update all build deps ## For macOS User * Maybe you need to run sudo xattr -r -d com.apple.quarantine /Applications/Updater.app ## For iOS User * You need to sign it yourself to install #Updater

Hashtags

YuKongA | Channel

@YuKongA13579 · Post #1523 · 12.09.2025 г., 05:59

说实话我这几天一直在尝试把小米账号的图片验证码和二次认证验证码登陆部分塞进 Updater 里面。 图片验证码部分一下子就跑通了没啥问题; 二次认证登陆部分一开始一直拿不到 location,后来发现是 ktor 的 cookie("identity_session", xxxxx) 默认会执行 URL 编码再传过去,小米验证服务器不认了,改成了直接 header("cookie", "identity_session=xxxxx") 之后也跑通了。 但是通过二次认证返回的 location 再进行登陆请求拿不到 serviceToken。。。目前卡在这里两天了😢 现在完全跑通了,但说实话还是不知道问题出在哪(不过确实是能用了) #Updater#UpdaterKMP

YuKongA | Channel

@YuKongA13579 · Post #1347 · 29.05.2025 г., 14:18

这两天对宽屏下的 Updater 做了一些优化: 1. 使用更加符合桌面应用的界面样式 2. 支持跟随系统主题色 (Windows/macOS) 此外: 1. 添加了近期新设备 2. 增加了指纹信息展示 3. 优化了解析 Metadata 的速度 注意: 1. Android/iOS 默认支持跟随系统 2. Linux 我不用 GUI 所以测试不了 #Updater#UpdaterKMP

YuKongA | Channel

@YuKongA13579 · Post #873 · 27.06.2024 г., 10:33

基于 Kotlin Multiplatform 的 Updater 已经趋于完善,并且代码写的也比老的整洁很多。接下来的所有更新都将以此版本为主,使用安卓原生 XML 的版本后续将不再完全同步更新 (例如后续米米跟改请求方式)。 就目前而言,两版本使用上没有区别,原生 XML 版本多了个小米的灵动额头支持。 #Updater#UpdaterKMP

YuKongA | Channel

@YuKongA13579 · Post #829 · 06.06.2024 г., 06:16

小米的 系统更新 程序现在不会像以前一样直观的表现出当前版本已经撤包的现象。 比如小米 14 的 1.0.38.0 实际现在是撤包状态,使用 Updater/UpdaterKMM 无法获取到任何信息。但你仍然可以在 系统更新 内查看当前版本更新日志。 现在 系统更新 页面中给你显示的当前版本更新日志只是曾经查询成功时返回结果的备份。具体可以看 /data/user/0/com.android.updater/shared_prefs/version_json.xml 这个文件。里面有两个参数,当前版本是指曾经查询成功的结果,而最新版本才是最后一次查询的结果。即使不清空缓存,也可以看到最新版本的返回是空值。 因此,很多时候 Updater 查询不到信息真的只是服务器返回给你没包了,而不是账号权限或者软件有问题,因为系统更新自己也获取不到。 #Updater#Xiaomi#News

YuKongA | Channel

@YuKongA13579 · Post #936 · 17.08.2024 г., 15:22

换用最新写的 miuix ui 的极简版本 相比原本去掉了扩展设置(灵动脑门支持,手动深浅色切换)、关于页面。可以说是非常简洁了。 要说新增的话,就是多了 ui 带的特性,越界回弹和顶栏模糊吧。 #Updater#KMP#MIUIX

YuKongA | Channel

@YuKongA13579 · Post #1232 · 27.01.2025 г., 11:06

Updater-KMP Release 1.5.1 Major Updates: * Change more components to miuix style * Add search history support * Add recently released devices * Fix lots of crash issues * Add portuguese brazilian language * Update all deps Download: GitHub Release 好久没发版了,年末更新一个 #Updater#CMP#KMP

YuKongA | Channel

@YuKongA13579 · Post #1203 · 23.12.2024 г., 08:56

加上了好多人要的历史记录功能,虽然我不知道有什么用🧐 其他平台的自己去 GitHub Action 下吧,没写上传到频道。 #Updater#KMP#CMP

YuKongA | Channel

@YuKongA13579 · Post #1177 · 05.12.2024 г., 04:56

最近几天 CMP 修了我在编译 macOS native 版本时遇到的所有问题, 之后会重新提供 Updater 的 macOS native 构建,会比 JVM 版本流畅的多得多。 相关提交和拉取请求: https://github.com/JetBrains/compose-multiplatform-core/commit/e839617b7b4686abb2ed62cf383582f9d79d1ebf https://github.com/JetBrains/compose-multiplatform-core/commit/ec0731597f6d24c84895873c5e4945436c517138 https://github.com/JetBrains/compose-multiplatform-core/commit/759bd7bb272b962181e2dde86d1f6f365db93fa5 https://github.com/JetBrains/compose-multiplatform/pull/5169 以及接下来马上要来的 1.8.0-alpha01 终于修好了 iOS 横屏边衬区异常问题。 12月14号还有个 KMP 专题的开发者大会,有很多大厂工程师来讲 CMP 通过 K/JS 和 K/N 适配 HarmonyOS NEXT 的可行性和方案。 #CMP#KMP#Updater

YuKongA | Channel

@YuKongA13579 · Post #831 · 06.06.2024 г., 08:03

重新研究了一遍小米系统更新的请求链接。 接下来会完善软件的业务能力: 1. 查询的版本存在,显示查询版本的信息;如果查询的不是最新版本,同时返回距离最新稳定版之间的增量信息; 2.查询的版本不存在,但是比稳定版最新版本低,返回稳定版最新版本; 3.查询的版本不存在,也比稳定版最新版本高,不登录的情况下无返回,如果登录且拥有开发版权限,则返回开发版最新版本。 总结: 完全同步系统更新的业务逻辑。 #Updater#UpdaterKMM#News

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