日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pyqt5 下拉 多页 点击_PyQt5实战——自定义翻页控件实现

發布時間:2025/3/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pyqt5 下拉 多页 点击_PyQt5实战——自定义翻页控件实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分頁控件效果圖

一、環境要求

python解釋器:python3.7.4

依賴:PyQt5、sys模塊

二、思路分析

1、布局:”上一頁“、”下一頁“等button、edit及label控件采用水平布局,使用該布局填充主控件QWidget

2、類繼承關系:主界面繼承自QWidget,然后把button、edit、label等控件作為成員變量,實現自定義的Widget

3、類接口分析:自定義的控件提供屬性接口,方便多種類對象之間的交互

三、代碼實現步驟

1、定義一個新的控件,繼承自QWidget

2、新控件界面的實現:使用QHBoxLayout容器,依次添加效果圖所示的控件(也就是QPushButton、QLabel、QLineEdit等),并設置這些控件的文本屬性

3、校驗:為當前頁數,總過頁數及跳轉頁數添加校驗(永遠不要相信用戶的輸入),當前頁數至少為1,且不能大于總的頁數,跳轉的頁數只能在1到總的頁數之間,且輸入框只能輸入整數

4、添加事件響應

四、代碼展示

from PyQt5.QtWidgets import (QWidget,QHBoxLayout,QPushButton,QLabel,QLineEdit,QApplication)

from PyQt5.Qt import QIntValidator

import sys

'''

1、提供數據翻頁顯示接口

'''

class PageController(QWidget):

def __init__(self):

super().__init__()

self._init_ui()

def _init_ui(self):

control_layout = QHBoxLayout()

self.prePage = QPushButton("

self.curPage = QLabel("1")

self.nextPage = QPushButton("下一頁>")

self.totalPage = QLabel("共 " + str(10) + " 頁")

skipLable_0 = QLabel("跳到")

self.skipPage = QLineEdit()

self.skipPage.setPlaceholderText("請輸入跳轉的頁碼")

self.skipPage.setValidator(QIntValidator()) ?# 設置只能輸入int類型的數據

skipLabel_1 = QLabel("頁")

self.confirmSkip = QPushButton("確定")

control_layout.addStretch(1)

control_layout.addWidget(self.prePage)

control_layout.addWidget(self.curPage)

control_layout.addWidget(self.nextPage)

control_layout.addWidget(self.totalPage)

control_layout.addWidget(skipLable_0)

control_layout.addWidget(self.skipPage)

control_layout.addWidget(skipLabel_1)

control_layout.addWidget(self.confirmSkip)

control_layout.addStretch(1)

self.setLayout(control_layout)

self.setWindowTitle("分頁控件demo")

self.prePage.clicked.connect(self.button_clicked)

self.nextPage.clicked.connect(self.button_clicked)

self.confirmSkip.clicked.connect(self.button_clicked)

def button_clicked(self):

button_text=self.sender().text()

total_page=int(self.totalPage.text().split()[1])

current_page=int(self.curPage.text())

if "

self.skipPage.setText('')

current_page=current_page-1

if current_page<=1:

self.curPage.setText('1')

else:

self.curPage.setText(str(current_page))

if "下一頁>"==button_text:

self.skipPage.setText('')

current_page=current_page+1

if current_page<=total_page:

self.curPage.setText(str(current_page))

if "確定"==button_text:

if ''==self.skipPage.text():

return

page=int(self.skipPage.text())

if 1<=page<=total_page:

self.curPage.setText(str(page))

if page>total_page:

self.curPage.setText(str(total_page))

self.skipPage.setText(str(total_page))

if page<=0:

self.curPage.setText(str(1))

self.skipPage.setText(str(1))

@property

def PAGE(self):

return int(self.totalPage.text().split()[1])

@PAGE.setter

def PAGE(self,page:int):

if page<0:

return

self.totalPage.setText("共 " + str(page) + " 頁")

if __name__=='__main__':

app=QApplication(sys.argv)

win=PageController()

win.show()

sys.exit(app.exec_())

總結

以上是生活随笔為你收集整理的pyqt5 下拉 多页 点击_PyQt5实战——自定义翻页控件实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。