首页 > 编程 > Python > 正文

python实现分页效果

2020-01-04 16:39:48
字体:
来源:转载
供稿:网友

本文实例为大家分享了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,分页

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表