python实现分页效果

 更新时间:2017年10月25日 17:20:53   作者:飞奔的猫  
这篇文章主要为大家详细介绍了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中让自定义的类使用加号"+"

    python中让自定义的类使用加号"+"

    这篇文章主要介绍了python中让自定义的类使用加号"+",如果对两个对象直接“+”肯定是不行的,因为还没有对CartoonImage类重载加法运算符__add__(),下文小编举例形式讲解该内容,需要的下伙伴可以参考一下
    2022-03-03
  • Python excel合并居中值相同的单元格实例代码

    Python excel合并居中值相同的单元格实例代码

    在工作中遇到了合并具有相同条件的单元格合并的问题,下面这篇文章主要给大家介绍了关于Python excel合并居中值相同单元格的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • pytorch nn.Conv2d()中的padding以及输出大小方式

    pytorch nn.Conv2d()中的padding以及输出大小方式

    今天小编就为大家分享一篇pytorch nn.Conv2d()中的padding以及输出大小方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • pandas中read_csv的缺失值处理方式

    pandas中read_csv的缺失值处理方式

    今天小编就为大家分享一篇pandas中read_csv的缺失值处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 老生常谈Python之装饰器、迭代器和生成器

    老生常谈Python之装饰器、迭代器和生成器

    下面小编就为大家带来一篇老生常谈Python之装饰器、迭代器和生成器。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Pytest使用fixture实现token共享的方法

    Pytest使用fixture实现token共享的方法

    同学们在做pytest接口自动化时,会遇到一个场景就是不同的测试用例需要有一个登录的前置步骤,登录完成后会获取到token,用于之后的代码中,本文给大家介绍Pytest使用fixture实现token共享的方法,感兴趣的朋友一起看看吧
    2023-11-11
  • python编程测试电脑开启最大线程数实例代码

    python编程测试电脑开启最大线程数实例代码

    这篇文章主要介绍了python编程测试电脑开启最大线程数实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • python的pip有什么用

    python的pip有什么用

    在本篇文章里小编给大家整理的是关于python的pip作用等相关内容,有需要的朋友们可以学习下。
    2020-06-06
  • Django框架登录加上验证码校验实现验证功能示例

    Django框架登录加上验证码校验实现验证功能示例

    这篇文章主要介绍了Django框架登录加上验证码校验实现验证功能,结合实例形式分析了Django框架基于Pillow模块的图形验证码生成与使用相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • Python实现PS滤镜碎片特效功能示例

    Python实现PS滤镜碎片特效功能示例

    这篇文章主要介绍了Python实现PS滤镜碎片特效功能,结合实例形式分析了Python实现PS滤镜碎片效果的具体步骤与相关操作技巧,需要的朋友可以参考下
    2018-01-01

最新评论