Есть у QLabel есть одна особенность. Её минимальный размер определяется текстом, который в неё записан. Это приводит к тому что длинный текст принудительно увеличивает ширину интерфейса.
В большинстве случаев это выглядит плохо.
Как с этим бороться?
🔸 Обрезать текст заранее, задав лимит по длине строки. В этом случае мы теряем часть визуальной информации. Не всегда угадаешь нужный размер. В разных OS шрифт используется разный.
🔸 Делать перенос строки. Тогда мы получим изменение размера в другую сторону, что тоже поломает интерфейс.
🔸 Переопределить paintEvent() и сделать кастомный рендеринг текста. Можно, но слишком сложно для такой задачи.
Проще всего обрезать текст под текущий размер виджета используя класс QFontMetrics.
Он имеет готовый метод elidedText(), который просто вызываем по событию resizeEvent.
Я также добавил установку ToolTip чтобы всегда можно было увидеть полный текст при наведении курсора.
🌎 Код здесь
#qt#source
📌Как создавали RL-агент AutoGLM-OS, который выбил SOTA на OSWorld, обогнав OpenAI и Anthropic.
Автономные агенты, способные управлять рабочим столом - это Грааль современного HCI. Но их обучение сопряжено с трудностями: GUI созданы для людей, а не для машин, а масштабирование RL упирается в неэффективность и нестабильность сред.
В Z.ai сделали фреймворк COMPUTERRL, который лег в основу агента AutoGLM-OS. Результат - state-of-the-art на бенчмарке OSWorld: 48.1% успешных выполнений и это лучше, чем у OpenAI CUA 03 (42.9%), UI-TARS-1.5 (42.5%) и Claude 4.0 Sonnet (30.7%).
OSWorld — это крупный бенчмарк из 369 заданий для проверки многомодальных ИИ-агентов в реальных условиях. Он работает в Ubuntu, Windows и macOS.
В нем ИИ выполняет открытые задачи: работает с веб- и десктопными приложениями, управляет файлами, запускает процессы. Каждое задание имеет четкие начальные условия и скрипты для оценки, чтобы результаты можно было воспроизвести.
Такие высокие показатели - результат комбинации 3-х инноваций.
🟡Новая парадигма взаимодействия API-GUI.
Фреймворк объединяет GUI-взаимодействия с быстрыми и точными API-вызовами образуя систему, которая через LLM автоматически анализирует примеры задач, генерирует необходимый API-код для стандартных приложений Ubuntu и даже создает для него базовые тесты.
Таким образом, агент использует быстрые API там, где это возможно, и переключается на GUI для общих задач, что повышает и скорость, и надежность. Абляция показала, что переход от GUI-only к API-GUI поднимает средний показатель успеха с 11.2% до 26.2%.
🟡Масштабируемая распределенная RL-инфраструктура.
OSWorld крайне ресурсоемок, и запуск множества его экземпляров на одном узле это тот еще квест. Z.ai полностью переработали эту среду, используя qemu-in-docker для легковесного развертывания VM, gRPC для связи между узлами и полностью асинхронный фреймворк AgentRL. Это позволило создать кластер из тысяч параллельных виртуальных сред, к котором онлайн-обучение RL-агентов стало максимально эффективным.
🟡Стратегия обучения Entropulse.
Entropulse решает проблему коллапса энтропии, чередуя фазы RL с периодическими сессиями SFT. Во время RL-фазы собираются все успешные траектории, и на их основе формируется новый SFT-датасет. Затем модель дообучается на этом датасете, что позволяет восстановить её исследовательскую способность без потери производительности. После этого запускается вторая, более эффективная фаза RL.
Эта стратегия позволила AutoGLM-OS, построенному на базе 9B GLM-4, достичь финального результата в 48.1%, в то время как после первой RL-фазы показатель был 42.0%.
🟡Arxiv
@ai_machinelearning_big_data
#AI#ML#Agents#AutoGLM#Zai