如何将输入的数据传输QLineEdit到表格中QTableView?
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLineEdit, \
QTableView, QGridLayout, \
QLabel
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class Example(QWidget):
def __init__(self):
super().__init__()
self.table = QTableView(self)
self.model = QStandardItemModel()
self.table.setModel(self.model)
self.model.setHorizontalHeaderLabels(["Имя", "Палата"])
self.btn = QPushButton("Отправить", self)
self.years = QLabel('Возраст')
self.years_line = QLineEdit()
self.diagnose_line = QLineEdit()
self.diagnose = QLabel('Диагноз')
self.otd_line = QLineEdit()
self.otd = QLabel('Отделение')
self.gender_line = QLineEdit()
self.gender = QLabel('Пол')
self.name_line = QLineEdit()
self.name = QLabel('Имя')
self.init()
def init(self):
grid = QGridLayout()
self.setLayout(grid)
self.name.setAlignment(Qt.AlignCenter)
self.name_line.setPlaceholderText('Введите имя...')
grid.addWidget(self.name, 1, 1)
grid.addWidget(self.name_line, 2, 1)
self.gender.setAlignment(Qt.AlignCenter)
self.gender_line.setPlaceholderText('Введите пол...')
grid.addWidget(self.gender, 3, 1)
grid.addWidget(self.gender_line, 4, 1)
self.years.setAlignment(Qt.AlignCenter)
self.years_line.setPlaceholderText('Введите возраст...')
grid.addWidget(self.years, 5, 1)
grid.addWidget(self.years_line, 6, 1)
self.otd.setAlignment(Qt.AlignCenter)
self.otd_line.setPlaceholderText('Введите отделение...')
grid.addWidget(self.otd, 7, 1)
grid.addWidget(self.otd_line, 8, 1)
self.diagnose.setAlignment(Qt.AlignCenter)
self.diagnose_line.setPlaceholderText('Введите диагноз...')
grid.addWidget(self.diagnose, 9, 1)
grid.addWidget(self.diagnose_line, 10, 1)
self.table.move(10, 100)
self.table.resize(517, 400)
grid.addWidget(self.table, 12, 1, 5, 1)
grid.addWidget(self.btn, 11, 1, 1, -10)
self.btn.clicked.connect(self.add)
self.resize(700, 500)
self.setWindowTitle('?')
self.setWindowIcon(QIcon('key.png'))
self.show()
def add(self):
model = QStandardItemModel(4, 4)
for row in range(4):
for column in range(4):
item = QStandardItem("row %d, column %d" % (row, column))
model.setItem(row, column, item)
self.name_line.clear()
self.diagnose_line.clear()
self.otd_line.clear()
self.years_line.clear()
self.gender_line.clear()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

我调整了你的方法
add,同时缩短了你的代码: