import random
import sys
from PyQt5.Qt import *
from PyQt5.QtCore import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('例子')
self.setGeometry(50, 200, 400, 300)
self.setup_ui()
self.table = QTableWidget()
self.mainLayout = QVBoxLayout()
self.mainLayout.addWidget(self.table)
self.setLayout(self.mainLayout)
self.table.setRowCount(120)
self.table.setColumnCount(3)
self.table.setHorizontalHeaderLabels(['序号', '条目内容', '随机性'])
# 最后一列自动拉伸
self.table.horizontalHeader().setStretchLastSection(True)
# self.table_view.verticalHeader().hide() #隐藏列标题栏
self.table.setSelectionBehavior(QTableWidget.SelectRows)#设置选中一行
self.table.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch) # 表格自由拉伸
# self.table.setItem(0, 0, QTableWidgetItem("姓名"))
self.data = [[str(i), 'Item %d' % i, str(i * random.randint(1, 1000))] for i in range(1, 1000)]
self.table.setSortingEnabled(True)
# # 点击表头信号连接到sort方法
# self.table.horizontalHeader().sectionClicked.connect(self.sort)
for rowIndex, row in enumerate(self.data):
for columnIndex, Item in enumerate(row):
self.table.setItem(rowIndex, columnIndex, QTableWidgetItem(Item))
# self.table.item(0,0).setText('999')
# self.table.item(0, 0).setBackground(Qt.GlobalColor.red)#设置背景颜色
# self.table.item(0, 0).setForeground(Qt.GlobalColor.blue)#设置字体颜色
# 设置子控件
def setup_ui(self):
# self.table.cellClicked.connect(lambda row, col: print(f'{row},{col}'))
pass
def sort(self, n):
self.table.sortItems(n, order=1)
if __name__ == "__main__":
# 创建一个应用程序对象
app = QApplication(sys.argv)
# 创建控件
window = Window()
# 显示窗口,展示控件
window.show()
# 应用程序的执行,进入到消息循环
sys.exit(app.exec_())
表格基础操作
最新推荐文章于 2024-07-18 15:53:23 发布