我创建了一个 Qt 应用程序,它显示了一个透明的小部件。我有另一个 Qt 应用程序已经在运行,它会显示一个表单。这个 Qt 应用程序将作为我的透明小部件的父级。更改透明小部件的父级后,当我移动父级 Qt 窗口时,我的透明小部件(现在是第二个 Qt 应用程序的子级)相对于其父级根本没有移动。
注意:如果我删除透明度代码,那么我的子小部件会跟随其父小部件并随之移动。
这是我的代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
setWindowFlags(Qt::FramelessWindowHint);
setStyleSheet("background:transparent;");
setAttribute(Qt::WA_TranslucentBackground);
this->setGeometry(200,200,500,500);
WId hMSTSCWindow = NULL;
//hMSTSCWindow = FindWindow(TEXT("TSSHELLWND"), NULL);
hMSTSCWindow = FindWindow(TEXT("QWidget"), TEXT("MainParent"));
if(hMSTSCWindow != NULL)
{
SetParent(this->winId(),hMSTSCWindow );
}
我哪里错了?