聊天界面构建
创建成功如下图:
文件路径不能有中文,否则编译不通过。
构建窗口
双击窗口的
F
o
r
m
s
Forms
Forms 文件下的
s
m
a
r
t
c
h
a
t
e
r
w
i
d
g
e
t
.
u
i
smartchaterwidget.ui
smartchaterwidget.ui
点击
D
i
s
p
l
a
y
W
i
d
g
e
t
s
Display Widgets
DisplayWidgets 下面的标签
L
a
b
e
l
Label
Label,文本框显示的标题,然后点击
I
t
e
m
W
i
d
g
e
t
s
(
I
t
e
m
−
B
a
s
e
d
)
下
面
的
L
i
s
t
W
i
d
g
e
t
s
Item Widgets(Item-Based)下面的 List Widgets
ItemWidgets(Item−Based)下面的ListWidgets,然后点击
I
n
p
u
t
W
i
d
g
e
t
s
Input Widgets
InputWidgets 下的
l
i
n
e
e
d
i
t
line edit
lineedit,设置按钮点击
B
u
t
t
o
n
s
Buttons
Buttons 下的
P
u
s
h
B
u
t
t
o
n
s
Push Buttons
PushButtons,最后就是按钮对其的操作,按照如下图操作:
对齐后如下图所示:
标题居中操作:
完成后如下图所示:
图形界面信息的传输与读取自此构建完成。
聊天界面信息提取与显示
信号和槽可以看帮助文档里面的内容,方便查阅。
自动产生如下的函数
void SmartChaterWidget::on_lineEdit_returnPressed() { }
如果操作失误,要在
.
h
.h
.h 和
.
c
p
p
.cpp
.cpp 删除对应的文件。
qdebug() 需要添加头文件 QDebug
响应成功的界面:
qDebug()<<ui->lineEdit->text(); //获取界面输入控件内的文本信息
ui->listWidget->addItem(ui->lineEdit->text()); //将文本信息显示在标题下的控件中
聊天文本信息发送
流程图:
QT中创建网络
QT网络连接编程过程
**1.在 pro 文件中添加 network
2.在 .h 文件中添加头文件 #include
3.在类的 private 区域添加一个定义:QTcpSocket socket
4.在构造函数 SmartChaterWidget::SmartChaterWidget(QWidget parent)
里面的 ui->setupUi 下面添加 socket = new QTcpSocket(this);
TCP是有连接的,UDP是没有连接的
转到槽过后点击
c
l
i
c
k
e
d
(
)
clicked()
clicked()
生成如下函数:
void SmartChaterWidget::on_pushButton_clicked() { }
下图所示表示连接成功:
void SmartChaterWidget::on_pushButton_clicked()
{
qDebug()<<"connect to cloud";
socket->connectToHost("124.70.148.79",33780);
socket->waitForConnected(5000);
if(socket->state() ==QAbstractSocket::ConnectedState)
ui->listWidget->addItem("connected");
else
ui->listWidget->addItem("not connected");
}
服务端信息接收并显示
. h .h .h 文件下的 p r i v a t e s l o t s : private slots: privateslots: 下添加
void slot_readsocket(); //此槽函数可以和 socket 的readyRead()信号连接
. c p p .cpp .cpp 文件下添加构造函数
void SmartChaterWidget::slot_readsocket()
{
qDebug()<<"socket have data_arrived";
}
测试成功画面:
回环测试成功图:
总结
这是一个QT课程里面的学习笔记,个人完全没有学习到什么,不知所以然,完全按照老师的步骤完成,直播内容就是连接一下,让机器人接受命令,执行指令,准备考研,但是怕被嫌弃,毕竟双非,学习压力蛮大的。静下心来,自己慢慢沉淀吧,英语真的重要,真对不起方方老师,现在英语水平退步太大,大学英语全靠高中基础+大学老师不杀之恩,运气还算不错。