网盘——好友,图书界面设计

打开客户端项目,进行好友和图书界面的设计,关于TcpClient的相关代码,请看这篇文章

https://blog.csdn.net/wjl990316fddwjl/article/details/136989024

目录

1、界面

1.1、打开客户端,右键添加文件

1.2、写名称

 1.3、在opewidget.h里面包含头文件

 1.4、在构造函数里面,new出来

1.5、加两个项目测试一下

1.6、在main.cpp里引入并测试一下

2、在右边进行界面设计——好友界面

2.1、查看在线用户界面

2.1.1、新建一个类

2.1.2、Widget一个空的界面

2.1.3、给设计师界面类起名字

2.1.4、添加如下按键,并进行设计

2.1.5、双击在online_lw添加数据

2.1.6、在main函数里包含online.h头文件测试一下

2.2、显示聊天信息,好友列表界面

2.2.1、新建类

2.2.2、在friend.h里面引入头文件

2.2.3、在friend.h里面产生对象,生成指针

2.2.4、在friend.cpp里面创建出来

2.2.5、布局

2.2.6、测试一下,查看效果

2.2.7、在frend.h文件里面包含online.h头文件,产生online的对象

2.2.8、将online在构造函数里面产生出来

2.2.9、将online添加到widget里面

2.2.10、添加online的信号槽

A、在friend.h里,添加信号槽

B、定义信号槽

C、关联信号槽

D、展示

3、界面设计——图书界面

3.1、添加类

4、将好友和图书界面添加到操作界面

4.1、在opewidget.h里面添加头文件,产生指针

4.2、在opewidget.cpp构造函数里产生对象

4.3、因为好友和图书的界面每次都只能显示一次,所以我们怎么放呢?

4.3.1、通过堆栈窗口来放置

A、在.h文件里面产生指针

B、在cpp里面产生对象

C、将好友和图书窗口加进去,当没有设置显示那个窗口的时候,默认显示第一个窗口

D、改变布局

E、查看效果,zaimain函数里设置


1、界面

关于好友操作界面,主要包含聊天和搜索好友弹出来的界面

1.1、打开客户端,右键添加文件

1.2、写名称

 1.3、在opewidget.h里面包含头文件

#include <QListWidget>

产生对象

private:
    QListWidget *m_pListW;

 1.4、在构造函数里面,new出来

m_pListW = new QListWidget(this);

1.5、加两个项目测试一下

    m_pListW->addItem("好友");
    m_pListW->addItem("图书");

1.6、在main.cpp里引入并测试一下

#include "opewidget.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
//    TcpClient w;
//    w.show();
    OpeWidget w;
    w.show();
    return a.exec();
}

可以运行 

2、在右边进行界面设计——好友界面

2.1、查看在线用户界面

2.1.1、新建一个类

2.1.2、Widget一个空的界面

2.1.3、给设计师界面类起名字

2.1.4、添加如下按键,并进行设计

2.1.5、双击在online_lw添加数据

2.1.6、在main函数里包含online.h头文件测试一下

用Online产生对象,将他show出来

#include "online.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //    TcpClient w;
    //    w.show();
    //    OpeWidget w;
    //    w.show();
    Online w;
    w.show();
    return a.exec();
}

2.2、显示聊天信息,好友列表界面

2.2.1、新建类

2.2.2、在friend.h里面引入头文件

#include<QTextEdit>//信息显示
#include <QListWidget>//存放已经增加的好友
#include <QLineEdit> //存放信息的输入
#include <QPushButton> //按钮
#include <QVBoxLayout> //垂直布局
#include <QHBoxLayout> //水平布局

2.2.3、在friend.h里面产生对象,生成指针

private:
    QTextEdit *m_pShowMsgTE;
    QListWidget *m_pFriendListWidget;
    QLineEdit *m_pInputMsgLE;
    
    QPushButton *m_pDelFriendPB;//删除好友列表
    QPushButton *m_pFlushFriendPB;//刷新好友列表
    QPushButton *m_pShowOnlineUsrPB;//查看在线用户
    QPushButton *m_pSearchUsrPB;//查看用户
    QPushButton *m_pMsgSendPB;//发送信息按钮
    QPushButton *m_pPrivateChatPB;//私聊按钮

2.2.4、在friend.cpp里面创建出来

#include "friend.h"

