Window系统右键菜单功能实现

一、需求:

	1、在window系统的右键菜单中添加一个exe功能项、达到启动exe效果。
	2、在选择文件时可以将被选中文件路径信息作为exe的启动参数

二、实现机制:

	功能实现需要利用win系统现有的注册表和自己实现参数获取、功能实现。
	1、查阅资料、总结win系统可以在注册表中实现右键菜单item的添加、只需要遵循相关规范即可以实现右键添加、启动。
	2、注册表可以将数据传递给exe、exe需要调用API获取到所需数据。

三、具体实现

1、注册表添加item

	本次实现是在iss脚本中、其脚本语言支持对win系统注册表操作。需要明确操作宏,
此处简单介绍应用、更多内容需要自己百度查询。
//注册表使用语法
[Registry]
Root: HKCR; Subkey: "路径名称"; ValueType: string; ValueName: "itme名称"; ValueData: "带参数据"; Flags:标识
**举例:在HKCP下的*\shell路径下添加自己的程序A、所需要的带参类型为字符串类型。**
HKCR:是HKEY_CLASSES_ROOT的简称,即win系统注册表。
Subkey:是要操作的路径、即在某个路径下创建*\shel\A。
ValueType、ValueName、ValueData是在当前项下创建什么类型的注册表项、名字叫什么、参数是啥。
win的参数分为字符串和char*、char*遇到空格截断、需要额外注意。建议使用字符串形式。

在这里插入图片描述

2、参数获取

int main(int argc, char *argv[]){
	QStringList argun = QCoreApplication::arguments();
	QString qstrValue = argun.at();
}
这个地方注意、如果注册表里获取带参的表示使用的为 %1,则此处获取的数据为不完整数据、例如将文件拷贝、产生的副本中带有空格、此处获取的路径数据是副本文件路径第一个空格前得数据。建议注册表中使用字符串获取
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QTableWidget 右键菜单实现可以通过以下步骤来完成: 1. 创建一个自定义的 QMenu 对象,将需要添加的菜单项添加到该对象中。 2. 在 QTableWidget 上设置一个右键菜单事件过滤器,用于捕获右键菜单事件。 3. 在事件过滤器中判断是否为右键菜单事件,如果是则在鼠标坐标处弹出自定义的 QMenu。 以下是一个简单的示例代码: ```python from PyQt5.QtWidgets import QMenu, QTableWidget, QTableWidgetItem, QWidget, QVBoxLayout, QApplication from PyQt5.QtCore import Qt class MyTable(QWidget): def __init__(self): super().__init__() # 创建表格 self.table = QTableWidget(4, 4, self) self.table.setHorizontalHeaderLabels(['Name', 'Age', 'Gender', 'Country']) self.table.setVerticalHeaderLabels(['Row 1', 'Row 2', 'Row 3', 'Row 4']) # 设置右键菜单事件过滤器 self.table.setContextMenuPolicy(Qt.CustomContextMenu) self.table.customContextMenuRequested.connect(self.show_menu) # 创建自定义菜单 self.menu = QMenu(self) self.menu.addAction('Action 1') self.menu.addAction('Action 2') self.menu.addAction('Action 3') # 设置布局 layout = QVBoxLayout(self) layout.addWidget(self.table) def show_menu(self, pos): # 在鼠标坐标处弹出菜单 self.menu.exec_(self.table.mapToGlobal(pos)) if __name__ == '__main__': app = QApplication([]) window = MyTable() window.show() app.exec_() ``` 在上面的示例代码中,我们创建了一个 QTableWidget,设置了一个右键菜单事件过滤器,并在事件过滤器中弹出了一个自定义的 QMenu。你可以根据自己的需要修改菜单项的名称和功能

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值