资源简介
基于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个文件信息
评论
共有 条评论