• 大小: 264KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: Html/CSS
  • 标签: Qt5  聊天气泡  

资源简介

基于Qt5设计的QWidget聊天气泡样式,列表刷新,每次只会刷新当前几个ITEM,内存可禁得起考验的。 详细介绍参考: http://www.qtcn.org/bbs/read-htm-tid-62316.html

资源截图

代码片段和文件信息

#include “chatbubble.h“
#include 
#include “myapp.h“

//namespace BubbleWidget
//{

//};
BubbleList::BubbleList(QWidget *parent) :
    QWidget(parent)
{
    initVars();
    initWgts();
    initStgs();
    initConns();
}

BubbleList::~BubbleList()
{
    d->clear();
}

/*!
  private utility functions
*/
void BubbleList::initVars()
{
}

void BubbleList::initWgts()
{
    mainLayout = new QHBoxLayout(this);
    scrollbar = new QScrollBar(this);
    d = new BubbleListPrivate(this);
    this->setMinimumWidth(300);

    mainLayout->addWidget(d);
    mainLayout->addWidget(scrollbar);
    setLayout(mainLayout);
}

void BubbleList::initStgs()
{
    mainLayout->setContentsMargins(0000);
    mainLayout->setSpacing(0);

    scrollbar->setRange(00);
    scrollbar->hide();
}

void BubbleList::initConns()
{
    connect(scrollbarSIGNAL(valueChanged(int))dSLOT(setCurrentIndex(int)));
    connect(dSIGNAL(sig_setMaximum(int))thisSLOT(setMaximum(int)));
    connect(dSIGNAL(sig_setCurrentIndex(int))scrollbarSLOT(setValue(int)));
    connect(dSIGNAL(sig_itemClicked(QString))thisSIGNAL(sig_itemClicked(QString)));
}

void BubbleList::calcGeo()
{

}

/*!
  private slot functions
*/
void BubbleList::setMaximum(int max)
{
    if(max == 0)
    {
        scrollbar->hide();
    }else{
        scrollbar->show();
    }
    scrollbar->setRange(0max);
}

/*!
  protected functions of PYFlashList
*/
void BubbleList::resizeEvent(QResizeEvent *)
{

}

/*!
  public interfaces of PYFlashList
*/
void BubbleList::addItem(const QString &str const int &orientation)
{
    d->addItem(str orientation);
}

void BubbleList::clear()
{
    d->clear();
}

void BubbleList::render()
{
    d->render();
}

/*************************************/
/*!   BubbleListPrivate section    !*/
/*************************************/
BubbleListPrivate::BubbleListPrivate(QWidget* parent):QWidget(parent)
{
    initVars();
    initSettings();
}
/*!
  private utility functions of BubbleListPrivate
 */
void BubbleListPrivate::initVars()
{
    m_currIndex = 0;
    m_VisibleItemCnt = 0;
    m_ItemCounter = 0;

    m_bAllJobsDone = false;

    m_RotateTimer = new QTimer(this);
    m_RotateTimer->setInterval(UPDATE_TIMER_INTERVAL);
    connect(m_RotateTimerSIGNAL(timeout())thisSLOT(DoRotation()));

    m_ItemCountTimer = new QTimer(this);
    m_ItemCountTimer->setInterval(ITEM_COUNTER_TIMER_INTERVAL);
    connect(m_ItemCountTimerSIGNAL(timeout())thisSLOT(UpdateItemCount()));
}

void BubbleListPrivate::initSettings()
{
    setMouseTracking(this);
}

void BubbleListPrivate::calcGeo()
{
    m_VisibleItemCnt = height() / (ITEM_HEIGHT + ITEM_SPACE + 10) + 1;
    int InvisibleItemCnt = m_IIVec.count() - m_VisibleItemCnt;

    if(InvisibleItemCnt >= 0)
    {
        emit sig_setMaximum(InvisibleItemCnt);
    }
}

void BubbleListPrivate::makeupJobs()
{

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-12-09 15:32  ChatBubble\
     文件         726  2016-11-30 20:34  ChatBubble\.qmake.stash
     文件       16958  2016-12-08 18:12  ChatBubble\app.ico
     文件          37  2016-12-08 18:13  ChatBubble\app.rc
     目录           0  2016-12-09 15:32  ChatBubble\bin\
     文件      108032  2016-12-09 15:32  ChatBubble\bin\chatBubble.exe
     目录           0  2016-12-09 15:32  ChatBubble\build\
     文件       17246  2016-12-08 18:14  ChatBubble\build\app_res.o
     文件       27623  2016-12-09 15:32  ChatBubble\build\chatbubble.o
     文件       20636  2016-12-08 18:17  ChatBubble\build\chatwindow.o
     文件        1476  2016-12-08 18:14  ChatBubble\build\main.o
     文件       11095  2016-12-08 18:14  ChatBubble\build\moc_chatbubble.cpp
     文件       17493  2016-12-08 18:14  ChatBubble\build\moc_chatbubble.o
     文件        4027  2016-12-08 18:14  ChatBubble\build\moc_chatwindow.cpp
     文件        8959  2016-12-08 18:14  ChatBubble\build\moc_chatwindow.o
     文件         490  2016-12-08 18:14  ChatBubble\build\myapp.o
     文件      180961  2016-12-09 15:25  ChatBubble\build\qrc_images.cpp
     文件       36606  2016-12-09 15:25  ChatBubble\build\qrc_images.o
     文件        6793  2016-12-08 18:17  ChatBubble\build\ui_chatwindow.h
     文件       14948  2016-12-09 15:32  ChatBubble\chatbubble.cpp
     文件        5556  2016-12-08 16:59  ChatBubble\chatbubble.h
     文件         685  2016-12-08 18:14  ChatBubble\ChatBubble.pro
     文件       23763  2016-12-08 19:40  ChatBubble\ChatBubble.pro.user
     文件       23761  2016-11-30 23:07  ChatBubble\ChatBubble.pro.user.0279f5e
     文件        1368  2016-12-08 17:24  ChatBubble\chatwindow.cpp
     文件        1074  2016-12-08 17:22  ChatBubble\chatwindow.h
     文件        4447  2016-12-08 18:17  ChatBubble\chatwindow.ui
     目录           0  2016-11-29 11:38  ChatBubble\debug\
     目录           0  2016-12-09 15:23  ChatBubble\images\
     文件         269  2016-12-09 15:23  ChatBubble\images.qrc
     文件        3290  2015-05-06 11:19  ChatBubble\images\bubble_out_press.9.png
............此处省略11个文件信息

评论

共有 条评论