QTableWidget,QTableView分页(1)——制作分页栏

 近日做了个tablewidget的分页,也没啥好说的,直接上内容吧。

效果预览:
这里写图片描述

一共有两个分页栏,上面的是借(chao)鉴(xi)别人的,地址如下:
传送门
在他人基础上做了个自己合适的分页栏,也就是第二个,将这俩一并拿出来说吧,如有侵权,会删除第一个。

开发环境:windows7 + vs2015 + QT5.8

一、了解QSS:

 qt支持qss,类似于web页面与css的关系,高效便捷地设置ui样式,这点还是蛮不错的。了解web的同学可以直接跳过,对不不了解qss的同学,这里简单介绍下:
qss文件:

QPushButton { color: red }

在初始化的时候从文件读取,并且设置样式

QFile file("xxx.qss");
file.open(QFile::ReadOnly);
if(file.isOpen())
{
    qss = QLatin1String(file.readAll());
    a.setStyleSheet(qss); //QApplication a
    file.close();
}

即 按钮样式设置为:字体颜色红色,如下图:
这里写图片描述

二、分页思路:

  说来说去 ,其实也不过是对于控件的运用,自定义一个组合空间,封装下便于使用,弄清楚了本质,那就很简单。

1、分页栏1:

 这个思路较第二种稍微复杂点,首先我们需要明确的是 ,按照最复杂最典型的程度,应该是分三个模块的,即:

1 2 3 ... 7 8 9 ... 13 14 15  

上面分页列表中,1 2 3页,做为一个模块,即左页面模块(leftPagesWidget),7 8 9页表示中间模块(CenterPagesWidget), 13 14 15页为右页面模块(RightPagesWidget)。
而中间的省略号,根据当前页和总页数来决定显示与否,如:

1 2 3 ... 7 8 9 10 11 12  
1 2 3 7 8 9 10 11 12  
  • 8
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
QTableWidgetQTableViewQt框架中用于显示表格数据的两个类。QTableWidget是一个预定义的表格控件,可以直接在界面上使用,而QTableView是一个更灵活的类,可以与自定义的数据模型一起使用。 QSSQt Style Sheets)是一种用于设置Qt应用程序界面样式的机制。它类似于CSS(Cascading Style Sheets),可以通过设置样式属性来改变控件的外观和布局。 下面是一个使用QTableWidgetQTableView的例子: 1. 使用QTableWidget创建表格并设置数据: ```python from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem app = QApplication([]) table_widget = QTableWidget(3, 3) # 创建一个3行3列的表格 # 设置表头 table_widget.setHorizontalHeaderLabels(['Name', 'Age', 'Gender']) # 设置数据 data = [['Alice', '25', 'Female'], ['Bob', '30', 'Male'], ['Charlie', '35', 'Male']] for row, row_data in enumerate(data): for col, col_data in enumerate(row_data): item = QTableWidgetItem(col_data) table_widget.setItem(row, col, item) table_widget.show() app.exec_() ``` 2. 使用QTableView和自定义数据模型创建表格: ```python from PyQt5.QtWidgets import QApplication, QTableView, QStandardItemModel, QStandardItem app = QApplication([]) table_view = QTableView() # 创建数据模型 model = QStandardItemModel(3, 3) # 创建一个3行3列的数据模型 # 设置表头 model.setHorizontalHeaderLabels(['Name', 'Age', 'Gender']) # 设置数据 data = [['Alice', '25', 'Female'], ['Bob', '30', 'Male'], ['Charlie', '35', 'Male']] for row, row_data in enumerate(data): for col, col_data in enumerate(row_data): item = QStandardItem(col_data) model.setItem(row, col, item) table_view.setModel(model) table_view.show() app.exec_() ``` 3. 使用QSS设置表格样式: ```python from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem app = QApplication([]) table_widget = QTableWidget(3, 3) # 创建一个3行3列的表格 # 设置表头 table_widget.setHorizontalHeaderLabels(['Name', 'Age', 'Gender']) # 设置数据 data = [['Alice', '25', 'Female'], ['Bob', '30', 'Male'], ['Charlie', '35', 'Male']] for row, row_data in enumerate(data): for col, col_data in enumerate(row_data): item = QTableWidgetItem(col_data) table_widget.setItem(row, col, item) # 设置表格样式 table_widget.setStyleSheet("QTableView {background-color: yellow;}") table_widget.show() app.exec_() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值