zoukankan      html  css  js  c++  java
  • pyqt 发射接收信号

    翻页控件:

    一、定义并发射信号:

      1 #!/usr/bin/python
      2 # #coding=utf-8
      3 # __author__=''
      4 
      5 
      6 from PyQt4.QtCore import *
      7 from PyQt4.QtGui import *
      8 
      9 import pageItem_ui
     10 
     11 
     12 class pageItem(QWidget):
     13     # 定义信号
     14     emit_page_changed = pyqtSignal(int, int)
     15 
     16     def __init__(self, parent=None):
     17         QWidget.__init__(self, parent)
     18         self.ui = pageItem_ui.Ui_Form()
     19 
     20         self.page_num = 1
     21         self.page_rows = 50
     22         self.total_page = 0
     23         self.init_ui()
     24         self.init_ui_data()
     25 
     26     def init_ui(self):
     27         self.setObjectName('pageItem')
     28         self.ui.setupUi(self)
     29         self.setStyleSheet("QComboBox QAbstractItemView::item{height:25px;}")
     30         self.ui.comboBox_show_page_num.setView(QListView())
     31 
     32         regExp = QRegExp('^[1-9][0-9]*$')
     33         self.ui.comboBox_show_page_num.setValidator(QIntValidator(1, 999, self))
     34         self.ui.lineEdit_jump_page.setValidator(QRegExpValidator(regExp, self))
     35 
     36         self.connect(self.ui.pushButton_jump, SIGNAL('clicked()'), self.slot_pushButton_jump_clicked)
     37         self.connect(self.ui.pushButton_per_page, SIGNAL('clicked()'), self.slot_pushButton_per_clicked)
     38         self.connect(self.ui.pushButton_next_page, SIGNAL('clicked()'), self.slot_pushButton_next_clicked)
     39 
     40 
     41     def init_ui_data(self):
     42         self.setPageNum(1)
     43 
     44     def slot_pushButton_jump_clicked(self):
     45         # 获取跳转数据
     46         try:
     47             page_jump_num = self.ui.lineEdit_jump_page.text().toInt()[0]
     48             if page_jump_num > self.total_page or page_jump_num < 1:
     49                 return
     50             self.setPageNum(page_jump_num)
     51             self.emit_page_changed.emit(self.pageRows(), self.pageNum())
     52         except Exception,e:
     53             print str(e)
     54 
     55     def slot_pushButton_per_clicked(self):
     56         '''
     57         上一页
     58         :return:
     59         '''
     60 
     61         pageNum = self.pageNum() - 1
     62 
     63         if pageNum < 0:
     64             return
     65 
     66         self.setPageNum(pageNum)
     67 
     68         self.emit_page_changed.emit(self.pageRows(), self.pageNum())
     69 
     70     def slot_pushButton_next_clicked(self):
     71         '''
     72         下一页
     73         :return:
     74         '''
     75         pageNum = self.pageNum() + 1
     76         if pageNum > self.total_page:
     77             return
     78         self.setPageNum(pageNum)
     79 
     80         self.emit_page_changed.emit(self.pageRows(), self.pageNum())
     81 
     82     def pageRows(self):
     83         '''
     84         获取当前每页显示行数
     85         :return 行数:
     86         '''
     87         pageRows = self.ui.comboBox_show_page_num.currentText().toInt()[0]
     88         if pageRows <= 0:
     89             pageRows = 50
     90         self.page_rows = pageRows
     91         return pageRows
     92 
     93     def pageNum(self):
     94         '''
     95         获取当前显示页数
     96         :return:
     97         '''
     98         return self.page_num
     99 
    100     def setPageNum(self, pageNum):
    101         '''
    102         设置页数
    103         :param pageNum:
    104         :return:
    105         '''
    106         if pageNum <= 0:
    107             pageNum = 1
    108         self.page_num = pageNum
    109         self.ui.lineEdit_jump_page.setText(QString.number(pageNum))
    110 
    111     def setTotalRows(self, total):
    112         '''
    113         设置总行数
    114         :param total:
    115         :return:
    116         '''
    117 
    118         if total < 0:
    119             total = 0
    120 
    121         pagetotal = total/self.page_rows
    122         if (total%self.page_rows) != 0:
    123             pagetotal += 1
    124 
    125         self.total_page = pagetotal
    126 
    127         strPageNum = QString.number(pagetotal)
    128         self.ui.label_total_page_num.setText(strPageNum)
    129 if __name__ == '__main__':
    130     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)

      




  • 相关阅读:
    2017-5-21 Asp.Net内置对象 和 DropDownList时间年月日的三级联动
    【2017-04--28】Winform中ListView控件
    【2017-04-27】布局及容器控件、打开多窗体、构造函数传值、打开唯一窗口
    【2017-04-25】winform公共控件、菜单和工具栏
    【2017-04-24】WinForm基础、登录窗口、窗口属性
    【2017-04-20】Sql字符串注入式攻击与防御,实体类,数据访问类
    【2017-04-18】Ado.Net C#连接数据库进行增、删、改、查
    【2017-04-17】类库、通用变量、is和as、委托
    【2017-04-16】抽象类、接口、构造函数、重载、静态成员和方法
    【面向对象】类、访问修饰符、封装、继承、多态
  • 原文地址:https://www.cnblogs.com/haoxr/p/5773456.html
Copyright © 2011-2022 走看看