标题:QML:如何添加信号槽?
作者:kelvinyeah
日期:2010-09-10 17:30
内容:
小弟在做个小便签,也是根据里面的例子改的,呈现如下图:
可以随意拖动,填写文字。
现在我希望通过双击该标签的MouseArea复制一个同样的标签页,或者用鼠标的中键、右键都可以。
请问:应该如何建立这样的信号槽?
代码如下:
import Qt 4.7
Item {
id: sticky
width: 800
height: 450
scale: 0.7
Image {
id: scrappaper
x: 8 + -width * 0.5 /4; y: -10
source: "note-yellow.png"
scale: 0.6; transformOrigin: Item.TopLeft
smooth: true
}
TextEdit {
id:myText
x: -1; y: 36;// width: 30; height: 100
smooth: true
font.pixelSize: 24
readOnly: false
rotation: -8//文字的方向定义为与标签图片一致
}
Item {
x: scrappaper.x; y: -20
width: scrappaper.width * scrappaper.scale
height: scrappaper.height * scrappaper.scale
MouseArea {
id: mouse
anchors.fill: parent
drag.target: sti ..
#1 [kelvinyeah 09-10 17:36]
就是下方这个图片
#2 [beaujolais 09-10 18:08]
主要复制这个工作
我的想法:可以把你的数据保存出去到一个C++类中,比如你的便签上有string,将它赋值到一个C++类中比如palett.str。
把你的便签做一个通用的框架BianQian { 你上边那堆代码},保存为BianQian.qml,然后再你发出复制信号后,再次调用BianQian{ string:palette.str;其它属性设置}
然后在安排一个位置应该就行啦。
主要是QML与C++的数据交互,数据拿到C++中去处理还是非常方便的。
请参考:Assistant --->Using QML in C++ Applications
#3 [kelvinyeah 09-11 09:56]
谢谢LS的大侠,我再尝试一下
#4 [yyxl 11-09 18:44]
drag.target
#5 [fg313071405 03-08 17:42]
这个玩意好玩