绝对精彩:在网页里做类似window右键的弹出式菜单

做一个类似于window右键的弹出式菜单。

直接下载js文件和观看效果: http://202.114.98.14/~cityhunter/jscripts/jscripts.htm
代码如下: 

var obj;

function loadobj(o)
{
  obj=o;
}

function expand()
{
  var h=parseInt(obj.height);
  var w=parseInt(obj.width);
  var op=10;

  if( h<=170 )
  {
    if( w<60 )
      obj.style.width=w+6;

    obj.style.height=h+17;

    x=setTimeout('expand()', 25);
  }
  else
  {
    obj.style.width=60;
    obj.style.height=174;
    clearTimeout(x);
  }
}

var drag=0;
var move=0;
function Dblclick()
{
  if (event.button==0)
    {
      obj.style.visibility="visible";
      obj.style.left=window.event.x;
      obj.style.top =window.event.y;
      obj.style.width=0;
      obj.style.height=0;

      obj.filters.item(0).apply();
      obj.filters.item(0).transition = 25;
      obj.filters(0).play(0.5);

      expand();
    }
}

function MouseMove()
{
  if(move==1)
    {
      obj.style.cursor="move";
      obj.style.left=window.event.x-l;
      obj.style.top=window.event.y-t;
    }
}

function MouseDown()
{
  if(drag) 
    {
      l = window.event.x - parseInt(obj.style.left);
      t = window.event.y - parseInt(obj.style.top);
      obj.style.zIndex+=1;
      move=1;
    }
  else
    {
      document.body.style.cursor='default';
      obj.style.visibility='hidden';
    }
}

function MouseStop()
{
  window.event.returnValue=false;
}

function MouseUp()
{
  move=0;
  obj.style.cursor="hand";
}

document.οndblclick=Dblclick;
document.οnmοusedοwn=MouseDown;
document.οnmοusemοve=MouseMove;
document.οndragstart=MouseStop;
document.οnmοuseup=MouseUp;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过QMenu类实现在QTableWidget上右键弹出快捷菜单的功能。以下是实现该功能的示例代码: ``` from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QMenu, QAction from PyQt5.QtCore import Qt class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.table = QTableWidget() self.table.setRowCount(3) self.table.setColumnCount(3) for i in range(3): for j in range(3): item = QTableWidgetItem("Item %d,%d" % (i, j)) self.table.setItem(i, j, item) self.setCentralWidget(self.table) # 创建快捷菜单 self.contextMenu = QMenu(self) self.deleteAction = QAction("删除", self) self.deleteAction.triggered.connect(self.deleteItem) self.contextMenu.addAction(self.deleteAction) # 将快捷菜单绑定到table上 self.table.setContextMenuPolicy(Qt.CustomContextMenu) self.table.customContextMenuRequested.connect(self.showContextMenu) self.show() def showContextMenu(self, pos): # 显示快捷菜单 self.contextMenu.exec_(self.table.mapToGlobal(pos)) def deleteItem(self): # 删除选中的item for item in self.table.selectedItems(): self.table.removeItemWidget(item) del item if __name__ == '__main__': app = QApplication([]) window = MainWindow() app.exec_() ``` 在该示例中,首先创建了一个QTableWidget并添加了一些数据。然后创建了一个QMenu作为快捷菜单,同时创建了一个QAction作为菜单项,并将其与一个deleteItem函数关联。该函数会删除选中的item。 接着将快捷菜单绑定到table上,当用户右键点击table时,就会触发customContextMenuRequested信号,从而显示快捷菜单。 最后,通过调用exec_方法显示快捷菜单,并在用户点击菜单项时调用deleteItem函数删除选中的item。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值