翻页控件:

一、定义并发射信号:

 #!/usr/bin/python
# #coding=utf-8
# __author__='' from PyQt4.QtCore import *
from PyQt4.QtGui import * import pageItem_ui class pageItem(QWidget):
# 定义信号
emit_page_changed = pyqtSignal(int, int) def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.ui = pageItem_ui.Ui_Form() self.page_num = 1
self.page_rows = 50
self.total_page = 0
self.init_ui()
self.init_ui_data() def init_ui(self):
self.setObjectName('pageItem')
self.ui.setupUi(self)
self.setStyleSheet("QComboBox QAbstractItemView::item{height:25px;}")
self.ui.comboBox_show_page_num.setView(QListView()) regExp = QRegExp('^[1-9][0-9]*$')
self.ui.comboBox_show_page_num.setValidator(QIntValidator(1, 999, self))
self.ui.lineEdit_jump_page.setValidator(QRegExpValidator(regExp, self)) self.connect(self.ui.pushButton_jump, SIGNAL('clicked()'), self.slot_pushButton_jump_clicked)
self.connect(self.ui.pushButton_per_page, SIGNAL('clicked()'), self.slot_pushButton_per_clicked)
self.connect(self.ui.pushButton_next_page, SIGNAL('clicked()'), self.slot_pushButton_next_clicked) def init_ui_data(self):
self.setPageNum(1) def slot_pushButton_jump_clicked(self):
# 获取跳转数据
try:
page_jump_num = self.ui.lineEdit_jump_page.text().toInt()[0]
if page_jump_num > self.total_page or page_jump_num < 1:
return
self.setPageNum(page_jump_num)
self.emit_page_changed.emit(self.pageRows(), self.pageNum())
except Exception,e:
print str(e) def slot_pushButton_per_clicked(self):
'''
上一页
:return:
''' pageNum = self.pageNum() - 1 if pageNum < 0:
return self.setPageNum(pageNum) self.emit_page_changed.emit(self.pageRows(), self.pageNum()) def slot_pushButton_next_clicked(self):
'''
下一页
:return:
'''
pageNum = self.pageNum() + 1
if pageNum > self.total_page:
return
self.setPageNum(pageNum) self.emit_page_changed.emit(self.pageRows(), self.pageNum()) def pageRows(self):
'''
获取当前每页显示行数
:return 行数:
'''
pageRows = self.ui.comboBox_show_page_num.currentText().toInt()[0]
if pageRows <= 0:
pageRows = 50
self.page_rows = pageRows
return pageRows def pageNum(self):
'''
获取当前显示页数
:return:
'''
return self.page_num def setPageNum(self, pageNum):
'''
设置页数
:param pageNum:
:return:
'''
if pageNum <= 0:
pageNum = 1
self.page_num = pageNum
self.ui.lineEdit_jump_page.setText(QString.number(pageNum)) def setTotalRows(self, total):
'''
设置总行数
:param total:
:return:
''' if total < 0:
total = 0 pagetotal = total/self.page_rows
if (total%self.page_rows) != 0:
pagetotal += 1 self.total_page = pagetotal strPageNum = QString.number(pagetotal)
self.ui.label_total_page_num.setText(strPageNum)
if __name__ == '__main__':
print QString.number(1888)

一、接收信号:


# 接收信号
self.ui.widget_page.emit_page_changed.connect(self.slot_pageChanged)
self.ui.widget_list_page.emit_page_changed.connect(self.slot_list_pageChanged)
  

