首页| 论坛| 消息

标题:QML如何实现鼠标右键菜单,求助
作者:黑幕月色
日期:2015-01-11 17:40
内容:

可以的话帮忙写一小段我参考一下,比如说我右键后弹出一个类似网页的 复制黏贴菜单谢谢


#1 [咬蚊嚼渍 01-11 21:25]
用MouseArea就可以实现,只要改一下acceptedButtons就好,参考如下:
MouseArea{
anchors.fill: parent;
acceptedButtons: Qt.LeftButton | Qt.RightButton ;
onReleased: {
console.log("onReleased", mouse.button);
if(mouse.button == Qt.RightButton){
console.log("MouseArea RightButton");
}else{
console.log("MouseArea LeftButton");
}
}
}
有时间就看看文档还是比较好的,QT的文档非常棒
#2 [咬蚊嚼渍 01-11 21:27]
然后在这里,右键的时候可以捕捉到mouseX和mouseY,再在这个Point(mouseX, mouseY)出现个小界面就OK了
#3 [咬蚊嚼渍 01-11 21:53]
好吧,反正无聊,写了个例子,你可以把Loader改一下来实现你需要的功能。
MouseArea{
id:mouseMA;
anchors.fill: parent;
acceptedButtons: Qt.LeftButton | Qt.RightButton ;
onReleased: {
console.log("onReleased", mouse.button);
if(mouse.button == Qt.RightButton){
console.log("MouseArea RightButton");
loaderRightMenu.x = mouseMA.mouseX;
loaderRightMenu.y = mouseMA.mouseY;
loaderRightMenu.visible = true;
}else{
console.log("MouseArea LeftButton");
loaderRightMenu.visible = false;
}
}
}
Loader{
id:loaderRightMenu;
visible: false;
enabled: visible;
sourceComponent: Component{
& ..
#4 回 咬蚊嚼渍 的帖子 [黑幕月色 01-12 13:39]
咬蚊嚼渍:好吧,反正无聊,写了个例子,你可以把Loader改一下来实现你需要的功能。
MouseArea{
        id:mouseMA;
        anchors.fill: parent;
        ac .. (2015-01-11 21:53) 
谢谢! 刚接触QML 不是很熟悉,谢谢你的例子~

回复 发表
主题 版块