社区
脚本语言
帖子详情
qtablewidget排序后 再重新加载数据 导致大片数据显示不出
屎克螂
2013-10-07 09:18:21
点了下qtablewidget 的标题,它排序正常,但是再点下查询(也就是重新获取数据),结果一大片数据显示不出。
[/quote]
...全文
649
5
打赏
收藏
qtablewidget排序后 再重新加载数据 导致大片数据显示不出
点了下qtablewidget 的标题,它排序正常,但是再点下查询(也就是重新获取数据),结果一大片数据显示不出。[/quote]
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
silence_cyh
2014-12-28
打赏
举报
回复
2
重新获取数据之前先关闭可排序性,获取到数据之后再开可排序性,原因不明,但是我刚刚知道这样可以
hust259
2014-12-04
打赏
举报
回复
顶一下吧,同样遇到了这个问题。正在寻求方法中。
屎克螂
2013-10-07
打赏
举报
回复
我新手,参考别人写的,搬过去的,别人的也有这问题,于是就不知道怎么解决了, 就是点了某个列的排序 再点查询 就不正常了
屎克螂
2013-10-07
打赏
举报
回复
引用 1 楼 iasky 的回复:
你原来发过了,你不给代码或者日志,这个谁都不知道啊。
加载方法: ######################################### def refreshTableArea(self): DRG.logger.debug('[refreshTableArea] begin') self.tableWidget.clearContents() self.tableWidget.setRowCount(0) self.myObjList=self.myJsonDict.get('MemberCreditLog') DRG.logger.debug('before for->') i=0 self.sz={}#记录会员所对应的下标 for obj in self.myObjList: self.tableWidget.insertRow(i) colIndex=0 aItem=QtGui.QTableWidgetItem() aItem.setData(QtCore.Qt.UserRole, kKeyChangeLog) aItem.setData(QtCore.Qt.UserRole+1, obj['id']) text='' #摘要申明 employee=DRG.g_network.myEmployeeDict.get(obj['employee']) if (employee!=None): theText=employee.myFullname else: theText='' membercredit=DRG.g_network.myMemberCreditDict.get(obj['membercredit']) if (membercredit!=None): number=membercredit.myNumber member=membercredit.myMember category=membercredit.myCategory expires=membercredit.myExpires createTime=membercredit.myCreateTime #####取到子会员的父级 if(number==None): master=membercredit.myMaster membercredit=DRG.g_network.myMemberCreditDict.get(master) if(membercredit!=None): number=membercredit.myNumber+'(*)' else: member='' ############### else: number='' member='' category='' expires='' createTime='' if (member!=''): members=DRG.g_network.myMemberDict.get(member) if (members!=None): name=members.myName else: name='' if (category!=''): categorys=DRG.g_network.myMemberCategoryDict.get(category) if (categorys!=None): category_name=drf_getCurLangTextInDict(categorys.myNameDict) else: category_name='' comment='' #类型申明 try: strs=str(obj['transcode']).split(':') except Exception, e: strs=[''] #comments={'PAYBACK':'存款','PAY':'pay?', 'CREATE':'发卡', 'UPDATE':'修改', 'UNPAY':'unpay?'} if(strs[0]=='PAYBACK'): comment='存款' text='存款:%s¥, 余额:%s¥, 有效期:%s'%(str(obj['sum']),str(obj['balance']),str(expires)) elif(strs[0]=='CREATE'): comment='发卡' createTime=str(createTime).split('T') text='发卡时间:%s, 有效期:%s'%(createTime[0],str(expires)) elif(strs[0]=='UPDATE'): comment='修改' text='UPDATE' # if(self.ChangeLog_list=={} or self.ChangeLog_list.has_key(str(obj['membercredit']))==False): # theURL = "%s%s?ids=%s"%(DRG.g_network.myServerURL, kURLChangeLog, unicode(obj['membercredit'])) # DRG.g_network.beginGetRequest(theURL, flagFullUpdate=True, successCb=self.callback_ChangeLog_succeed, failureCb=self.callback_ChangeLog_failed) # # self.sz[str(obj['membercredit'])]=0 # # # txts=self.ChangeLog_list.get(str(obj['membercredit'])) # ChangeLog_i=self.sz.get(str(obj['membercredit'])) # txt=txts[ChangeLog_i].split('|:|') # comment=txt[0] # text=txt[1] # sz[str(obj['membercredit'])]+=1 elif(strs[0]=='PAY'): comment='pay?' text='PAY' elif(strs[0]=='UNPAY'): comment='unpay?' text='UNPAY' aItem=QtGui.QTableWidgetItem(comment if comment else '') aItem.setTextAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter) self.tableWidget.setItem(i, colIndex, aItem) colIndex+=1 theEndText=drf_getDatetimePart(obj['createTime'], 'datetime') aItem=QtGui.QTableWidgetItem(theEndText if theEndText else '') aItem.setTextAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter) self.tableWidget.setItem(i, colIndex, aItem) colIndex+=1 aItem=QtGui.QTableWidgetItem(theText if theText else '') aItem.setTextAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter) self.tableWidget.setItem(i, colIndex, aItem) colIndex+=1 aItem=QtGui.QTableWidgetItem(number if number else '') aItem.setTextAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter) self.tableWidget.setItem(i, colIndex, aItem) colIndex+=1 aItem=QtGui.QTableWidgetItem(name if name else '') aItem.setTextAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter) self.tableWidget.setItem(i, colIndex, aItem) colIndex+=1 aItem=QtGui.QTableWidgetItem(category_name if category_name else '') aItem.setTextAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter) self.tableWidget.setItem(i, colIndex, aItem) colIndex+=1 aItem=QtGui.QTableWidgetItem(text) aItem.setTextAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter) self.tableWidget.setItem(i, colIndex, aItem) i+=1 self.tableWidget.resizeColumnsToContents() self.tableWidget.resizeRowsToContents(); self.handleFocus() DRG.logger.debug('[refreshTableArea]end->') self.refreshPageInfo()
iasky
2013-10-07
打赏
举报
回复
你原来发过了,你不给代码或者日志,这个谁都不知道啊。
解决
qtablewidget
加载
大量
数据
卡顿的问题
解决
qtablewidget
加载
大量
数据
卡顿的问题
在
QTableWidget
中
显示
大
数据
量
在访问
数据
库后,在本地得到包含了
数据
的集合,然后获取
数据
总量;之后tableWidget的滑动条的滑动长度可以定义成 tableWidget的每行row的宽度 *
数据
总量;再运动滑动条以定位到应
显示
的部分的第一个的行在tableWidget中的索引;以此索引可以定位到内存中的
数据
集对应的当前应被提取的第一个
数据
的索引;由于tableWidget的height是知道的,那么该
显示
的个数应也是可知的,即
数据
集该提取的长度也是可知的;只取这部分
数据
显示
到tableWidget中。
Qt
QTableWidget
基本功能及
排序
功能
实现了Qt
QTableWidget
基本的添加删除修改等功能和添加了点击表头
排序
功能
QTableWidget
实现大
数据
分页快速
显示
.zip
QTableWidget
实现大
数据
分页快速
显示
,不卡顿,主要是只new出一页的item,所以耗资源少,然后新
数据
再来的话就是将所有item内容赋空,然后再将新
数据
按照坐标放进去。
自定义
QTableWidget
实现分页。
QT自带没有分页组件,
加载
表格大
数据
的时候有些不方便,因此打算全部用源码自定义一个表格+分页,这样方便以后移植。 具体思路如下: 1.先实现一个分页组件 2.展示
脚本语言
37,743
社区成员
34,212
社区内容
发帖
与我相关
我的任务
脚本语言
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
复制链接
扫一扫
分享
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
试试用AI创作助手写篇文章吧
+ 用AI写文章