반응형
<질문>
저는 현재 Qt Designer에서 디자인 된 위젯을 작업하고 있습니다. PyQT의 Qtable에 행을 추가하려는 구문 / 전체 개념에 문제가 있습니다. 행을 동적으로 추가하는 방법은 아직 없습니다. 어떤 제안이라도 도움이 될 것입니다.
문안 인사
<답변1>
빈 행을 추가하고 나중에 모든 열을 채울 수 있습니다. 다른 모든 행 아래에 행을 삽입하는 방법은 다음과 같습니다.
rowPosition = self.table.rowCount()
table.insertRow(rowPosition)
그 후 다음과 같이 채울 수있는 빈 행이 있습니다 (열이 3 개인 경우).
table.setItem(rowPosition , 0, QtGui.QTableWidgetItem("text1"))
table.setItem(rowPosition , 1, QtGui.QTableWidgetItem("text2"))
table.setItem(rowPosition , 2, QtGui.QTableWidgetItem("text3"))
다른 위치에 행을 삽입 할 수도 있습니다 (테이블 끝에 필요하지 않음).
<답변2>
다소 이상하다는 것을 발견했습니다. 행을 삽입하려면 다음과 유사한 내용을 따라야합니다.
tableWidget = QTableWidget()
currentRowCount = tableWidget.rowCount() #necessary even when there are no rows in the table
tableWidget.insertRow(currentRowCount, 0, QTableWidgetItem("Some text"))
코드의 마지막 줄을 명확히하기 위해 insertRow ()의 첫 번째 매개 변수는 현재 행이고 두 번째 매개 변수는 현재 열 (항상 0부터 시작)이며 세 번째 매개 변수는 거의 항상 QTableWidgetItem 유형이어야합니다.
<답변3>
def add_guest(self):
rowPosition = self.tableWidget.rowCount()
self.tableWidget.insertRow(rowPosition)
guest_name = self.lineEdit.text()
guest_email = self.lineEdit_2.text()
numcols = self.tableWidget.columnCount()
numrows = self.tableWidget.rowCount()
self.tableWidget.setRowCount(numrows)
self.tableWidget.setColumnCount(numcols)
self.tableWidget.setItem(numrows -1,0,QtGui.QTableWidgetItem(guest_name))
self.tableWidget.setItem(numrows -1,1,QtGui.QTableWidgetItem(guest_email))
print "guest added"
이것이 내 이벤트 조직 응용 프로그램을 수행 한 방법입니다.
<답변4>
이 기능을 사용할 수 있습니다
def table_appender(widget, *args):
def set_columns(len, pos):
if pos == len-1:
widget.setItem(widget.rowCount()-1, pos, QTableWidgetItem(args[pos]))
else:
widget.setItem(widget.rowCount()-1, pos, QTableWidgetItem(args[pos]))
set_columns(len, pos+1)
widget.insertRow(widget.rowCount())
set_columns(widget.columnCount(), 0)
반응형
'개발 > Python' 카테고리의 다른 글
QComboBox의 현재 텍스트 내용을 어떻게 얻습니까? (0) | 2020.09.18 |
---|---|
PIL을 사용하여 이미지 크기를 조정하고 종횡비를 유지하려면 어떻게합니까? (0) | 2020.09.18 |
요청과 함께 파이썬으로 큰 파일 다운로드 (0) | 2020.09.18 |
Python에서 포착되지 않은 예외 로깅 (0) | 2020.09.18 |