python实现分页效果


Posted in Python onOctober 25, 2017

本文实例为大家分享了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 ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
Jun 10 Python
Python中字典(dict)和列表(list)的排序方法实例
Jun 16 Python
Python实现数据库并行读取和写入实例
Jun 09 Python
python实现自动网页截图并裁剪图片
Jul 30 Python
Python命名空间的本质和加载顺序
Dec 17 Python
python画蝴蝶曲线图的实例
Nov 21 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 Python
通过 Python 和 OpenCV 实现目标数量监控
Jan 05 Python
15行Python代码实现免费发送手机短信推送消息功能
Feb 27 Python
python中前缀运算符 *和 **的用法示例详解
May 28 Python
Python批量获取并保存手机号归属地和运营商的示例
Oct 09 Python
OpenCV实现常见的四种图像几何变换
Apr 01 Python
python+pyqt实现12306图片验证效果
Oct 25 #Python
python编程羊车门问题代码示例
Oct 25 #Python
python中requests使用代理proxies方法介绍
Oct 25 #Python
python中requests爬去网页内容出现乱码问题解决方法介绍
Oct 25 #Python
python编程之requests在网络请求中添加cookies参数方法详解
Oct 25 #Python
Python探索之pLSA实现代码
Oct 25 #Python
python正则表达式re之compile函数解析
Oct 25 #Python
You might like
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
php简单判断文本编码的方法
2015/07/30 PHP
Smarty3配置及入门语法
2017/02/22 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
微信小程序选择图片控件
2021/01/19 Javascript
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
Python算法之栈(stack)的实现
2014/08/18 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
python @classmethod 的使用场合详解
2019/08/23 Python
django中related_name的用法说明
2020/05/20 Python
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
JSP&Servlet技术面试题
2015/05/21 面试题
幼儿园教师国培感言
2014/02/02 职场文书
承诺书模板
2014/08/30 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
Python中的min及返回最小值索引的操作
2021/05/10 Python
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
GoFrame框架数据校验之校验结果Error接口对象
2022/06/21 Golang