pyQt5点击按钮pushButton在csv表格文件的最后增加一行按单元格顺序加入self.label_5.text() ,self.lineEdit_15.text()
时间: 2024-11-03 14:12:42 浏览: 20
在PyQt5中,你可以使用`PyQt5.QtWidgets`库的`QPushButton`和`QTableWidget`组件以及`PyQt5.QtCore`库的`QCoreApplication`来进行这样的操作。首先,你需要捕获`QPushButton`的点击信号并连接到一个槽函数,在这个槽函数中,可以创建一个新的列表,包含`self.label_5.text()`和`self.lineEdit_15.text()`的值,然后将这个新行添加到CSV文件的末尾。
这里是一个简单的示例:
```python
from PyQt5.QtWidgets import QApplication, QPushButton, QWidget
from PyQt5.QtGui import QTextCursor
import csv
class YourWindow(QWidget):
def __init__(self):
super().__init__()
# 创建按钮和线性编辑框
self.pushButton = QPushButton('Add Row', self)
self.pushButton.clicked.connect(self.add_row_to_csv)
self.lineEdit_15 = QLineEdit(self) # 假设lineEdit_15是你要保存输入的文本的LineEdit
layout = QVBoxLayout()
layout.addWidget(self.pushButton)
layout.addWidget(self.lineEdit_15)
self.setLayout(layout)
def add_row_to_csv(self):
new_data = [self.label_5.text(), self.lineEdit_15.text()]
with open('yourfile.csv', 'a', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(new_data)
# 如果你想在表头之后加新行,可以使用`追加模式`打开文件并跳过第一行(如果是存在的)
# with open('yourfile.csv', 'a', newline='', encoding='utf-8', skipinitialspace=True) as csvfile:
# reader = csv.reader(csvfile)
# writer = csv.writer(csvfile)
# row_num = sum(1 for row in reader)
# if row_num > 0:
# csvfile.seek(0)
# writer.writerow(new_data)
# 更新表格文件的内容后,你可以选择刷新你的QTableWidget或其他方式处理
# 例如,如果你有一个已关联到csv文件的QTableView,可以用以下方法更新:
# model = QStandardItemModel(self.your_table_view)
# model.appendRow(QStandardItem(*new_data))
# self.your_table_view.setModel(model)
app = QApplication([])
window = YourWindow()
window.show()
app.exec_()
```
注意:这个示例假设`yourfile.csv`存在,并且`label_5`和`lineEdit_15`已经正确地与你的窗口绑定。如果需要动态创建CSV文件,你需要在上述代码中添加相应的错误检查和文件路径管理。
阅读全文