<MyRusakov.ru />

Программирование на C++ с Нуля до Гуру

Программирование на C++ с Нуля до Гуру

Данный курс научит Вас программировать на языке C++, который, несмотря на свой почтенный возраст, необычайно сильно востребован. Курс состоит из 6 разделов, посмотрев которые и выполнив все упражнения, Вы с нуля освоите этот язык и сможете создавать самые разные проекты любой сложности на C++.

Для закрепления материала из уроков к ним идёт множество упражнений.

Дополнительно к курсу идёт вспомогательная система, которая не даст Вам забросить начатое на полпути.

Также вместе с курсов Вы получаете Бонус "Программирование на C++ в Unreal Engine", в котором Вы научитесь создавать игры на C++ с использованием этого движка.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Чтение текстовых данных из буфера обмена в 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()

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.