找回密码
 立即注册
收起左侧

在qml上面有的蓝色的变量我找不着定义,蓝色的和JavaScript....

8
回复
6922
查看
[复制链接]
累计签到:230 天
连续签到:1 天
来源: 2015-6-30 16:10:35 显示全部楼层 |阅读模式
5Qter豆
本帖最后由 木村拓哉 于 2015-7-1 08:37 编辑

我看的是QML WebSocket Server Example这个例程,里面有蓝色的变量“message”、“webSocket”我就是找不着定义,蓝色的好像都是和JavaScript有关的代码吧?求大家帮忙看一下,我直接把源码copy上来。
工程里面就一个main.qml文件和一个main.cpp文件。我确认mian.cpp上没有相关的定义。
  1. import QtQuick 2.0
  2. import Qt.WebSockets 1.0

  3. Rectangle {
  4.     width: 360
  5.     height: 360

  6.     function appendMessage(<font color="#4169e1">message</font>) {
  7.         messageBox.text += "\n" + <font color="#4169e1">message</font>
  8.     }

  9.     WebSocketServer {
  10.         id: server
  11.         listen: true
  12.         onClientConnected: {
  13.             <font color="#4169e1">webSocket</font>.onTextMessageReceived.connect(function(<font color="#4169e1">message</font>) {
  14.                 appendMessage(qsTr("Server received message: %1").arg(<font color="#4169e1">message</font>));
  15.                 <font color="#4169e1">webSocket</font>.sendTextMessage(qsTr("Hello Client!"));
  16.             });
  17.         }
  18.         onErrorStringChanged: {
  19.             appendMessage(qsTr("Server error: %1").arg(errorString));
  20.         }
  21.     }

  22.     WebSocket {
  23.         id: socket
  24.         url: server.url
  25.         onTextMessageReceived: appendMessage(qsTr("Client received message: %1").arg(<font color="#4169e1">message</font>))
  26.         onStatusChanged: {
  27.             if (socket.status == WebSocket.Error) {
  28.                 appendMessage(qsTr("Client error: %1").arg(socket.errorString));
  29.             } else if (socket.status == <font color="#4169e1">WebSocket</font>.Closed) {
  30.                 appendMessage(qsTr("Client socket closed."));
  31.             }
  32.         }
  33.     }

  34.     Text {
  35.         id: messageBox
  36.         text: qsTr("Click to send a message!")
  37.         anchors.fill: parent

  38.         MouseArea {
  39.             anchors.fill: parent
  40.             onClicked: {
  41.                 socket.sendTextMessage(qsTr("Hello Server!"));
  42.             }
  43.         }
  44.     }
  45. }
复制代码

最佳答案

查看完整内容

有些不需要定义的,可能是单例模式,import了后就固定有一个实例在内存。 可能是你不熟悉qml吧
回复

使用道具 举报

尚未签到

2015-6-30 16:10:36 显示全部楼层
木村拓哉 发表于 2015-7-3 09:27
5.4的文档里面有,貌似程序里面直接没定义这个Type就用了,我QML用的不多,所以也没搞懂,只能依葫芦画瓢 ...

有些不需要定义的,可能是单例模式,import了后就固定有一个实例在内存。

可能是你不熟悉qml吧
回复

使用道具 举报

尚未签到

2015-6-30 16:50:12 显示全部楼层
看着好像没问题啊,你说的那几个变量好像是信号传过来的参数而已。

你运行看看有没有问题,变量没有定义会报错的

点评

message我看了几个好像是function里的参数,但是function外面也有message我就看不懂了。怪我JavaScript没怎么认真学  详情 回复 发表于 2015-7-1 08:39
运行没有问题,因为是QT自带的例程。我就奇怪这里只有一个main.qml文件,找不着其它文件了。message和webSocket这两个没找着定义。  详情 回复 发表于 2015-7-1 08:33
回复

使用道具 举报

累计签到:230 天
连续签到:1 天
2015-7-1 08:33:30 显示全部楼层
Joey_Chan 发表于 2015-6-30 16:50
看着好像没问题啊,你说的那几个变量好像是信号传过来的参数而已。

你运行看看有没有问题,变量没有定义会 ...

运行没有问题,因为是QT自带的例程。我就奇怪这里只有一个main.qml文件,找不着其它文件了。message和webSocket这两个没找着定义。
回复

使用道具 举报

累计签到:230 天
连续签到:1 天
2015-7-1 08:39:33 显示全部楼层
Joey_Chan 发表于 2015-6-30 16:50
看着好像没问题啊,你说的那几个变量好像是信号传过来的参数而已。

你运行看看有没有问题,变量没有定义会 ...

message我看了几个好像是function里的参数,但是function外面也有message我就看不懂了。怪我JavaScript没怎么认真学
回复

使用道具 举报

尚未签到

2015-7-1 21:01:56 显示全部楼层
木村拓哉 发表于 2015-7-1 08:33
运行没有问题,因为是QT自带的例程。我就奇怪这里只有一个main.qml文件,找不着其它文件了。message和web ...

webSocket 可能还没有文档出来,你去官网找找。 那几个应该是这个新库里面的东西

点评

5.4的文档里面有,貌似程序里面直接没定义这个Type就用了,我QML用的不多,所以也没搞懂,只能依葫芦画瓢了  详情 回复 发表于 2015-7-3 09:27
回复

使用道具 举报

累计签到:1497 天
连续签到:1 天
2015-7-2 14:21:06 显示全部楼层
按住Ctrl键,然后用鼠标点webSocket试下。在main.cpp里定义的对象在qml里也会是蓝色的

点评

恩,这个变量在main.cpp里面确实没有定义,不过后来直接在帮助索引里面找着了,是一个QML Type。貌似可以直接不定义就用?  详情 回复 发表于 2015-7-3 09:24
回复

使用道具 举报

累计签到:230 天
连续签到:1 天
2015-7-3 09:24:55 显示全部楼层
零之光 发表于 2015-7-2 14:21
按住Ctrl键,然后用鼠标点webSocket试下。在main.cpp里定义的对象在qml里也会是蓝色的 ...

恩,这个变量在main.cpp里面确实没有定义,不过后来直接在帮助索引里面找着了,是一个QML Type。貌似可以直接不定义就用?
回复

使用道具 举报

累计签到:230 天
连续签到:1 天
2015-7-3 09:27:02 显示全部楼层
Joey_Chan 发表于 2015-7-1 21:01
webSocket 可能还没有文档出来,你去官网找找。 那几个应该是这个新库里面的东西 ...

5.4的文档里面有,貌似程序里面直接没定义这个Type就用了,我QML用的不多,所以也没搞懂,只能依葫芦画瓢了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了