pyqt 发射接收信号的更多相关文章

  1. 第15.16节 PyQt(Python+Qt)入门学习:PyQt中的信号(signal)和槽(slot)机制以及Designer中的使用

    老猿Python博文目录 老猿Python博客地址 一.引言 前面一些章节其实已经在使用信号和槽了,但是作为Qt中最重要的机制也是Qt区别与其他开发平台的重要核心特性,还是非常有必要单独介绍. 二.信 ...

  2. 第四章 、PyQt中的信号(signal)和槽(slot)机制以及Designer中的使用

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 前面章节其实已经在使用信号和槽了,但是作为Qt中最重要的机制也是Qt区别与其他开发平台的重 ...

  3. 使用uart串口接收模块接收信号,控制led灯闪烁

    功能描述: 使用遵循uart协议的接收模块接收控制信号,用来控制led的闪烁. 设计输入: 1.uart输入信号 2.时钟信号 3.复位信号 4.led信号 设计思路: 总体上:前面已经写了串口接收模 ...

  4. 笔记本(WIN7|XP)发射wifi信号 当无线路由使用

    Windows7系统 第一步:是你的电脑上要有两个网卡一个有线一个无线(笔记本应该都有)台式机可以考虑买个USB无线网卡(50左右) 第二步:win+R  CMD  输入(只输入红色部分) netsh ...

  5. PyQt(Python+Qt)学习随笔:QListWidget的信号简介

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 不含继承信号,QListWidget自身的信号包括如下: currentItemChanged(QL ...

  6. PyQt(Python+Qt)学习随笔:信号签名中的万能Python类型PyQt_PyObject

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 信号在定义时参数如果使用字符串'PyQt_PyObject'表示参数可以是任何Python类型,这通 ...

  7. 第15.19节 PyQt(Python+Qt)入门学习:自定义信号与槽连接

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 本文利用中介绍了PyQt中的信号和槽机制,除了使用PyQt组件的已有信号外,PyQt和Qt ...

  8. 基于Arduino、STM32进行红外遥控信号接收

    catalogue . 遥控器原理简介 . 红外遥控原理 . 常见红外遥控器红外线信号传输协议 . 遙控器的发展 . 实验过程 . 攻击面 . 基于STM32实现红外信号解码 1. 遥控器原理简介 0 ...

  9. Qt的事件模型(5种使用办法,通常重新实现event handler即可。只有定义控件才需要管理信号的发射)

    Qt的事件模型 1.事件的概念 应用程序对象将系统消息接收为 Qt 事件.应用程序可以按照不同的粒度对事件加以监控.过滤并做出响应. 在 Qt 中,事件是指从 QEvent继承 的对象.Qt将事件发送 ...

随机推荐

  1. 关于JavaScript初级的知识点一(持续更新 )

    自己刚开始接触JS这是自己一个多月以来的一些总结和回顾. 一.什么是js? js是一种弱类型的脚本语言,是HTML的3大组成部分之一.HTML标签 CSS样式 JS脚本. 二.js的5种基本数据类型 ...

  2. Java Bean、POJO、 Entity、 VO 、PO、DAO

    Java Bean.POJO. Entity. VO , 其实都是java 对象,只不过用于不同场合罢了.    Java Bean: 就是一个普通的Java 对象, 只不过是加了一些约束条件.  声 ...

  3. Android WebView使用

    转自:http://www.cnblogs.com/oakpip/archive/2011/04/08/2009800.html 大部分内容为网上整理其它高人的帖子,现只作整理,用于查看: 在Andr ...

  4. 使用 Git Hooks 实现自动项目部署

    最近在某服务器上面搭建 git 开发和部署环境,git 开发环境很简单,按照 ProGit 一书的相关知识就可以轻松搞定,实现了类似 Github 的使用 SSH + 私有 Clone 的方式. 关于 ...

  5. Python全栈开发【re正则模块】

    re正则模块 本节内容: 正则介绍 元字符及元字符集 元字符转义符 re模块下的常用方法 正则介绍(re) 正则表达式(或 RE)是一种小型的.高度专业化的编程语言. 在Python中,它内嵌在Pyt ...

  6. 前端JS常用字符串处理实例

    字符串处理常常用在处理服务器回传的数据.动态拼接生成html等,是前端面试的必考题. 我觉得字符串处理这种常用到的,一定要了然于心,不然用到时急急忙忙去翻手册费半天. 入正题,首先提出平常遇到的几个需 ...

  7. 442. Find All Duplicates in an Array

    https://leetcode.com/problems/find-all-duplicates-in-an-array/ 一列数,1 ≤ a[i] ≤ n (n = size of array), ...

  8. 源码安装php

    php安装扩展源yum install epel-releaseyum updateyum install libmcrypt libmcrypt-devel mcrypt mhash -yyum i ...

  9. apk反编译工具

    反编译工具: apktool:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar:将apk反编译成Java源码(classes.dex转化成jar文件) jd-gui:查看APK中 ...

  10. 基于ACE的c++线程封装

    1. 基本需求 1) 一个基类,其某个方法代表一个线程的生命运行周期.之后通过继承自这个基类来实现个性化线程类: 2) 具备类似QObject的定时器设置功能: 3) 提供在线程对象中同步和异步执行方 ...