我有一个简单的PyQt4应用程序(请参见下面的代码),该应用程序揭示了一个问题:如果我从中选择文本QLineEdit
并将其复制到剪贴板,则只有在应用程序运行时才能将其粘贴到另一个应用程序。似乎在退出时,PyQt应用程序清除了剪贴板,因此在应用程序关闭后我无法粘贴文本。
我应该怎么做才能避免这个问题?
PyQt 4.4.3 @ Python 2.5 @ Windows XP。在PyQt 4.5+和Linux上也证实了这种效果。
import sys
from PyQt4 import QtGui
app = QtGui.QApplication(sys.argv)
edit = QtGui.QLineEdit()
edit.setText('foo bar')
edit.show()
app.exec_()
确定,没有完全清除剪贴板发生。只是QT在剪贴板中存储了某种文本指针,而不仅仅是文本。戈登·泰勒(Gordon
Tyler)向我指出了PyQt邮件列表上的讨论,该讨论解释了发生了什么。我引用代码和解释的相关部分。
在应用程序退出时运行以下代码(例如,在closeEvent处理程序中):
from PyQt4 import QtGui, QtCore
clipboard = QtGui.QApplication.clipboard()
event = QtCore.QEvent(QtCore.QEvent.Clipboard)
QtGui.QApplication.sendEvent(clipboard, event)
其背后的基本概念是,默认情况下,将内容复制到剪贴板仅会将引用/指针复制到源应用程序。然后,当另一个应用程序想要从剪贴板粘贴数据时,它将向源应用程序请求数据。调用OleFlushClipboard会使Windows将真实数据复制到剪贴板中,而不是复制到引用中。虽然这确实会导致复制图像时出现延迟,但是它对字符串不会产生任何明显的影响。
上面的代码是非常跨平台的,不会对Linux平台造成任何不良影响。
问题内容: 我制作了一个命令行应用程序,在其中压缩文件夹并在本地服务器上共享供他人下载。我想做的是关闭服务器后立即删除压缩文件夹的副本。这是我的代码: 当我按下ctrl- c时,程序退出并且main函数关闭,结果,是否应该执行os.Remove(xyz)?去的游览说,推迟执行该表达式时,函数返回。在这里,我不觉得main有机会退还任何东西。 有什么解决方法可以实现我要完成的任务?我脑子里有一些解决
问题内容: 用代码退出Java应用程序的最佳方法是什么? 问题答案: 您可以用于此目的。 根据oracle的Java 8文档: 终止当前正在运行的Java虚拟机。参数用作状态码;按照惯例, 非零状态代码表示异常终止 。 此方法在类Runtime中调用exit方法。此方法永远不会正常返回。 该调用实际上等效于该调用:
情况可能是这样的,我有5个活动。说主活动,活动1,活动2,活动3,活动4。 一个人可以使用活动1,2,3 情境:用户进入主活动,并按下按钮进入活动2。然后他反压并返回主活动。从那里他现在在另一个按钮的帮助下进入活动3,同样,当他按下后退按钮时,他进入主活动。 主要活动- 问题:现在当用户从活动3进入主活动时。用户处于主活动布局中。现在,如果用户按下手机上的后退按钮,则将执行以下过程退出应用程序:
您好,我已经在codova开发了一个带有ionic framework的移动应用程序。我已经构建了这个应用程序,并开始在android mobile上进行测试。注销时,单击“我已在后面添加此代码”: 但在手机测试时间,当我注销时 我的控制器代码: 我的注销代码: 我访问数据的身份是:
问题内容: 如果我的React Native应用无法连接到其后端,我会显示一个带有OK按钮的Alert。如果发生这种情况,应用程序将无法继续运行,因此我想在单击按钮时将其关闭。我该怎么做呢? 我怀疑密钥在AppRegistry中,但是文档有点匮乏。 问题答案: 今天没有反应本机的特定方法。您必须从事物的本机方面完成此任务。 此外,您正在为iOS开发吗?苹果已经表示,应用程序不应自行关闭。