pyqt 发射接收信号
翻页控件:
一、定义并发射信号:
#!/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 发射接收信号的更多相关文章
- 第15.16节 PyQt(Python+Qt)入门学习:PyQt中的信号(signal)和槽(slot)机制以及Designer中的使用
老猿Python博文目录 老猿Python博客地址 一.引言 前面一些章节其实已经在使用信号和槽了,但是作为Qt中最重要的机制也是Qt区别与其他开发平台的重要核心特性,还是非常有必要单独介绍. 二.信 ...
- 第四章 、PyQt中的信号(signal)和槽(slot)机制以及Designer中的使用
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 前面章节其实已经在使用信号和槽了,但是作为Qt中最重要的机制也是Qt区别与其他开发平台的重 ...
- 使用uart串口接收模块接收信号,控制led灯闪烁
功能描述: 使用遵循uart协议的接收模块接收控制信号,用来控制led的闪烁. 设计输入: 1.uart输入信号 2.时钟信号 3.复位信号 4.led信号 设计思路: 总体上:前面已经写了串口接收模 ...
- 笔记本(WIN7|XP)发射wifi信号 当无线路由使用
Windows7系统 第一步:是你的电脑上要有两个网卡一个有线一个无线(笔记本应该都有)台式机可以考虑买个USB无线网卡(50左右) 第二步:win+R CMD 输入(只输入红色部分) netsh ...
- PyQt(Python+Qt)学习随笔:QListWidget的信号简介
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 不含继承信号,QListWidget自身的信号包括如下: currentItemChanged(QL ...
- PyQt(Python+Qt)学习随笔:信号签名中的万能Python类型PyQt_PyObject
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 信号在定义时参数如果使用字符串'PyQt_PyObject'表示参数可以是任何Python类型,这通 ...
- 第15.19节 PyQt(Python+Qt)入门学习:自定义信号与槽连接
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 本文利用中介绍了PyQt中的信号和槽机制,除了使用PyQt组件的已有信号外,PyQt和Qt ...
- 基于Arduino、STM32进行红外遥控信号接收
catalogue . 遥控器原理简介 . 红外遥控原理 . 常见红外遥控器红外线信号传输协议 . 遙控器的发展 . 实验过程 . 攻击面 . 基于STM32实现红外信号解码 1. 遥控器原理简介 0 ...
- Qt的事件模型(5种使用办法,通常重新实现event handler即可。只有定义控件才需要管理信号的发射)
Qt的事件模型 1.事件的概念 应用程序对象将系统消息接收为 Qt 事件.应用程序可以按照不同的粒度对事件加以监控.过滤并做出响应. 在 Qt 中,事件是指从 QEvent继承 的对象.Qt将事件发送 ...
随机推荐
- LUA中将未分类数据分为测试集和训练集
require 'torch' require 'image' local setting = {parent_root = '/home/pxu/image'} function list_chil ...
- libvirt 安装篇
1. 环境:Centos 7 python 2.7 2. 安装 sudo yum install gcc python-devel libvirt libvirt-devel sudo ...
- Sicily 1151: 简单的马周游问题(DFS)
这道题嘛,直接使用DFS搜索,然后莫名其妙地AC了.后来看了题解,说是move的顺序不同的话可能会导致超时,这时便需要剪枝,真是有趣.原来自己是误打误撞AC了,hhh.题解还有另一种解法是先把一条完整 ...
- AndroidStudio非法字符: '\ufeff'解决
一. 问题解决办法 在昨天,帮助同学把他的Android项目从eclipse迁移到Android Studio上面的时候,编译时,Android Studio报了一个错误, ***.java Erro ...
- 修改jetty的默认端口号
jetty默认端口是8080,修改端口号也很简单,首先进入到jetty服务器安装目录下会看到start.ini配置文件,这里就是jetty启动时加载的配置,其中包括要加载的模块,超时时间配置还有这里的 ...
- cocos2d-x for android配置 & 运行 Sample on Linux OS
1.从http://www.cocos2d-x.org/download下载稳定版 比如cocos2d-x-2.2 2.解压cocos2d-x-2.2.zip,比如本文将其解压到 /opt 目录下 3 ...
- rem、px、em之间的区别以及网页响应式设计写法
个人收藏用,转载自:http://www.w3cplus.com/css3/define-font-size-with-css3-rem 在Web中使用什么单位来定义页面的字体大小,至今天为止都还在激 ...
- C# Lamda中类似于SQL 中的 In 功能
首先,在程序中接受一个数组 例如:int[] s=[1,2,3]; 在Lamda表达式中使用如下: db.userinfo.where(u=>s.Contains(u.id)); 等同于sql语 ...
- rdlc报表相关
错误提示:1.尚未指定报表定义的来源 注意ReportPath与ReportEmbeddedResource的区别,前者获取或设置本地报表的本地文件系统路径,设置此属性将导致后者属性值被忽略:后者将获 ...
- Oracle入门基础
使用SQLplus工具登录连接 开始->运行CMD-> C:\Users\Admininstrator> sqlplus 请输入用户名:sys@orcl as sysdba 输入口令 ...