PyQt 保存到剪贴板中的插槽中
如何通过按按钮将一些文本保存到剪贴板? 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")') )
不执行任何操作。
怎么了?
How can I save some text to clipboard by pressing button? clipboard.setText("gg")
works by itself
widget.connect(button, QtCore.SIGNAL('clicked()'), clipboard.setText("text") )
throw error, you can only use instance.methodName
widget.connect(button, QtCore.SIGNAL('clicked()'), clipboard, QtCore.SLOT('setText("text")') )
do nothing.
What is wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,有一种更好的方法将信号连接到 PyQt 上的槽:
您可以使用 lambda 函数将额外的参数传递给方法。
然后您调用
当您传递函数调用时,实际上解释器正在评估该调用并尝试将结果传递给 SIGNAL/SLOT 连接。这就是为什么你的第一个例子不起作用。
我在这里写了类似的东西: https://stackoverflow.com/问题/...来自其他功能
First, there's a much better way to connect signals to slots on PyQt:
You can use lambda functions to pass extra arguments to methods.
Then you call
When you pass a function call, in fact the interpreter is evaluating the call and trying to pass the result to the SIGNAL/SLOT connection. That's why your first example doesn't work.
I've written something similar here: https://stackoverflow.com/questions/...from-other-functions