Friend::Friend(QWidget *parent) : QWidget(parent)
{
    m_pShowMsgTE = new QTextEdit;
    m_pFriendListWidget = new QListWidget;
    m_pInputMsgLE = new QLineEdit;
    
    m_pDelFriendPB = new QPushButton ("删除好友");
    m_pFlushFriendPB = new QPushButton ("刷新好友");
    m_pShowOnlineUsrPB= new QPushButton ("显示在线用户");
    m_pSearchUsrPB= new QPushButton("查找用户");
    m_pMsgSendPB= new QPushButton;//发送信息按钮
    m_pPrivateChatPB= new QPushButton;//私聊按钮
}

2.2.5、布局

    QVBoxLayout *pRightPBVBL = new QVBoxLayout;
    pRightPBVBL->addWidget(m_pDelFriendPB);
    pRightPBVBL->addWidget(m_pFlushFriendPB);
    pRightPBVBL->addWidget(m_pShowOnlineUsrPB);
    pRightPBVBL->addWidget(m_pSearchUsrPB);
    pRightPBVBL->addWidget(m_pPrivateChatPB);
    
    QHBoxLayout *pTopHBL = new QHBoxLayout;
    pTopHBL->addWidget(m_pShowMsgTE);
    pTopHBL->addWidget(m_pFriendListWidget);
    pTopHBL->addLayout(pRightPBVBL);
    
    QHBoxLayout *PMsgHBL = new QHBoxLayout;
    PMsgHBL->addWidget(m_pInputMsgLE);
    PMsgHBL->addWidget(m_pMsgSendPB);
    
     QVBoxLayout *pMain = new QVBoxLayout;
     pMain->addLayout(pTopHBL);
     pMain->addLayout(PMsgHBL);
     
     setLayout(pMain);

2.2.6、测试一下,查看效果

#include "friend.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
//    TcpClient w;
//    w.show();
    //    OpeWidget w;
    //    w.show();
    //    Online w;
    //    w.show();
    Friend w;
    w.show();
    return a.exec();
}

2.2.7、在frend.h文件里面包含online.h头文件,产生online的对象

 //产生online的对象
    Online *m_pOnline;

2.2.8、将online在构造函数里面产生出来

m_pOnline = new Online;

2.2.9、将online添加到widget里面

    pMain->addWidget(m_pOnline);
    m_pOnline->hide();

2.2.10、添加online的信号槽

A、在friend.h里,添加信号槽
public slots:
    void showOnline();
B、定义信号槽
void Friend::showOnline()
{
    //如果m_ponline是隐藏的,我们将他打开
    if(m_pOnline->isHidden()){
        m_pOnline->show();
    }
    else {
        m_pOnline->hide();
    }
}
C、关联信号槽
connect(m_pShowOnlineUsrPB, SIGNAL(clicked(bool)) , this, SLOT(showOnline()));
D、展示

点击一次

再点击一次

到此好友界面创建完毕

3、界面设计——图书界面

3.1、添加类

在这里关于图书界面,先什么都不放

4、将好友和图书界面添加到操作界面

4.1、在opewidget.h里面添加头文件,产生指针

#include"friend.h"
#include "book.h"

Friend *m_pFriend;
Book *m_pBook;

4.2、在opewidget.cpp构造函数里产生对象

    m_pFriend = new Friend;
    m_pBook = new Book;

4.3、因为好友和图书的界面每次都只能显示一次,所以我们怎么放呢?

4.3.1、通过堆栈窗口来放置

可以将很多的窗口都放在这里,但是他有一个特性,就是每次只显示一个

#include <QStackedWidget>
A、在.h文件里面产生指针
QStackedWidget *m_pSW;
B、在cpp里面产生对象
    m_pSW = new QStackedWidget;
C、将好友和图书窗口加进去,当没有设置显示那个窗口的时候,默认显示第一个窗口
    m_pSW->addWidget(m_pFriend);
    m_pSW->addWidget(m_pBook);
D、改变布局
    QHBoxLayout *PMain = new QHBoxLayout;
    PMain->addWidget(m_pListW);
    PMain->addWidget(m_pSW);
    
    setLayout(PMain);
E、查看效果,zaimain函数里设置
#include "tcpclient.h"

#include <QApplication>
#include "opewidget.h"
//#include "online.h"
#include "friend.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //    TcpClient w;
    //    w.show();
    OpeWidget w;
    w.show();
    //    Online w;
    //    w.show();
    //    Friend w;
    //    w.show();
    return a.exec();
}

发现图书的信号槽没有关联起来,那么我们关联一下

connect(m_pListW, SIGNAL(currentRowChanged(int)), m_pSW, SLOT(setCurrentIndex(int)));

点击好友

点击图书

成功

  • 19
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值