网络编程
位置:首页>> 网络编程>> Python编程>> python实现分页效果

python实现分页效果

作者:飞奔的猫  发布时间:2021-07-12 16:00:44 

标签:python,分页

本文实例为大家分享了python实现分页效果展示的具体代码,供大家参考,具体内容如下

难点:清空Layout


#!/usr/bin/python  
#-*-coding:utf-8-*-

from PyQt4.QtCore import *
from PyQt4.QtGui import *

class PageWidget(QWidget):
 def __init__(self,parent=None):
   super(PageWidget,self).__init__(parent)
   self.btns=[]
   self.count=0
   self.presign=0      #当前点击标识
   self.nextsign=0     #当前点击标识
   self.pre_button=QPushButton()
   self.pre_button.setText("<<")
   self.pre_button.setFixedSize(25,25)
   self.connect(self.pre_button,SIGNAL("clicked()"),self,SLOT("prepage()"))
   self.next_button=QPushButton()
   self.next_button.setText(">>")
   self.connect(self.next_button,SIGNAL("clicked()"),self,SLOT("nextpage()"))
   self.next_button.setFixedSize(25,25)
   self.center_layout=QHBoxLayout()
   self.nextpage()

self.page_layput=QHBoxLayout()
   self.page_layput.addWidget(self.pre_button)
   self.page_layput.addLayout(self.center_layout)
   self.page_layput.addWidget(self.next_button)
   self.setLayout(self.page_layput)

@pyqtSlot()
 def prepage(self):
   self.presign=1
   self.num=0
   if (len(self.btns)>0) and (self.count>=10):
     for p in range(10):
       self.center_layout.removeWidget(self.btns[p])
       self.btns[p].deleteLater()
     self.btns=[]
   if self.count>=10:
     if self.nextsign==1:
       self.count=self.count-20
       self.nextsign=0
     else:
       self.count=self.count-10
     self.num=self.count

for i in range(10):
       self.num+=1
       self.center_button=QPushButton()
       self.center_button.setText(str(self.num))
       self.center_button.setFixedSize(25,25)
       self.btns.append(self.center_button)
       self.center_layout.addWidget(self.center_button)
     #print self.count
 @pyqtSlot()
 def nextpage(self):
   self.nextsign=1
   if len(self.btns)>0:
     for p in range(10):
       self.center_layout.removeWidget(self.btns[p])
       self.btns[p].deleteLater()
     self.btns=[]
   if self.presign==1:
     self.count=self.count+10
     self.presign=0
   #mapper转有参数
   signal_mapper = QSignalMapper(self)
   for i in range(10):
     self.count+=1
     self.center_button=QPushButton()
     self.center_button.setText(str(self.count))
     self.center_button.setFixedSize(25,25)
     self.btns.append(self.center_button)
     self.connect(self.center_button,SIGNAL("clicked()"),signal_mapper,SLOT("map()"))
     signal_mapper.setMapping(self.center_button, str(self.count))
     self.center_layout.addWidget(self.center_button)
   self.connect(signal_mapper, SIGNAL("mapped(QString)"), self, SLOT("showpage(QString)"))
   #print self.count

@pyqtSlot(QString)
 def showpage(self,page):
   print page

if __name__=='__main__':
 import sys
 app=QApplication(sys.argv)
 page=PageWidget()
 page.show()
 sys.exit(app.exec_())

 效果图:

python实现分页效果

来源:http://blog.csdn.net/jylonger/article/details/45767237

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com