本文实例为大家分享了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