鱼C论坛

 找回密码
 立即注册
查看: 3302|回复: 2

[技术原创] QT动画制作(二十二)

[复制链接]
发表于 2017-3-13 08:54:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
效果:
104515davez9vcd95e1vmi.png
我为了省事把服务器端跟客户端合一起了,如果要用还是得把他们分开,注意一定要先开启服务器端后开客户端才行,不然没有响应。
main.qml文件:
  1. import QtQuick 2.5
  2. import QtQuick.Window 2.2

  3. Window {
  4.     visible: true
  5.     width: 640
  6.     height: 480
  7.     title: qsTr("服务器端")

  8.     MainForm {
  9. }
  10. }
复制代码

MainForm.ui.qml文件:
  1. import QtQuick 2.5
  2. Rect{}
复制代码

Rect.qml文件:
  1. import QtQuick 2.0
  2. import QtWebSockets 1.0
  3. import QtQuick.Controls 1.0
  4.   Rectangle {
  5.       width: 360
  6.       height: 360

  7.       function appendMessage(message) {
  8.           messageBox.text += "\n" + message
  9.       }
  10.       WebSocketServer {
  11.           id: server
  12.           listen: true
  13.           port:8080
  14.           onClientConnected: {
  15.               webSocket.onTextMessageReceived.connect(function(message) {//用传参接收信息
  16.                   appendMessage(qsTr("Server received message: %1").arg(message));//传过来的信息
  17.               });
  18.           }
  19.           onErrorStringChanged: {
  20.               appendMessage(qsTr("Server error: %1").arg(errorString));
  21.           }
  22.       }
  23.       WebSocket {
  24.                id: socket
  25.                url: "ws://127.0.0.1:8080"
  26.                onTextMessageReceived: appendMessage(qsTr("Client received message: %1").arg(message))
  27.                onStatusChanged: {
  28.                    if (socket.status == WebSocket.Error) {
  29.                        appendMessage(qsTr("Client error: %1").arg(socket.errorString));
  30.                    } else if (socket.status == WebSocket.Closed) {
  31.                        appendMessage(qsTr("Client socket closed."));
  32.                    }else if (socket.status == WebSocket.Open) {
  33.                        socket.sendTextMessage("Hello World");//如果接通就向接通方发送helloworld
  34.                    }
  35.                }
  36.                active: true
  37.            }
  38.       Text{
  39.           id:messageBox
  40.           anchors.centerIn: parent
  41.           width:50
  42.           height: 50
  43.       }
  44.       Column{
  45.           spacing: 2
  46.       Rectangle{
  47.           width:80
  48.           height:80
  49.           border.width: 1
  50.           border.color: "green"
  51.       TextInput{
  52.         id:input
  53.         width:70
  54.         height: 50
  55.         focus:true
  56.       }
  57.       }
  58.       Button{
  59.           id:send
  60.           text:"发送"
  61.           onClicked: socket.sendTextMessage(input.text)//点击后把文本输入框里的内容发出去
  62.       }
  63.       }
  64.   }
复制代码

Preview: 明天用Timer属性做一个数字时钟,还有一个小日历

评分

参与人数 2荣誉 +9 鱼币 +5 贡献 +3 收起 理由
朝闻夕死 + 4 热爱鱼C^_^
不二如是 + 5 + 5 + 3 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-3-13 10:36:33 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-14 14:53:49 | 显示全部楼层
都是大神啊!看来我也要掌握两门语言。
顺带请求@alltolove 赞助5鱼C
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-28 03:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表