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基础教程之正则表达式基本语法以及re模块
Mar 25 Python
Linux CentOS7下安装python3 的方法
Jan 21 Python
对python中raw_input()和input()的用法详解
Apr 22 Python
pycharm运行程序时在Python console窗口中运行的方法
Dec 03 Python
梅尔频率倒谱系数(mfcc)及Python实现
Jun 18 Python
Python高级编程之继承问题详解(super与mro)
Nov 19 Python
Python使用py2neo操作图数据库neo4j的方法详解
Jan 13 Python
TensorFlow实现自定义Op方式
Feb 04 Python
Pandas读取csv时如何设置列名
Jun 02 Python
通过实例了解Python异常处理机制底层实现
Jul 23 Python
十个Python自动化常用操作,即拿即用
May 10 Python
Python 内置函数速查表一览
Jun 02 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
通过文字传递创建的图形按钮
2006/10/09 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
2015/11/17 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
JQuery在光标位置插入内容的实现代码
2010/06/18 Javascript
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
2018/09/03 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
Python格式化css文件的方法
2015/03/10 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
Django学习之文件上传与下载
2019/10/06 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
小松树教学反思
2014/02/11 职场文书
社区母亲节活动方案
2014/03/05 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
组织鉴定材料
2014/06/02 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
2014最新股权信托合同协议书
2014/11/18 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书