PyQt сохранить в буфер в слоте - PullRequest
0 голосов
/ 18 мая 2011

Как сохранить текст в буфер обмена, нажав кнопку? clipboard.setText("gg") работает само по себе

widget.connect(button, QtCore.SIGNAL('clicked()'), clipboard.setText("text") )

ошибка выбрасывания, вы можете использовать только instance.methodName

widget.connect(button, QtCore.SIGNAL('clicked()'), clipboard, QtCore.SLOT('setText("text")') )

ничего не делать.

Что не так?

1 Ответ

1 голос
/ 18 мая 2011

Во-первых, есть гораздо лучший способ подключения сигналов к слотам в PyQt:

button.clicked.connect(self.method)

Вы можете использовать лямбда-функции для передачи дополнительных аргументов в методы.Затем вы вызываете

button1.clicked.connect(lambda : clipboard.setText('btn one'))
button2.clicked.connect(lambda : clipboard.setText('btn two'))

Когда вы передаете вызов функции, фактически интерпретатор оценивает вызов и пытается передать результат в соединение SIGNAL / SLOT.Вот почему ваш первый пример не работает.

Я написал нечто подобное здесь: https://stackoverflow.com/questions/...from-other-functions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...