我有一个使用QWidget::createWindowContainer
捕获和嵌入其他应用程序的应用程序。以下是负责此事的代码:
void MainWindow::capture( WId wid )
{
auto window = QWindow::fromWinId( wid );
auto widget = QWidget::createWindowContainer( window );
ui->ContentFrame->layout()->addWidget( widget );
}
捕获应用程序并成功添加到布局中,但拖放在捕获的应用程序中不起作用。拖动窗口小部件时,如果窗口小部件保留在捕获的应用程序上,则光标会显示X,并且不会导致任何结果。
我尝试确保在新创建的窗口小部件,嵌入的窗口小部件和捕获对话框中使用setAcceptsDrops()
和setAttribute( Qt::WA_AcceptDrops )
实际启用了拖放功能,但是这似乎没有任何区别。
拖放功能可以在捕获的应用程序自行启动时捕获,但不会捕获。这似乎是捕获过程打破了拖放。有什么我需要手动做以确保它在我的场景中有效吗?
一些额外的信息:我正在使用Utntu 16.04上的Qt 5.5.1进行开发。正在捕获的应用程序使用捕获应用程序中的QProcess
启动。