社区
Qt
帖子详情
请教关于QTreeWidget的若干问题
prettyknight
2010-12-16 03:24:11
1、如何为QTreeWidget添加右键菜单?要求右击部分节点后会弹出这个菜单。
2、节点移动功能已实现,但有部分节点不允许拖动后成为根节点,请问该如何实现?
3、如何让QTreeWidget实现:按Ctrl+z后Undo,按Ctrl+r后Redo?比如说:撤销或重做节点的重命名。
...全文
630
12
打赏
收藏
请教关于QTreeWidget的若干问题
1、如何为QTreeWidget添加右键菜单?要求右击部分节点后会弹出这个菜单。 2、节点移动功能已实现,但有部分节点不允许拖动后成为根节点,请问该如何实现? 3、如何让QTreeWidget实现:按Ctrl+z后Undo,按Ctrl+r后Redo?比如说:撤销或重做节点的重命名。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhongyi0417
2012-06-12
打赏
举报
回复
不知楼主后来撤销undo操作做得如何了?可否让我借鉴一下?
prettyknight
2010-12-19
打赏
举报
回复
to 7楼:
不用派生,此函数是QTreeView的虚函数,只需在.h中声明,.cpp中重写一下即可
怎样重写?举个最最基本的例子给我就行了。
还有,我要的是当且仅当右击指定的节点时弹出菜单,而不是随便右击树形控件的某个地方就弹出菜单。用mousePressEvent能实现吗?
wsy87217
2010-12-17
打赏
举报
回复
跟着学习下!
人到中年琐事多
2010-12-17
打赏
举报
回复
用Creater生成一个工程,只拉一个QTreeView到QWidget上
在.H中声明Action变量:
private:
Ui::Widget *ui;
QAction *copy;//示例菜单项一
QAction *cut; //示例菜单项二
在.CPP文件的构造函数:
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
copy = new QAction("Copy", ui->treeView); //初始化
cut = new QAction("Cut", ui->treeView);
//这里可以连接信号...
ui->treeView->addAction(copy); //给QTreeView的对象添加Action
ui->treeView->addAction(cut);
ui->treeView->setContextMenuPolicy(Qt::ActionsContextMenu);//设置右键菜单
}
OK了,经过测试,完全满足你的要求:在QTreeView上右击鼠标,就弹出有Copy和Cut两项内容的菜单
人到中年琐事多
2010-12-17
打赏
举报
回复
瞎说了一句,==,我测试一个方法如果好了再说
人到中年琐事多
2010-12-17
打赏
举报
回复
不用派生,此函数是QTreeView的虚函数,只需在.h中声明,.cpp中重写一下即可
prettyknight
2010-12-17
打赏
举报
回复
如果用楼上的方法,岂不是要写QTreeView的派生类了吗?
我的界面比较复杂,这样做会大大增加界面设计的难度。
人到中年琐事多
2010-12-17
打赏
举报
回复
void QTreeView::mousePressEvent ( QMouseEvent * event )
{
if(event->button() == Qt::RightButton)
{
弹出菜单;
}
}
Undo系统麻烦一些,查查资料如果有再来
prettyknight
2010-12-16
打赏
举报
回复
1:应该不那么简单,我试过好几种方法了,楼上说的、SIGNAL(customContextMenuRequested(const QPoint&))……都没成功。理论上可以写控件的派生类然后用contextMenuEvent()来实现,问题是我的界面整体比较复杂,这样做会加大界面设计的难度。
sduxiaoxiang
2010-12-16
打赏
举报
回复
设置role
响应键盘事件
prettyknight
2010-12-16
打赏
举报
回复
1:我要求的是右击后才弹出菜单。如果用itemClicked的话好像左击也会弹出菜单,那就不符合要求了
2:把什么对象设置为根节点?把什么属性设为不可移动?我找了很久,发现不容易找到:
wyjam
2010-12-16
打赏
举报
回复
1,创建QMenu然后,itemClicked信号对应写个槽实现菜单弹出。
2,设置为根节点,对应的属性设置为不可移动。
3,第三个没有遇到,可能要捕捉键盘消息。作处理。QTreeWidgetItem。
向别人
请教
问题
,不要这样开头
我们经常会有
请教
别人
问题
的时候,而下面这几种是不太建议的提问开头 在吗? 能问你一个
问题
吗? 有谁知道xxx吗? 当然你向我提问的时候,也不用称呼为大佬或者大神之类的,我就是一个普通的开发者。...
英文邮件礼仪:向教授
请教
学术
问题
英文邮件礼仪:向教授
请教
学术
问题
邮件主题 邮件主题(subject)不需要写自己的名字。名字是在邮件系统设置里设定好的,在发件时会替换显示实际地址,所以无需在主题里再写一遍。 [关键内容是要在主题里就写...
请教
关于CVX工具包优化结果为NaN的
问题
请教
关于CVX工具包优化结果为NaN的
问题
最近用CVX工具包求解L1正则化
问题
,第一次选取的正则化参数为lambda1,可以求出一个结果,但第二次选取的正则化参数为lambda2,却得到无穷大NaN的结果;最神奇的是当我再次选取...
请教
ChatGPT
若干
个关于测试开发职业发展的
问题
最近比较热门的ChatGDT,正好有空,问它几个比较热门的
问题
,看看如何答复? 1.测试开发未来怎么样? 未来的测试和开发将更加自动化, 自动化测试和开发的工具和技术将更加完善, 对于提升软件开发效率和质量起到了...
Qt
5学习笔记(3)——树形控件
Qt
ree
Widget
准备给
Qt
ree
Widget
Item设置外部图片Icon,以为直接把图片复制到工程根目录下,然后程序里写路径就可以了,结果我错了,没有这么简单。后来
请教
了别人才知道应该把图片作为
Qt
资源文件添加进去,然后才可以使用。 ...
Qt
16,216
社区成员
26,595
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章