• 4930阅读
  • 14回复

[提问]請問各位大師 有關XOR的問題 [复制链接]

上一主题 下一主题
离线tonylin
 
只看楼主 倒序阅读 楼主  发表于: 2012-08-06
請問各位大師
在QT creator 上要如何實現xor pen的功能呢??
感恩!!
离线benbenmajia

只看该作者 1楼 发表于: 2012-08-06
没看明白具体需求
安然.....
离线tonylin
只看该作者 2楼 发表于: 2012-08-06
回 1楼(benbenmajia) 的帖子
我想在frame 上實作一個 rubberband line 的功能
請問可甚麼方法嗎??
感謝您
离线benbenmajia

只看该作者 3楼 发表于: 2012-08-06
回 2楼(tonylin) 的帖子
比如呢?
改变的规律是什么?
安然.....
离线tonylin
只看该作者 4楼 发表于: 2012-08-06
回 3楼(benbenmajia) 的帖子
比如說 像滑鼠在桌布上
左鍵按下不放
拖曳之後
會呈現一個 隨滑鼠移動而改變大小的框

感恩
离线benbenmajia

只看该作者 5楼 发表于: 2012-08-06
事件:
1,mousepress,标记左键按下事件
2, mousemove,追踪鼠标移动坐标
3,update调用paintevent重绘矩形框
安然.....
离线tonylin
只看该作者 6楼 发表于: 2012-08-06
回 5楼(benbenmajia) 的帖子
這個方法我知道
感謝您
可是 當背景非常複雜的時候
此方法的效率就會顯得不夠高
請問有 方法可以實現XOR pen的效果嗎??
感恩
离线benbenmajia

只看该作者 7楼 发表于: 2012-08-06
回 6楼(tonylin) 的帖子
不论什么方法都是这样实现的
安然.....
离线jdwx

只看该作者 8楼 发表于: 2012-08-06
回 6楼(tonylin) 的帖子
Qt好像没有XORpen
实现要比较曲折:
建立一个类变量QPixmap,在上面画线,paintEvent里贴到屏幕上。
移动鼠标->清除QPixmap->重画->paintEvent。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线benbenmajia

只看该作者 9楼 发表于: 2012-08-06
回 8楼(jdwx) 的帖子
单式绘制矩形的过程是不会变的,还是要这么操作才行,就算是贴图也避免不了
安然.....
离线jdwx

只看该作者 10楼 发表于: 2012-08-06
回 9楼(benbenmajia) 的帖子
忘说了另外的部分也要画在QPixmap上,paintEvent里面贴图。
这样就不会有问题了。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线tonylin
只看该作者 11楼 发表于: 2012-08-06
回 8楼(jdwx) 的帖子
這樣當背景圖案一旦非常複雜
重繪就會非常耗時間
難道沒有其他的方法嗎??
离线jdwx

只看该作者 12楼 发表于: 2012-08-06
painter->setCompositionMode(QPainter::CompositionMode_Xor)
可以试试上面的函数,有没有效果。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线tonylin
只看该作者 13楼 发表于: 2012-08-07
回 12楼(jdwx) 的帖子
感謝您
我試試看了
速度似乎還是不夠快
而且我的畫的線從白色變成黑色了
离线jdwx

只看该作者 14楼 发表于: 2012-08-07
回 13楼(tonylin) 的帖子
还是用老办法吧 两个QPixmap,尽可能优化,减小需要重绘的部分。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
快速回复
限100 字节
 
上一个 下一个