Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
QApplication.clipboard и работа с буфером обмена в pyqt5
Мы продолжаем тему с буфером обмена и одновременно наша статья будет иметь отношение к программированию с помощью PyQt5.
Для работы с буфером обмена в приложениях на основе библиотеки PyQt5 можно использовать механизм QApplication.clipboard().
Ниже представлена программы. При запуске появляется окно (см. Рисунок 1), где имеются два поля ввода (QLineEdit) и элемент QLabel. При наведении курсором мыши на поле ввода и щелчком правой кнопки появляется меню с пунктами: В буфер и Из буфера. Соответственно можно забрать содержимое поле в буфер обмена или выгрузить содержимое буфера обмена в поле ввода. При этом текстовое содержимое буфера обмена отображается в элементе QLabel, даже тогда, когда буфер обмена меняется другим приложением.
Пояснение к программе
- Следует отметить, что при щелчке правой кнопкой мыши по элемент QLineEdit по умолчанию появляется стандартное меню. Поскольку я хотел сделать своё меню, я указал в программе QLineEdit.setContextMenuPolicy(Qt.CustomContextMenu), т.е. указывается, что меню будет создаваться программно.
- С классом QApplication мы уже знакомы, мы используем его при создании приложений PyQt5. В данной программе используем метод QApplication.clipboard() для управления буфера обмена. В частности QApplication.clipboard().dataChanged.connect - соединяем сигнал об изменение содержимого буфера обмена с методом обработки.
- Для получение текста из буфера обмена используется метод QApplication.clipboard().text(), для изменения содержимого буфера обмена метод QApplication.clipboard().setText().
- В программе есть контекстное меню, которое мы создаём уже известным нам способом с помощью класса QMenu.
- С помощью события focusInEvent() мы отслеживаем событие приобретение элементом окна фокуса. А флаг fc всегда показывает какой элемент является текущим.
Смотри также статью
Ну, пока всё!
Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.