js右击弹出菜单

2008-07-29 13:50

<script language='javascript'>
/*******js右击弹出菜单***************/
var mname=new Array(
"首 页",
"修 改",
"下 载",
"删 除",
"新 建",
"刷 新"
);
//mname是菜单对应的名称,数组的个数必须与下面murl对应

var murl=new Array(
"window.open('http://www.cn5.cn','_blank','');",
"alert('修改');",
"alert('download');",
"alert('delete');",
"alert('new');",
"alert('refresh');"
);
//murl是菜单对应的操作,可以是任意javascript代码但是要注意不要在里面输入\",只能用'
//如果要实现跳转可以这样window.location='url';
var ph=18,mwidth=50;//每条选项的高度,菜单的总宽度
var bgc="#eee",txc="black";//菜单没有选中的背景色和文字色
var cbgc="darkblue",ctxc="white";//菜单选中的选项背景色和文字色

/****************以下代码请不要修改******************/
var mover="this.style.background='"+cbgc+"';this.style.color='"+ctxc+"';"
var mout="this.style.background='"+bgc+"';this.style.color='"+txc+"';"

document.oncontextmenu=function()
{
mlay.style.display="";
mlay.style.pixelTop=event.clientY;
mlay.style.pixelLeft=event.clientX;
return false;
}
function showoff()
{
mlay.style.display="none";
}

function fresh()
{
mlay.style.background=bgc;
mlay.style.color=txc;
mlay.style.width=mwidth;
mlay.style.height=mname.length*ph;
var h="<table width=100% height="+mname.length*ph+"px cellpadding=0 cellspacing=0 border=0>";
var i=0;
for(i=0;i<mname.length;i++)
{
h+="<tr align=center height="+ph+" onclick=\""+murl[i]+"\" onMouseover=\""+mover+"\" onMouseout=\""+mout+"\"><td style='font-size:9pt;'>"+mname[i]+"</td></tr>";
}
h+="</table>";
mlay.innerHTML=h;
}
</script>

<body onClick="showoff();" onload="fresh();">
<div id="mlay" style="position:absolute;display:none;cursor:default;" onClick="return false;"></div>
</body>


在QT 6.6.0版本中,QTextEdit是一个用于显示文本的控件,它支持WebAssembly(WASM),这意味着你可以将浏览器级别的JavaScript、HTML和CSS功能嵌入到Qt应用程序中。当你在QTextEdit上右键点击时,通常会触发默认的系统级上下文菜单,但如果你想自定义这个菜单,特别是在WebAssembly环境中,你需要按照以下步骤操作: 1. **创建QMenu实例**:首先,你需要创建一个`QMenu`对象来管理你想要添加到右键菜单的选项。 ```cpp QMenu *contextMenu = new QMenu(this); ``` 2. **添加项到菜单**:然后你可以使用`addAction()`函数添加自定义的`QAction`,它们可以链接到特定的槽函数(slot)或者直接执行一些操作。 ```cpp QAction *actionCopy = menu.addAction(tr("Copy")); QAction *actionPaste = menu.addAction(tr("Paste")); ``` 3. **绑定信号和槽**:对于每个动作,你可以连接相应的信号(如`aboutToTriggered()`)到槽函数,这通常是处理用户交互的地方。 ```cpp connect(actionCopy, &QAction::aboutToTrigger, this, &YourClass::copyText); //假设有个copyText槽函数 connect(actionPaste, &QAction::aboutToTrigger, this, &YourClass::pasteText); //同理,pasteText槽函数 ``` 4. **响应事件**:当用户在QTextEdit右键点击时,需要捕获并处理这个事件,比如通过`QEvent`或`QContextMenuEvent`来触发菜单显示。 ```cpp connect(yourTextEdit, static_cast<void (QTextEdit::*)(QEvent*)>(&QTextEdit::contextMenuRequested), this, &YourClass::showContextMenu); ``` 5. **显示菜单**:最后,在`showContextMenu`槽函数中显示你创建的`contextMenu`。 ```cpp void YourClass::showContextMenu(QEvent *event) { if (event->type() == QEvent::ContextMenu) { contextMenu->exec(event->globalPos()); } } ``` 请注意,以上示例代码未包含具体的槽函数实现。在实际应用中,你需要实现`copyText()`和`pasteText()`这样的方法,可能涉及到对文本的复制和粘贴操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值