本文实例为大家分享了python实现分页效果展示的具体代码,供大家参考,具体内容如下
难点:清空Layout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
#!/usr/bin/python #-*-coding:utf-8-*- from PyQt4.QtCore import * from PyQt4.QtGui import * class PageWidget(QWidget): def __init__( self ,parent = None ): super (PageWidget, self ).__init__(parent) self .btns = [] self .count = 0 self .presign = 0 #当前点击标识 self .nextsign = 0 #当前点击标识 self .pre_button = QPushButton() self .pre_button.setText( "<<" ) self .pre_button.setFixedSize( 25 , 25 ) self .connect( self .pre_button,SIGNAL( "clicked()" ), self ,SLOT( "prepage()" )) self .next_button = QPushButton() self .next_button.setText( ">>" ) self .connect( self .next_button,SIGNAL( "clicked()" ), self ,SLOT( "nextpage()" )) self .next_button.setFixedSize( 25 , 25 ) self .center_layout = QHBoxLayout() self .nextpage() self .page_layput = QHBoxLayout() self .page_layput.addWidget( self .pre_button) self .page_layput.addLayout( self .center_layout) self .page_layput.addWidget( self .next_button) self .setLayout( self .page_layput) @pyqtSlot () def prepage( self ): self .presign = 1 self .num = 0 if ( len ( self .btns)> 0 ) and ( self .count> = 10 ): for p in range ( 10 ): self .center_layout.removeWidget( self .btns[p]) self .btns[p].deleteLater() self .btns = [] if self .count> = 10 : if self .nextsign = = 1 : self .count = self .count - 20 self .nextsign = 0 else : self .count = self .count - 10 self .num = self .count for i in range ( 10 ): self .num + = 1 self .center_button = QPushButton() self .center_button.setText( str ( self .num)) self .center_button.setFixedSize( 25 , 25 ) self .btns.append( self .center_button) self .center_layout.addWidget( self .center_button) #print self.count @pyqtSlot () def nextpage( self ): self .nextsign = 1 if len ( self .btns)> 0 : for p in range ( 10 ): self .center_layout.removeWidget( self .btns[p]) self .btns[p].deleteLater() self .btns = [] if self .presign = = 1 : self .count = self .count + 10 self .presign = 0 #mapper转有参数 signal_mapper = QSignalMapper( self ) for i in range ( 10 ): self .count + = 1 self .center_button = QPushButton() self .center_button.setText( str ( self .count)) self .center_button.setFixedSize( 25 , 25 ) self .btns.append( self .center_button) self .connect( self .center_button,SIGNAL( "clicked()" ),signal_mapper,SLOT( "map()" )) signal_mapper.setMapping( self .center_button, str ( self .count)) self .center_layout.addWidget( self .center_button) self .connect(signal_mapper, SIGNAL( "mapped(QString)" ), self , SLOT( "showpage(QString)" )) #print self.count @pyqtSlot (QString) def showpage( self ,page): print page if __name__ = = '__main__' : import sys app = QApplication(sys.argv) page = PageWidget() page.show() sys.exit(app.exec_()) |
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/jylonger/article/details/45767237