请扮演一个开发者,用python的pyqt5库,写一个8行4列的表格,我需要指定每列的名称,表格里内容由程序传输,在页面左下角添加当前时间和“爬取条数”,这是个变量,在右下角添加开始的按钮
时间: 2024-05-12 21:16:25 浏览: 36
python写的小东西
好的,我可以帮您做这个。以下是代码示例:
```python
import sys
import time
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QLabel
class Table(QWidget):
def __init__(self, rows, columns, column_names):
super().__init__()
# Create table widget
self.table = QTableWidget()
self.table.setRowCount(rows)
self.table.setColumnCount(columns)
# Set column names
self.table.setHorizontalHeaderLabels(column_names)
# Create time and count labels
self.time_label = QLabel()
self.count_label = QLabel()
# Create start button
self.start_button = QPushButton('开始')
# Layout
layout = QVBoxLayout()
layout.addWidget(self.table)
h_layout = QHBoxLayout()
h_layout.addWidget(self.time_label)
h_layout.addWidget(self.count_label)
layout.addLayout(h_layout)
layout.addWidget(self.start_button)
self.setLayout(layout)
# Connect button to slot
self.start_button.clicked.connect(self.start)
def start(self):
# Placeholder function for button click
pass
def set_cell_content(self, row, column, content):
item = QTableWidgetItem(content)
self.table.setItem(row, column, item)
def set_time_label(self, text):
self.time_label.setText(text)
def set_count_label(self, text):
self.count_label.setText(text)
if __name__ == '__main__':
app = QApplication(sys.argv)
# Define table parameters
rows = 8
columns = 4
column_names = ['Column 1', 'Column 2', 'Column 3', 'Column 4']
# Create table object
table = Table(rows, columns, column_names)
# Set window properties
table.setWindowTitle('Table Demo')
table.setGeometry(100, 100, 800, 600)
table.show()
sys.exit(app.exec_())
```
以上代码会创建一个 8 行 4 列的表格,每列的名称会由 `column_names` 变量指定。表格里的内容可以通过调用 `set_cell_content()` 函数传输。页面左下角的时间和“爬取条数”可以通过调用 `set_time_label()` 和 `set_count_label()` 函数进行实时更新。页面右下角的开始按钮可以通过点击触发 `start()` 函数。您可以在 `start()` 函数内添加您的抓取代码。
阅读全文