python中换页是干嘛的_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_())

效果图:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值