@thedevs · Post #1426 · 12.03.2019 г., 18:41
Regex cheat sheet. #article#tutorial#regex @thedevs https://kutt.it/9hjBRG
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
Пребарај: #regex
@thedevs · Post #1426 · 12.03.2019 г., 18:41
Regex cheat sheet. #article#tutorial#regex @thedevs https://kutt.it/9hjBRG
@QuanX_API · Post #109 · 10.09.2021 г., 13:18
#解析器 2021-09-10 新增参数 regout,正则剔除不想要的部分。 方便此前不会用正则来删除 特定 [节点/规则/重写] 的同志 示范: 保留香港、同澳门节点,并去除其中的 BGP 跟直连的节点 #regex=🇭🇰|🇲🇴®out=BGP| 直连
@QuanX_API · Post #35 · 03.07.2020 г., 06:19
#解析器 2020-07-03 节点过滤参数 regex,变为对节点完整信息进行匹配 - 可根据 端口、加密方式、混淆参数、udp 开启情况 等进行过滤 如 #regex=udp\-relay\=true
@thedevs · Post #1784 · 25.07.2020 г., 16:34
Super Expressive, a zero-dependency JavaScript library for building regular expressions in (almost) natural language. #tools#js#regex @thedevs https://kutt.it/UE9eww
@repo_science · Post #3413 · 10.07.2023 г., 12:46
#softSkills#regex#AI#book 🤖 Regular Expression Puzzles and AI Coding Assistants: 24 puzzles solved by the author, with and without assistance from Copilot, ChatGPT and more ✍️David Mertz 📆 2023 🔗Link ----- Main channel:@repo_science Coupons:@freecoupons_reposcience -----
Hashtags
@android_broadcast · Post #8809 · 14.03.2025 г., 15:42
Мы с вами говорили про отличия между платформами, но что говорить о мультиплатформе, если даже на разных Android-устройствах могут быть отличия в поведении, и явным рекордсменом по количеству особенностей являются устройства Xiaomi 🧡 Сегодня поговорим про регулярные выражения и букву ё. Кто ее только не отменял, но Xiaomi пошли дальше всех. К нам прилетел баг, что при введении ФИО буква ё не проходит валидацию по регулярному выражению. Первое, что приходит в голову, это, что мы написали кривой regex, ведь на самом деле, если использовать такое регулярное выражение ^[а-яА-Я]*$ то буква ё не попадает в этот диапазон и нужно определять ее отдельно, но нет, дело было не в этом. Дальше мы подумали, а что если клавиатура на Xiaomi использует какой-то другой символ ё и мы оказались правы. Действительно стандартная клавиатура использовала \u00eb символ юникода вместо \u0401 Все дело в клавиатуре, которая выбрана по умолчанию, если поменять клавиатуру на Gboard, то все будет окей. Так что перед проверкой данных нам пришлось делать замену данного символа, чтобы пройти валидацию и на бекенде 👍 Давайте порадуемся за Семëна с Xiaomi, теперь у него все будет хорошо 🫡 #Android#Regex#Xiaomi
@AppPie · Post #1954 · 23.04.2024 г., 04:02
#Resources Learn regex the easy way —— 轻松学习正则表达式 🔗GitHub Learn regex the easy way 是一个 MIT 许可的开源项目,目的是帮助人们轻松学习正则表达式。项目的目标是帮助用户编写更好的正则表达式,并提高其对正则表达式的理解和实践能力。 特点 • 正则表达式基础:匹配器、元字符、重复、分组等 • 高级技巧:替换、锚点、简写字符集、查找/不查找组 • 大量示例与练习:通过实战练习加深理解与应用 开源协议 MIT 许可证。 #GitHub#Regex#OpenSource 📮 频道 @AppPie
@botsgram_cu · Post #3293 · 15.12.2020 г., 20:28
@shiiinabot Qué puede hacer este bot? Un bot para eliminar automáticamente los mensajes no deseados predefinidos del grupo. Idioma: Portugués (visto en @BotsGram_cu) #delete, #group, #notification, #message, #regex, #spam, #picture, #remove