基于QT的QQ聊天实现文件传输,消息记录在数据库的保存


实习客户端的登录,消息记录在数据库的保存,历史消息记录的查看,文件图像传输
资源截图
代码片段和文件信息
#include “basewindow.h“
#include 
#include 
#include 
#include 
#include yleOption>

baseWindow::baseWindow(QWidget *parent)
    : QDialog(parent)
{
    this->setWindowFlags(Qt::framelessWindowHint | Qt::WindowMinimizeButtonHint);
    setAttribute(Qt::WA_TranslucentBackground);
    inittitleBar();
}

baseWindow::~baseWindow()
{

}

void baseWindow::inittitleBar()
{
    m_titleBar = new MytitleBar(this);
    m_titleBar->move(0 0);

    connect(m_titleBar SIGNAL(signalButtonMinClicked()) this SLOT(onButtonMinClicked()));
    connect(m_titleBar SIGNAL(signalButtonRestoreClicked()) this SLOT(onButtonRestoreClicked()));
    connect(m_titleBar SIGNAL(signalButtonMaxClicked()) this SLOT(onButtonMaxClicked()));
    connect(m_titleBar SIGNAL(signalButtonCloseClicked()) this SLOT(onButtonCloseClicked()));

}

void baseWindow::paintEvent(QPaintEvent* event)
{
    Q_UNUSED(event);
    QstyleOption opt;
    opt.init(this);
    QPainter painter(this);
    style()->drawPrimitive(Qstyle::PE_Widget &opt &painter this);

    //设置背景色;

    QPainterPath pathBack;
    pathBack.setFillRule(Qt::WindingFill);
    pathBack.addRoundedRect(QRect(0 0 this->width() this->height()) 3 3);
    painter.setRenderHint(QPainter::SmoothPixmapTransform true);
    painter.fillPath(pathBack QBrush(QColor(236 241 245)));

// return QWidget::paintEvent(event);
}

void baseWindow::loadstyleSheet(const QString &sheetName)
{
    QFile file(sheetName);
    file.open(QFile::ReadOnly);
    if (file.isOpen())
    {
        QString styleSheet = this->styleSheet();
        styleSheet += QLatin1String(file.readAll());
        this->setstyleSheet(styleSheet);
    }
}

void baseWindow::onButtonMinClicked()
{
    if (Qt::Tool == (windowFlags() & Qt::Tool))
    {
        hide();    //设置了Qt::Tool 如果调用showMinimized()则窗口就销毁了???
    }
    else
    {
        showMinimized();
    }
}

void baseWindow::onButtonRestoreClicked()
{
    QPoint windowPos;
    QSize windowSize;
    m_titleBar->getRestoreInfo(windowPos windowSize);
    this->setGeometry(QRect(windowPos windowSize));
}

void baseWindow::onButtonMaxClicked()
{
    m_titleBar->saveRestoreInfo(this->pos() QSize(this->width() this->height()));
    QRect desktopRect = QApplication::desktop()->availableGeometry();
    QRect FactRect = QRect(desktopRect.x() - 3 desktopRect.y() - 3 desktopRect.width() + 6 desktopRect.height() + 6);
    setGeometry(FactRect);
}

void baseWindow::onButtonCloseClicked()
{
    // 注意 !!!;
    // 如果设置了Qt::Tool 且当前窗口为主窗口调用close()方法只是关闭了当前窗口,并没有结束整个程序进程;
    // 如果只有一个窗口情况下需要调用qApp->quit();来结束进程;
    // 如果设置了Qt::Tool的窗口是子窗口,则只需要调用close()方法关闭即可;
    //  if (Qt::Tool == (windowFlags() & Qt::Tool))
    //  {
    //  qApp->quit();
    //  }
    //  else
    {
        close();
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-04-28 09:08  client
     目录           0  2018-04-28 09:08  clientQQ
     文件       14155  2018-03-21 21:38  clientQQ1.jpg
     文件        6497  2018-04-25 15:42  clientQQ110.jpg
     文件        6411  2018-03-18 17:54  clientQQ123.jpg
     文件        6919  2018-04-25 15:45  clientQQ124.jpg
     文件        7589  2018-04-25 15:45  clientQQ125.jpg
     文件        4383  2018-04-25 14:38  clientQQ126.jpg
     文件        8569  2018-04-17 14:12  clientQQ127.jpg
     文件        2901  2016-12-22 09:19  clientQQarrow.png
     文件        3084  2016-12-22 09:18  clientQQarrow_hover.png
     文件        3079  2016-12-22 09:23  clientQQarrow_press.png
     文件        3429  2016-12-22 09:47  clientQQarrowback.png
     文件     1216750  2016-12-21 21:58  clientQQack.gif
     文件       70808  2018-03-21 10:55  clientQQack.jpg
     文件        3156  2018-04-25 14:08  clientQQasewindow.cpp
     文件         573  2018-04-23 17:27  clientQQasewindow.h
     文件        7247  2018-04-27 16:26  clientQQchat.cpp
     文件         263  2018-04-23 22:26  clientQQchat.css
     文件        1404  2018-04-26 08:36  clientQQchat.h
     文件        4247  2018-04-26 08:37  clientQQchat.ui
     文件         317  2016-01-21 13:58  clientQQcheckbox.png
     文件        2971  2016-12-22 09:32  clientQQclose.png
     文件        3120  2016-12-22 09:37  clientQQclose_hover.png
     文件        3093  2016-12-22 09:38  clientQQclose_press.png
     文件         444  2018-04-09 16:39  clientQQdbinit.cpp
     文件         304  2018-04-09 16:38  clientQQdbinit.h
     文件        1402  2018-04-09 15:30  clientQQdrawer.cpp
     文件         283  2018-04-09 11:33  clientQQdrawer.h
     文件        3084  2018-04-27 16:23  clientQQfilethread.cpp
     文件         771  2018-04-26 08:36  clientQQfilethread.h
............此处省略50个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)