Чтение текстовых данных и буфера обмена в Python PySide 6

Чтение текстовых данных и буфера обмена в Python PySide 6

Чтение текстовых данных и буфера обмена в Python PySide 6

В примере ниже я покажу Вам, как можно сделать графическое приложение на PySide 6, которое читает
данные из буфера обмена
и выводит их в текстовую область. Программа читает только текстовые данные
из буфера обмена. Но вполне возможно, что данные в буфере будут иметь и другой формат — в этом случае программа
просто выведет заданный текст.

Вот непосредственно код:



#!/usr/bin/python



import sys



from PySide6 import QtCore

from PySide6.QtCore import Qt

from PySide6.QtGui import QCursor

from PySide6.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayout, QVBoxLayout, QTextEdit



class MainWidget(QWidget):



    def __init__(self):

        super(MainWidget, self).__init__()

        self.initUI()



    def initUI(self):



        self.sourceTextEdit = QTextEdit()



        self.editBox = QHBoxLayout()

        self.editBox.addWidget(self.sourceTextEdit)



        self.convertButton = QPushButton("Буфер обмена")

        self.convertButton.setStyleSheet("padding: 3px 5px")

        self.convertButton.setCursor(QCursor(Qt.PointingHandCursor))

        self.convertButton.clicked.connect(self.onConvertButtonClicked)



        self.cancelButton = QPushButton("Очистить")

        self.cancelButton.setCursor(QCursor(Qt.PointingHandCursor))

        self.cancelButton.clicked.connect(self.onClearButtonClicked)



        self.hbox = QHBoxLayout()

        self.hbox.addStretch(1)

        self.hbox.addWidget(self.convertButton)

        self.hbox.addWidget(self.cancelButton)



        self.vbox = QVBoxLayout()

        self.vbox.addLayout(self.editBox)

        self.vbox.addLayout(self.hbox)





        self.setLayout(self.vbox)    



        self.setGeometry(300, 300, 800, 550)

        self.setWindowTitle('Чтение данных из буфера обмена')    

        self.show()





    # центрирует окно программы по центру рабочего стола

    def center(self):

        qrect = self.frameGeometry()

        qpoint = self.screen().availableGeometry().center()



        qrect.moveCenter(qpoint)

        self.move(qrect.topLeft())





    @QtCore.Slot()

    def onConvertButtonClicked(self):

        convertedText = self.pasted();

        self.sourceTextEdit.setText(convertedText)





    @QtCore.Slot()

    def onClearButtonClicked(self):

        self.sourceTextEdit.setText("")







    def pasted(self):

        # получаем ссылку на буфер обмена

        clipboard = QApplication.clipboard()

        # читаем данные из буфера

        mimeData = clipboard.mimeData()



        # если буфер обмена содержит текст

        if mimeData.hasText():

            # возвращаем его

            return mimeData.text()

        else:

            return "В буфере обмена нет текстовых данных!"





def main():



    app = QApplication(sys.argv)

    mainWidget = MainWidget()

    mainWidget.center()

    sys.exit(app.exec())





if __name__ == '__main__':

    main()




Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий