分页控件效果图

一、环境要求

python解释器:python3.7.4

依赖:PyQt5、sys模块

二、思路分析

1、布局:”上一页“、”下一页“等button、edit及label控件采用水平布局,使用该布局填充主控件QWidget

2、类继承关系:主界面继承自QWidget,然后把button、edit、label等控件作为成员变量,实现自定义的Widget

3、类接口分析:自定义的控件提供属性接口,方便多种类对象之间的交互

三、代码实现步骤

1、定义一个新的控件,继承自QWidget

2、新控件界面的实现:使用QHBoxLayout容器,依次添加效果图所示的控件(也就是QPushButton、QLabel、QLineEdit等),并设置这些控件的文本属性

3、校验:为当前页数,总过页数及跳转页数添加校验(永远不要相信用户的输入),当前页数至少为1,且不能大于总的页数,跳转的页数只能在1到总的页数之间,且输入框只能输入整数

4、添加事件响应

四、代码展示

from PyQt5.QtWidgets import (QWidget,QHBoxLayout,QPushButton,QLabel,QLineEdit,QApplication)

from PyQt5.Qt import QIntValidator

import sys

'''

1、提供数据翻页显示接口

'''

class PageController(QWidget):

def __init__(self):

super().__init__()

self._init_ui()

def _init_ui(self):

control_layout = QHBoxLayout()

self.prePage = QPushButton("

self.curPage = QLabel("1")

self.nextPage = QPushButton("下一页>")

self.totalPage = QLabel("共 " + str(10) + " 页")

skipLable_0 = QLabel("跳到")

self.skipPage = QLineEdit()

self.skipPage.setPlaceholderText("请输入跳转的页码")

self.skipPage.setValidator(QIntValidator())  # 设置只能输入int类型的数据

skipLabel_1 = QLabel("页")

self.confirmSkip = QPushButton("确定")

control_layout.addStretch(1)

control_layout.addWidget(self.prePage)

control_layout.addWidget(self.curPage)

control_layout.addWidget(self.nextPage)

control_layout.addWidget(self.totalPage)

control_layout.addWidget(skipLable_0)

control_layout.addWidget(self.skipPage)

control_layout.addWidget(skipLabel_1)

control_layout.addWidget(self.confirmSkip)

control_layout.addStretch(1)

self.setLayout(control_layout)

self.setWindowTitle("分页控件demo")

self.prePage.clicked.connect(self.button_clicked)

self.nextPage.clicked.connect(self.button_clicked)

self.confirmSkip.clicked.connect(self.button_clicked)

def button_clicked(self):

button_text=self.sender().text()

total_page=int(self.totalPage.text().split()[1])

current_page=int(self.curPage.text())

if "

self.skipPage.setText('')

current_page=current_page-1

if current_page<=1:

self.curPage.setText('1')

else:

self.curPage.setText(str(current_page))

if "下一页>"==button_text:

self.skipPage.setText('')

current_page=current_page+1

if current_page<=total_page:

self.curPage.setText(str(current_page))

if "确定"==button_text:

if ''==self.skipPage.text():

return

page=int(self.skipPage.text())

if 1<=page<=total_page:

self.curPage.setText(str(page))

if page>total_page:

self.curPage.setText(str(total_page))

self.skipPage.setText(str(total_page))

if page<=0:

self.curPage.setText(str(1))

self.skipPage.setText(str(1))

@property

def PAGE(self):

return int(self.totalPage.text().split()[1])

@PAGE.setter

def PAGE(self,page:int):

if page<0:

return

self.totalPage.setText("共 " + str(page) + " 页")

if __name__=='__main__':

app=QApplication(sys.argv)

win=PageController()

win.show()

sys.exit(app.exec_())

pyqt5 下拉 多页 点击_PyQt5实战——自定义翻页控件实现相关推荐

  1. HTML5电子书翻页效果 代码特效+鼠标点击拖拽滑动翻页+点击书页内容放大+不支持中文

    介绍 源码名称:[HTML5电子书翻页效果]代码特效+鼠标点击拖拽滑动翻页+点击书页内容放大+不支持中文 源码大小:237KB 开发语言:PHP+Mysql 操作系统:Windows,Linux 源码 ...

  2. 怎么设置html自动翻页,看小说怎么设置自动翻页 设置自动翻页方法介绍

    多看阅读器R7.4 Kindle4 版 类型:阅读工具大小:68.2M语言:中文 评分:10.0 标签: 立即下载 现在很多人都喜欢在手机上看小说,在手机阅读软件中看书的时候,为了减少烦人的操作,想设 ...

  3. C#在控件中绘制矩形、圆、线段等(切换不同的图片,自定义翻页控件,通过委托监控某个字段)

    1.效果展示 2 自定义翻页控件 public partial class PageManagemen : UserControl{/// <summary>/// 当前页(从1开始计数) ...

  4. php左右滑动翻页代码,C#_NGUI实现滑动翻页效果实例代码,废话不多说了,直接给大家上 - phpStudy...

    NGUI实现滑动翻页效果实例代码 废话不多说了,直接给大家上干货了. 具体代码如下所示: using UnityEngine; using System.Collections; public cla ...

  5. IOS开发之--UIScrollView pagingEnabled自定义翻页宽度

    用到UIScrollview的翻页效果时,有时需要显示一部分左右的内容,但是UIScrollView的PagingEnabled只能翻过整页,下面几个简单的设置即可实现 技术点: 1. 创建一个继承U ...

  6. 微信小程序实现循环列表下拉功能(点击事件)

    在微信小程序里 有下拉功能 如果循环列表 当执行点击事件的时候就会同时执行.下面主要实现了循环列表的点击事件操作.(也有数据里面嵌套数据) wxml <view class="sele ...

  7. angular下拉框点击无反应_angular 实现 下拉菜单 的 点击其他区域关闭下拉菜单功能?...

    代码如图, 点击 div.selected 的时候 ul.dorpdown-list 就会显示 点击 li 的时候 ul收起 并且 赋值给selectedVal 现在还有个需求是 点击dorpDown ...

  8. 微信小程序下拉框插件_微信小程序自定义select下拉选项框组件的实现代码_清玖_前端开发者...

    知识点:组件,animation,获取当前点击元素的索引与内容 微信小程序中没有select下拉选项框,所以只有自定义.自定义的话,可以选择模板的方式,也可以选择组件的方式来创建. 这次我选择了组件, ...

  9. Android m 自定义下拉菜单,Android实现动画效果的自定义下拉菜单功能

    我们在购物APP里面设置收货地址时,都会有让我们选择省份及城市的下拉菜单项.今天我将使用Android原生的 Spinner 控件来实现一个自定义的下拉菜单功能,并配上一个透明渐变动画效果. 要实现的 ...

最新文章

  1. MySQL笔记5:如何创建和删除索引?
  2. 计算机一级在线解析,2014年计算机一级考试MSOffice第三章考点解析 18
  3. 【深度学习】人群距离监测 DeepSOCIAL 最全汉化论文+源码导读
  4. 【算法竞赛学习】数据分析达人赛3:汽车产品聚类分析
  5. 目标检测系列(五)——Faster R-CNN译文
  6. 测试你的Python 水平----6
  7. 如何通过CSS开启硬件加速来提高网站性能
  8. linux ubuntu 编写c/c++ 获取命令行传入参数示例
  9. 计算机位图字节怎么算,位图跨度和4个字节的关系?(Bitmap Stride And 4 bytes Relation?)...
  10. 在java语言中_类间的继承关系是_【填空题】在Java程序里类之间的继承关系只能是________。...
  11. [转]MVP+WCF+三层结构搭建项目框架
  12. centos6.5 下搭建lamp环境
  13. storm32云台说明书_STorM32 BGC三轴增稳云台驱动下载
  14. Excel VBA视频教程20集+PPT课件 完整版
  15. stm32f10x寄存器设置脚本
  16. Unity学习资料收集
  17. linux下smtp服务器搭建
  18. android+动态光圈效果,三星S9评测:安卓机皇是你,960帧拍摄+可变光圈
  19. css引用 svg图标库,svg 图标文件引入小技巧
  20. 盒子模型(标准盒模型、怪异盒模型)

热门文章

  1. 微信小程序---实现输入手机验证码功能
  2. JavaScript-jQuery选择器
  3. python获取视频时长方法
  4. qq互动视频页面加载失败_互动案例技术分析(2)
  5. php mysql变量赋值给变量_MySQL_mysql 存储过程中变量的定义与赋值操作,一、变量的定义 mysql中变量定 - phpStudy...
  6. C语言逻辑运算符 - C语言零基础入门教程
  7. Python basestring函数- Python零基础入门教程
  8. java当中有关循环的代码_有关Java循环的内容,编程中还是比较常用的,下面分享给大家几个循环的示例代码,练习一下。1、循环输出1到100之间所有能被3或能被4整除的数。pack...
  9. 微观经济学如何计算机会成本,【微观经济学】机会成本
  10. 前端请求接口post_接口自动化测试-WEB资讯专栏-DMOZ中文网站分类目录