社区
Qt
帖子详情
请教关于QTreeWidget的若干问题
prettyknight
2010-12-16 03:24:11
1、如何为QTreeWidget添加右键菜单?要求右击部分节点后会弹出这个菜单。
2、节点移动功能已实现,但有部分节点不允许拖动后成为根节点,请问该如何实现?
3、如何让QTreeWidget实现:按Ctrl+z后Undo,按Ctrl+r后Redo?比如说:撤销或重做节点的重命名。
...全文
685
12
打赏
收藏
请教关于QTreeWidget的若干问题
1、如何为QTreeWidget添加右键菜单?要求右击部分节点后会弹出这个菜单。 2、节点移动功能已实现,但有部分节点不允许拖动后成为根节点,请问该如何实现? 3、如何让QTreeWidget实现:按Ctrl+z后Undo,按Ctrl+r后Redo?比如说:撤销或重做节点的重命名。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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。
(转)
请教
QT
ree
Widget
如何设置让节点之间显示连线(虚线)
http://t.csdnimg.cn/5vljP
向别人
请教
问题
,不要这样开头
前言 我们经常会有
请教
别人
问题
的时候,而下面这几种是不太建议的提问开头 在吗? 能问你一个
问题
吗? 有谁知道xxx吗? 当然你向我提问的时候,也不用称呼为大佬或者大神之类的,我就是一个普通的开发者。 为什么 毋庸置疑,你提问的目的自然是想得到解答,而上面三种提问方式都有一个共性,就是在看到上面的
问题
之后,仍然不知道具体
问题
是什么,而要简单回复之后才能得到真...
英文邮件礼仪:向教授
请教
学术
问题
英文邮件礼仪:向教授
请教
学术
问题
邮件主题 邮件主题(subject)不需要写自己的名字。名字是在邮件系统设置里设定好的,在发件时会替换显示实际地址,所以无需在主题里再写一遍。 [关键内容是要在主题里就写明白是否有推荐人,以及主要是什么事。很多教授只看主题。] 一个好的标题,要能简洁地概括邮件的目的或内容。如果你对教授的某个研究项目感兴趣,就可以用这个研究方向作标题,例如"De
聊聊
请教
技术
问题
的正确方式
在日常生活中会经常遇到不懂的技术
问题
,好不容易找到这方面的行家,申请添加微信或QQ对方也通过了。但当发消息
请教
时却如石沉大海,毫无回音。难道技术大牛都那么高冷么? 当你备注了添加好友的原因,如果对方通过了,其实已经表明愿意就此内容与你沟通交流。但为什么当你发消息时却得不到回应?这不排除对方很忙,忙得忘记回答你的
问题
。更大的可能是你的提问或沟通方式不对。 最近作为被问者,被此
问题
困扰了好久,甚至在某...
请教
关于CVX工具包优化结果为NaN的
问题
请教
关于CVX工具包优化结果为NaN的
问题
最近用CVX工具包求解L1正则化
问题
,第一次选取的正则化参数为lambda1,可以求出一个结果,但第二次选取的正则化参数为lambda2,却得到无穷大NaN的结果;最神奇的是当我再次选取正则化参数为lambda1时,得到的结果也变为了无穷大NaN.以下是我的代码,请问这个
问题
该如何解决,谢谢! function X=L1L2_OPT(A,y,m,lambda) LN=1; x_L=-0.2*ones(m,1);x_U=0.5*ones(m,1); X=zeros(
Qt
19,203
社区成员
35,318
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章