PyQt 保存到剪贴板中的插槽中

发布于 2024-11-08 02:09:20 字数 375 浏览 1 评论 0原文

如何通过按按钮将一些文本保存到剪贴板? 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

束缚m 2024-11-15 02:09:20

首先,有一种更好的方法将信号连接到 PyQt 上的槽:

button.clicked.connect(self.method)

您可以使用 lambda 函数将额外的参数传递给方法。
然后您调用

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

当您传递函数调用时,实际上解释器正在评估该调用并尝试将结果传递给 SIGNAL/SLOT 连接。这就是为什么你的第一个例子不起作用。

我在这里写了类似的东西: https://stackoverflow.com/问题/...来自其他功能

First, there's a much better way to connect signals to slots on PyQt:

button.clicked.connect(self.method)

You can use lambda functions to pass extra arguments to methods.
Then you call

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文