答案 0 :(得分:0)
如果我对问题的理解正确,那么您想实现以下目标:
我将从第二点开始,因为这很容易解释。与QClipboard关联的数据未绑定到QApplication范围。换句话说,您可以想象QClipboard只是一个允许从OS剪贴板获取数据并进行设置的API(它与QThread类似,而QThread只是一种表示实际线程的方法,但本身不是线程)。因此,如果您将通过QClipboard进行设置,那么即使该应用已关闭,也不会丢失任何数据。因此,类QClipboard的设置者仅设置数据,但不拥有管理其范围的所有权。
现在,如果您想在剪贴板中设置某些数据以防您的应用存在或关闭,则可以连接到QObject::destroyed信号,并在其处理程序中进行设置。例如,您可以执行以下操作:
QObject::connect(&app, &QObject::destroyed, []
{
QApplication::clipboard()->setText("Something you would like to set.");
});
鉴于Qt不会以任何方式控制操作系统的剪贴板数据范围,因此不确定为什么要这样做,但是我展示了此示例,因为这是可能的。