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

Резултати

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

Пребарај: #microcontroller

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

@githubtrending · Post #14657 · 01.05.2025 г., 14:30

#c_lang#embedded#filesystem#microcontroller LittleFS is a file system designed for small devices like microcontrollers. It helps keep your data safe even if the power goes off suddenly. This is because it uses a "copy-on-write" system, which means it doesn't overwrite old data until the new data is safely stored. LittleFS also helps extend the life of your storage by spreading out writes across different areas, a process called wear leveling. This makes it very reliable and efficient for devices with limited memory and storage. https://github.com/littlefs-project/littlefs

GitHub Trends

@githubtrending · Post #14879 · 28.06.2025 г., 14:30

#cplusplus#cpp#hacktoberfest#iot#iot_device#iot_edge#microcontroller#microsoft_for_beginners#python#raspberry_pi#rpi You can learn the basics of the Internet of Things (IoT) through a free 12-week course with 24 lessons that guide you step-by-step in building real projects like plant monitoring, vehicle tracking, and smart cooking timers. Each lesson includes quizzes, instructions, challenges, and solutions to help you understand sensors, cloud connections, security, and AI on devices. The course uses real hardware or virtual options, making it easy to practice hands-on skills. This project-based learning helps you gain practical IoT knowledge useful for many industries, improving your tech skills and job readiness. https://github.com/microsoft/IoT-For-Beginners

GitHub Trends

@githubtrending · Post #14878 · 28.06.2025 г., 14:00

#cplusplus#arduino#cansat#csv#embedded#graph#ground_station#iot#microcontroller#network#projects#qt#serial#serial_studio Serial Studio is a free, easy-to-use tool that lets you visualize real-time data from devices like microcontrollers via serial ports, Bluetooth, or network connections. It works on Windows, macOS, and Linux, and offers customizable dashboards with various widgets to monitor sensor data, debug info, or telemetry. You can quickly plot data, export it as CSV for analysis, and even use advanced features like checksum validation and JavaScript data processing. It supports hobbyists, educators, and professionals by simplifying data monitoring and debugging, saving you time and effort in understanding your device’s output. Pro versions add commercial use and extra features[1][4][5]. https://github.com/Serial-Studio/Serial-Studio

GitHub Trends

@githubtrending · Post #14989 · 23.07.2025 г., 11:30

#c_lang#bluetooth#bluetooth_le#embedded#embedded_c#iot#mcu#microcontroller#real_time#rtos#zephyr#zephyr_rtos#zephyros Zephyr is a free, open-source real-time operating system (RTOS) designed for small, resource-limited devices like sensors, wearables, and IoT gateways. It supports many hardware types such as ARM, Intel x86, and RISC-V, making it flexible for different projects. Zephyr is modular, so you can include only what you need, saving memory and power. It focuses on security with features like memory protection and secure boot. It also offers built-in networking and tools for easy development and testing. This helps you build reliable, fast, and secure embedded systems efficiently, especially for IoT and real-time applications[1][2][3]. https://github.com/zephyrproject-rtos/zephyr