QTextEditウィジェット内の他のスレッドからテキスト値をコピーできる、クリップボードへの適切なコピーを作成する方法を解明しようとしています。
QTextEditウィジェットで値をプルしてQTextEditウィジェットに表示し、ボタンでQTextEditの内容をクリップボードにコピーしようとしましたが、私のコードは以下のとおりです。
私が気に入らないのは、コピーボタンがコンテンツをコピーするために2回目の呼び出しを行うことです。
get_button
ボタンを使用して最初のリクエストから値を保存し、同じコールを何度も繰り返すことなくコピーボタンを使用してコピーできるようにする方法はありますか?ありがとう。ボタンを使用して他のスレッドからテキストをコピーしようとしています
from PyQt4 import QtCore, QtGui
import sys
class WorkerThread(QtCore.QThread):
get_String = QtCore.pyqtSignal(str)
def __init__(self):
super(WorkerThread, self).__init__()
def run(self):
self.get_String.emit('Some text.')
class GUI(QtGui.QWidget):
def __init__(self):
super(GUI, self).__init__()
self.get_Button = QtGui.QPushButton('Get')
self.c_Button = QtGui.QPushButton('Copy')
self.text_Box = QtGui.QTextEdit(self)
vbox = QtGui.QVBoxLayout(self)
vbox.addWidget(self.get_Button)
vbox.addWidget(self.c_Button)
vbox.addWidget(self.text_Box)
vbox.addStretch()
self.setGeometry(300, 300, 300, 300)
self.show()
self._thread = WorkerThread()
self.get_Button.clicked.connect(self.doIt)
self._thread.get_String.connect(self.text_Box.append)
self.c_Button.clicked.connect(self.copy_Stuff)
def copy_Stuff(self):
self.clipboard = QtGui.QApplication.clipboard()
self._thread.get_String.connect(self.clipboard.setText)
self._thread.start()
def doIt(self):
self.text_Box.clear()
self.text_Box.setText('')
self._thread.start()
def main():
app = QtGui.QApplication(sys.argv)
gui = GUI()
sys.exit(app.exec_())
if __name__ == '__main__':
main()