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实现分页效果 的全部内容, 来源链接: utcz.com/z/359525.html

回到顶部