QTableWidget的使用详细介绍和美工总结

本文介绍了如何使用QTableWidget进行界面设计,包括设置边框、表头、选择模式、背景图片、字体、隐藏列、添加图片以及调整表头尺寸和样式。此外,还分享了如何插入、删除行和列,以及响应单元格的各种事件。同时,文章提供了QTableWidget美化的CSS和QSS应用实例。

基本外观设置

FriendTable->setFrameShape(QFrame::NoFrame);  //设置边框

FriendTable->setHorizontalHeaderLabels(HeadList);  设置表头

FriendTable->setSelectionMode(QAbstractItemView::SingleSelection);   设置选择的模式为单选择

FriendTable->setSelectionBehavior(QAbstractItemView::SelectRows);    设置选择行为时每次选择一行

FriendTable->setShowGrid(false);   设置不显示格子线

FriendTable->setFont(font);   设置字体

FriendTable->hideColumn(0);    //隐藏用户指定的某一列

 

设置表单背景或透明

QPalette pal = musicTable->palette();
pal.setBrush(this->backgroundRole(),QBrush(QPixmap("images/background.png")) );
    musicTable->setPalette( pal );

 

设置它的背景图片,也可以将QBrush初始化为QColor来设置背景颜色

QPalette pll = musicTable->palette();

pll.setBrush(QPalette::Base,QBrush(QColor(255,255,255,0)));

musicTable->setPalette(pll);  //和QTextEdit一样,都可以使用样式表QPalette来修改它的背景颜色和背景图片,这里我们把刷子设置为全透明的,就可以是透明的


在QTableWidget列表中添加图片的方法  
QTableWidgetItem *cubesHeaderItem = new QTableWidgetItem(tr("Cubes"));
cubesHeaderItem->setIcon(QIcon(QPixmap("1.png")));
cubesHeaderItem->setTextAlignment(Qt::AlignVCenter);
musicTable->setItem(1,1,cubesHeaderItem);   //在第一行第一列中显示图片

*******************表头的属性修改****************

musicTable->horizontalHeader()->resizeSection(

### QTableWidget详细使用指南 #### 什么是 QTableWidget? `QTableWidget` 是 Qt 框架中的一个重要组件,专门用于显示编辑表格形式的数据。它继承自 `QTableView` 并提供了更高级的功能来简化开发者的工作流程[^1]。 --- #### 基本功能与特性 以下是 `QTableWidget` 提供的一些核心功能: - **单元格管理**:支持创建、删除以及修改单个或多个单元格的内容。 - **列与行的操作**:可以动态增加或移除行列,并调整其大小。 - **信号槽机制**:通过内置的信号槽系统响应用户的交互行为(如点击、双击等)。 - **数据存储模型**:基于项 (`QTableWidgetItem`) 来保存每一条记录的信息。 这些特点使得该控件非常适合用来构建需要展示复杂结构化信息的应用程序界面[^2]。 --- #### 创建简单的 QTableWidget 表格实例 下面是一个完整的 Python 脚本来演示如何初始化并填充一个基本表: ```python from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QVBoxLayout, QWidget class TableExample(QWidget): def __init__(self): super().__init__() self.setWindowTitle('QTableWidget Example') layout = QVBoxLayout() table_widget = QTableWidget(4, 3) # 设置初始有四行三列 headers = ["Name", "Age", "City"] table_widget.setHorizontalHeaderLabels(headers) items_data = [ ("Alice", "25", "New York"), ("Bob", "30", "Los Angeles"), ("Charlie", "35", "Chicago"), ("David", "40", "Houston") ] for row_index, (name, age, city) in enumerate(items_data): name_item = QTableWidgetItem(name) age_item = QTableWidgetItem(age) city_item = QTableWidgetItem(city) table_widget.setItem(row_index, 0, name_item) table_widget.setItem(row_index, 1, age_item) table_widget.setItem(row_index, 2, city_item) layout.addWidget(table_widget) self.setLayout(layout) if __name__ == '__main__': app = QApplication([]) window = TableExample() window.show() app.exec_() ``` 此脚本定义了一个窗口类,在其中嵌入了一张具有预设内容的小型表格。 --- #### 高级主题——性能优化技巧 当处理大规模或者实时变动的数据集时,可能会遇到效率低下甚至崩溃的情况。针对这种情况可以从以下几个方面入手改进: 1. **验证索引的有效性** 在访问任何特定位置之前先确认对应的 `QModelIndex` 是否仍然有效,这有助于防止潜在的内存错误发生[^3]。 2. **避免多线程干扰** 所有的 GUI 更新都应当发生在主线程之内;如果后台任务完成了某些计算,则应该借助信号通知前端刷新视图而不是直接操作 widget 对象本身。 3. **减少不必要的绘制请求** 不要频繁调用像 `update()` 或者 `repaint()` 这样的函数除非确实必要,因为它们都会触发整个区域重新渲染的过程从而消耗大量 CPU 时间。 --- #### 参考资料推荐 对于希望深入学习的朋友来说,《QT5软件开发入门教程》是一份非常宝贵的资源材料,里面包含了丰富的理论讲解加上实际案例分析可以帮助快速上手包括但不限于 `QTableWidget` 在内的众多其他模块的学习过程[^4]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值