python实现分页效果

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

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

标签:python,分页
0
投稿

猜你喜欢

  • python 实现围棋游戏(纯tkinter gui)

    2023-11-23 16:13:04
  • VS2015安装之后加装Sql server2014详细步骤

    2024-01-18 04:39:56
  • Python3离线安装Requests模块问题

    2021-05-06 09:58:24
  • Django前端BootCSS实现分页的方法

    2023-12-21 01:45:34
  • Python中list列表添加元素的3种方法总结

    2022-10-03 21:40:43
  • python读取ini配置文件过程示范

    2023-07-02 01:18:36
  • PHP APC缓存配置、使用详解

    2023-11-21 22:15:15
  • ASP伪静态页简单教程

    2007-09-28 14:35:00
  • echarts图表设置宽度100%结果为100px的解决办法

    2024-04-18 09:50:19
  • 详解用Python进行时间序列预测的7种方法

    2023-02-14 18:55:34
  • apache和nginx下vue页面刷新404的解决方案

    2024-04-26 17:37:16
  • vue上传图片组件编写代码

    2024-05-10 14:14:33
  • python可变对象,不可变对象详解

    2023-10-18 05:14:25
  • mysql中取字符串中的数字的语句

    2024-01-15 02:16:15
  • Python 自动控制原理 control的详细解说

    2023-04-17 09:53:45
  • HTML5 第二份草案发布

    2008-06-17 17:42:00
  • oracle锁表该如何解决

    2024-01-23 20:28:38
  • node.js+Ajax实现获取HTTP服务器返回数据

    2024-05-13 09:29:07
  • JavaScript数值千分位格式化的两种简单实现方法

    2023-08-31 22:59:43
  • 使用php判断网页是否gzip压缩

    2024-06-05 09:47:41
  • asp之家 网络编程 m.aspxhome.com