Python PySide2 QQuickWidget悬停效果不工作

Python PySide2 QQuickWidget悬停效果不工作,python,qt,qml,pyside2,Python,Qt,Qml,Pyside2,我试图在QtWidgets应用程序中创建一个菜单,这意味着我需要使用QQuickWidget来显示QQuick组件 当使用PySide2时,所有悬停效果和动画都被禁用,但菜单单击似乎起作用。在C++ QT中尝试了同样的代码,它工作正常。 这是PySide2中的一个限制还是我应该以不同的方式来做 这是我的密码: 主窗口 \ifndef主窗口 #定义主窗口 #包括 #包括 QT_开始名称空间 命名空间Ui{class MainWindow;} QT_END_名称空间 类主窗口:公共QMainWind

我试图在QtWidgets应用程序中创建一个菜单,这意味着我需要使用QQuickWidget来显示QQuick组件

当使用PySide2时,所有悬停效果和动画都被禁用,但菜单单击似乎起作用。在C++ QT中尝试了同样的代码,它工作正常。 这是PySide2中的一个限制还是我应该以不同的方式来做

这是我的密码:

主窗口

\ifndef主窗口
#定义主窗口
#包括
#包括
QT_开始名称空间
命名空间Ui{class MainWindow;}
QT_END_名称空间
类主窗口:公共QMainWindow
{
Q_对象
公众:
主窗口(QWidget*parent=nullptr);
~main窗口();
公众时段:
void menuTriggered();
私人:
Ui::MainWindow*Ui;
QQuickWidget*视图;
QQuickItem*对象;
};
#endif//main窗口
mainwindow.cpp

#包括“mainwindow.h”
#包括“ui_main window.h”
#包括
#包括
主窗口::主窗口(QWidget*父窗口)
:QMainWindow(父级)
,ui(新ui::Main窗口)
{
用户界面->设置用户界面(此);
此->视图=新的QQuickWidget(此);
查看->设置源(QUrl(“qrc:/main.qml”);
视图->设置透明颜色(Qt::透明);
查看->设置窗口标志(Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint);
查看->设置属性(Qt::WA_半透明背景);
查看->设置属性(Qt::WA_NoSystemBackground);
查看->设置属性(Qt::WA_TransparentForMouseEvents);
查看->设置样式表(“背景:透明;边框:无;颜色:白色;”);
查看->隐藏();
}
MainWindow::~MainWindow()
{
删除用户界面;
}
void主窗口::menuTriggered()
{
查看->移动(QCursor::pos());
查看->显示();
QMetaObject::invokeMethod(对象,“openMenu”);
}
main.qml

导入QtQuick 2.0
导入QtQuick.Extras 1.4
导入QtQuick.Controls 1.4
导入QtQuick.Controls.Styles 1.4
项目{
id:项目1
宽度:菜单。宽度+50
高度:pieMenu.高度+80
函数openMenu(){
pieMenu.弹出窗口(宽度/2,高度/2)
}
馅饼菜单{
id:Piemon
anchors.verticalCenter:父级.verticalCenter
0.VerticalCenter偏移:0
高度:宽度
对象名称:“菜单”
triggerMode:triggerMode.TriggerOnPress
梅努伊特姆{
案文:“行动1”
未触发:打印(“操作1”)
}
梅努伊特姆{
案文:“行动2”
未触发:打印(“操作2”)
}
梅努伊特姆{
案文:“行动3”
未触发:打印(“操作3”)
}
}
}
python中的问题代码:

导入系统 从PySide2导入QtCore、QtWidgets、QtGui 从PySide2.QtQuickWidgets导入QQuickWidget 类MainWindow(QtWidgets.QMainWindow): def uuu init uuu(self,parent=None): super()。\uuuu init\uuuu(父级) ... ... self.view=QQuickWidget(self) self.view.setSource(QtCore.QUrl.fromLocalFile(“main.qml”)) self.view.setClearColor(QtCore.Qt.transparent) self.view.setAttribute(QtCore.Qt.WA_半透明背景) self.view.setAttribute(QtCore.Qt.WA_NoSystemBackground) self.view.setWindowFlags(QtCore.Qt.FramelessWindowHint| QtCore.Qt.Tool | QtCore.Qt.WindowStaysOnTopHint) self.object=self.view.rootObject() self.object.visibilityChanged.connect(self.menuTriggered) @QtCore.Slot() def菜单触发(自): self.view.move(QtGui.QCursor.pos()) self.view.show() QtCore.QMetaObject.invokeMethod(self.object,“openMenu”) 如果名称=“\uuuuu main\uuuuuuuu”: app=QtWidgets.QApplication([]) mainwindow=mainwindow() mainwindow.show() sys.exit(app.exec_())
您是否已经尝试过使用答案中建议的方法?我认为答案不适用于我的情况,我没有尝试从QWidget端手动制作任何动画。