翻页控件:

一、定义并发射信号:

 #!/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. 夏夏的php开发笔记开写啦

    主要写一些平时drupal.dedecms.帝国cms.wordpress等php程序开发过程中遇到的问题,以及解决的过程,记录夏夏的成长,把握契机,创造未来

  2. document封装一些常用的方法

    /** * 批量修改元素样式 */ function css(domObj,styleArry){ for(var i=0;i<styleArry.length;i++){ domObj.sty ...

  3. Android插件化框架研究-DroidPlugin

    直接贴上我做的ppt.

  4. Excel2013 基本用法(下)

    排序 按行/列排序 选择单元格,点击"排序"(点击之后自动全选) 点击选项,弹出"排序选项",根据自己需要选择按行排序/按列排序. 输入排序条件. 确定. 复杂 ...

  5. angular 自定义指令 directive transclude 理解

    项目中断断续续的用了下angular,也没狠下心 认真的学习.angular 特别是自定义指令这块 空白. transclude 定义是否将当前元素的内容转移到模板中.看解释有点抽象. 看解释有点抽象 ...

  6. phpstudy 局域网访问

    安装mantis缺陷管理系统,我使用的是phpstudy集成环境.之前使用wamp,同事说phpstudy好更新php版本,所有就用phpstudy了. 今天安装好phpstudy,下载mantis安 ...

  7. $_session (应用)

    登录: 封装类(用于连接数据库)代码中创建一个对象最好可以重复使用 <?php class DBDA { public $host="localhost"; public $ ...

  8. python 以及其他java php等在ubuntu上切换的命令

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo update-alternati ...

  9. TFS API:三、TFS WorkItem添加和修改、保存

    TFS API:三.TFS  WorkItem添加和修改.保存 WorkItemStore:表示跟踪与运行 Team Foundation Server的服务器的工作项客户端连接. A.添加工作项 1 ...

  10. visual studio 2015连接到MySql相关问题

    vs中使用服务器资源管理器连接到MySQL没有成功.按照网上提供的解决方法,相关插件已经安装: 1.控制面板中,MySQL Connector Net 6.9.9已经安装(原安装版本为6.9.8,后升 ...