Предисловие
«Простой в использовании, слабый в настройке. Сильный в настройке, с ним трудно начать». Это всегда было основным правилом библиотек интерфейса Python.
Как упоминалось в предыдущем уроке, nicegui на самом деле представляет собой очень обычную библиотеку интерфейсов, управляемых событиями, и в ее механизме работы нет ничего особенного. Хотя в него встроен простой механизм привязки данных, текущая реализация на самом деле не работает.
Однако когда nicegui объединяется с механизмом ответа на данные, все меняется к лучшему.
Это самая важная статья в последующих руководствах по nicegui. Сегодня на небольшом примере мы научимся использовать nicegui на основе данных. Для этого метода невозможно найти даже официальную документацию.
Сначала посмотрим на эффект:
На этот раз вам нужно установить эти библиотеки
pip install nicegui ex4nicegui pandas openpyxl pyecharts -U
создавать python файл кода main.py
, напишите базовый код импорта и интерфейса
Начните с небольшого примера.
Интерфейс имеет поле ввода и метку. Надеемся, что после того, как пользователь введет контент, метка ниже будет отображаться одновременно:
Используйте официальный подход nicegui и используйте события:
Привяжите события к полю ввода и обработайте логику в функции событий. Кажется разумным.
Теперь давайте попробуем подход, ориентированный на данные:
ex4nicegui
из rxui создавать input элементы управления. Его параметры такие же, как nicegui из input Точно так же.Все очень просто: теперь содержимое поля ввода и содержимое метки синхронно связаны!
«И все? Эта отзывчивость так скучна!»
Теперь измените требования. Если содержимое поля ввода представляет собой значение цвета, цвет шрифта метки ниже также изменится. Демонстрация выглядит следующим образом:
Код очень прост:
Снова обновите требования. Теперь мы не хотим использовать текстовое содержимое напрямую, но если в конце входного содержимого есть значение цвета, окруженное скобками, установите цвет метки:
Код выглядит следующим образом:
ref_computed
Декоратор, который делает функцию Отзывчивыйданный.имя переменной.значение
Получите значение.input
реактивное значение, поэтому эта функция автоматически работает с input
ассоциация. когда input
Когда значение изменяется (очевидно, можно изменить только поле ввода в интерфейсе), эта функция будет запущена, тем самым уведомляя элемент управления метки о необходимости обновления цвета.Вы заметили, что кода привязки событий вообще нет? !
Нам нужно всего лишь освоить несколько моментов, чтобы использовать этот метод программирования интерфейса:
1. Найдите элементы управления взаимодействием с пользователем в интерфейсе и определите объект, реагирующий на чтение и запись (чтобы ref) и привяжите его к соответствующему элементу управления. Поле ввода в примере
2. Все что угодно через переменные взаимодействия с пользователем (в примере input
переменная) Полученные данные ответа определяют ответ, доступный только для чтения (см. computed) и привяжите его к нужному элементу управления. Цвет этикетки в примере
По сравнению с использованием кода «использоватьсобытие»,Отзывчивыйиз Код Интерфейс станет более лаконичным и интуитивно понятным. Мало того, в это время из Код Интерфейс полностью декларативен, поэтому имеет возможность «незакодировать». Например, функция перетаскивания макета
Не забудьте нажать три подряд. Ваши лайки, коллекции и внимание — мотивация моего творчества.
Теперь давайте начнем с первого демо-кейса.
Продолжая следовать идее, изложенной ранее, пользователь выбирает путь к файлу. Очевидно, нам нужны оперативные данные о пути к файлу:
r_
префикс обозначает читабельность Отзывчивый объектopen
Функцию можно открыть. Здесь мы используем кнопку, задаем настройки события щелчкаbind_ref
Вы можете связать его со значением результатаЯ предпочитаю определять данные с помощью кода. интерфейс разделен на два разных файла,Здесь для удобства объяснения,Поместите это прямо в файл
Теперь там одни кнопки и никаких особых эффектов не видно. Мы также завершили загрузку таблицы данных:
проходить ref_computed Определенный реактивный объект только для чтения, мне нравится использовать
cp
префикс
Затем привяжите форму:
Взгляните на эффект:
Следующий шаг — это, по сути, та же идея.
Определим переменные, с которыми пользователь может взаимодействовать сразу:
Затем определите производные данные:
1. Имя столбца таблицы данных (имя строкового столбца)
2. диаграммаизданные. Потому что нам нужно составить сводную статистику на основе выбранных полей осей X и Y.
3. Создание объектов pyecharts
4. Чтобы скрыть элемент управления ниже, когда данные не загружены, определите «загружены ли данные».
Я не буду здесь раскрывать все коды, это всего лишь базовые коды обработки данных. Дело в том, что все эти коды являются обычными кодами обработки данных, и никакого кода, связанного с объектами-компонентами, не будет.
Если вы не понимаете некоторые части кода, сообщите мне в разделе комментариев.
Это значит, что мы можем проверить корректность логики, не создавая интерфейс. Я также создал несколько вспомогательных инструментов, таких как следующая информационная таблица, в которой перечислены все переменные реактивных данных:
Из таблицы вы можете увидеть, с какими переменными связана каждая переменная. Вы можете увидеть их динамические изменения данных. В настоящее время эта форма относительно проста и будет усовершенствована позже.
Следующий,Сосредоточьтесь на части диаграммы,Посмотрите, как можно легко создавать диаграммы.
nicegui Официальная составляющая издиаграммы: highcharts , но я знаю, что многие друзья любят его использовать pyecharts , поэтому я специально сделал echarts компоненты.
Хотя лично мне не нравится использовать pyecharts, их легко поддерживать. Теперь посмотрим, как его использовать.
cp_echart_options
В конечном итоге будет привязан к компоненту интерфейса. rxui.echarts.from_pyecharts
。
Логика внутри очень проста, пока эта функция возвращает pyecharts издиаграммы объекта достаточно. Разверните строку 61 на изображении выше. код:
Отзывчивыйпеременная.value
Получите, а затем установите pyecharts параметры функции. Необходимо обратить внимание на useuse .value
Получите ценностья не знаком с pyecharts ,Два диаграммных кода,Все они взяты прямо с официального сайта.,Взгляните на код официального сайта:
Когда мы его используем, нам нужно изменить последнее предложение .render
Просто удалите его. Поскольку этот код будет напрямую генерировать html файл, который невозможно правильно использовать в nicegui середина.
По сути, электронные диаграммы Компонент требует, чтобы это был словарь конфигурации диаграммы, например, в echarts На официальном сайте наугад найдите диаграмму:
На этом этапе вы можете получить такой эффект:
Данные четко определены, а код интерфейса на самом деле очень краток: