Теперь я использую ubuntu16.04 с рабочей средой GNOME. Я могу изменить атрибуты (например, metadata::nautilus-icon-position) файлов на рабочем столе с помощью c или python, но рабочий стол не обновляется. Затем я имитирую событие «F5», используя xdo_send_keysequence_window(x, CURRENTWINDOW, "F5", 0) из libxdo, теперь отображается обновление, но с миганием (мне кажется, что все виджеты на рабочем столе сначала очищаются, а затем перерисовываются).
У меня есть два вопроса:
Как десктопная система обрабатывает событие «F5»? (сначала очистить все виджеты, кроме фона на рабочем столе, а затем, возможно, в следующий раз отрезать все виды виджетов?) есть способ (интерфейс api или отправлять события на рабочий стол), чтобы недействить или перерисовывать рабочий стол, не мигая, как обычное приложение GUI ( widget.move () или container.invalidate ())?Я много искал и не могу найти ответ. Спасибо большое
Поскольку F5 является привязкой клавиш для функции Refresh, он обрабатывается как таковой. Это ничем не отличается от нажатия F5 в веб-браузере для обновления. Страница очищается, и на сервер поступает новый запрос. В случае с Nautilus это означает, что представление очищено, и каталог повторно сканируется.
Вы могли бы написать плагин (расширение) для Nautilus, который мог бы захватить фактический виджет для фона и то недействителен только частичный прямоугольник, хотя я не уверен, что это решит вашу проблему (вы должны быть в состоянии проверить, перемещая окна по рассматриваемой области, а затем снова отбрасывая их).
решение здесь должно было бы сделать ошибку с Nautilus и решить проблему напрямую, так что когда такие атрибуты будут изменены в файлах, Nautilus выполнит правильную вещь и изменит положение значка или такое.
Поскольку F5 является привязкой клавиш для функции Refresh, он обрабатывается как таковой. Это ничем не отличается от нажатия F5 в веб-браузере для обновления. Страница очищается, и на сервер поступает новый запрос. В случае с Nautilus это означает, что представление очищено, и каталог повторно сканируется.
Вы могли бы написать плагин (расширение) для Nautilus, который мог бы захватить фактический виджет для фона и то недействителен только частичный прямоугольник, хотя я не уверен, что это решит вашу проблему (вы должны быть в состоянии проверить, перемещая окна по рассматриваемой области, а затем снова отбрасывая их).
решение здесь должно было бы сделать ошибку с Nautilus и решить проблему напрямую, так что когда такие атрибуты будут изменены в файлах, Nautilus выполнит правильную вещь и изменит положение значка или такое.