qml TextArea/TextEdit 文本编辑框右键菜单contextMenu

QQuick2(Qt5、Qt6)没有自带的contextMenu(相关bug:[QTBUG-35598] QtQuick Controls TextField and TextArea miss mouse context menu - Qt Bug Tracker),你需要自己实现一个contextMenu。

使用Menu、MenuItem等来实现菜单,需要独立窗口的外面套一层Window {flags: Qt.ToolTip}

右键显示Menu的部分不要使用MouseArea或者TapHandler,前者会导致TextArea自身的hover效果消失,后者在TextArea无效(此为Qtbug,6.4.1版本和6.5.0 Beta1版本已修,涉及bug为:Loading...)。

推荐的操作是直接在TextArea使用onPressed或者onReleased 

onPressed: function(mouse) {
    if (mouse.button != Qt.RightButton) return
	var point = mapToGlobal(mouse.x, mouse.y)
	textArea.showMenu(point.x, point.y) //自己定义的显示菜单函数
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值