C

Qt VNC 服务器 - VncChat 示例

演示如何创建一个简单应用程序,它使用 Qt VNC 服务器。

VncChat 演示了 Qt VNC 服务器 模块的使用。

示例是一个非常基本且杂乱的聊天应用程序,它由一个文本编辑器组成,在 VNC® 兼容客户中公开,任何人在任何时间都可以编辑。

文本编辑器和其框架被一个 VncItem 包围,导致它可以通过连接自动共享。

VncItem {
    id: grabber
    anchors.fill: parent

    vncPort: -1

    Rectangle {
        id: editorFrame
        anchors.fill: parent
        anchors.margins: window.width * 0.1
        radius: window.width * 0.1

        color: "gainsboro"
        TextArea {
            id: textArea
            anchors.fill: parent
            anchors.margins: window.width * 0.1
            background: null
            placeholderText: "Say something nice"
            placeholderTextColor: "darkslategrey"
        }
    }
}

只共享 VncItem 的内容,因此围绕它的彩色框架和应用程序标题仅在本地可见。

VncItem 请求的端口设置为 -1。

vncPort: -1

这意味着服务器将循环从端口 5900 到 5999,直到找到一个可用端口。如果服务器运行在默认端口 5900 已被其他应用程序(例如远程桌面共享机制)占用的机器上,自动选择端口可能很方便。实际选择的端口信息将被显示,以便可以与客户共享。

Label {
    id: portLabel
    anchors.top: titleLabel.bottom
    anchors.horizontalCenter: activeRect.horizontalCenter
    text: grabber.serverState === VncItem.Connected
          || grabber.serverState === VncItem.Listening
          ? "(Port " + grabber.vncPort + " is open for business)"
          : (grabber.serverState === VncItem.InitializationFailed ? "(Error initializing server)" : "")
    font.pixelSize: window.height * 0.015
}

最后,本地运行的程序有一个围绕 VncItem 的框架,其颜色取决于客户端是否已连接。在屏幕截图中,这是深海绿,表示已连接客户端。如果没有客户端连接,它将是“鲑鱼”颜色。

color: grabber.serverState === VncItem.Connected ? "darkseagreen" : "salmon"

文件

在某些 Qt 许可证下可用。
了解更多。