내 연락처는 새로운 연락처가 추가되면 QTableQidget을 업데이트하는 것입니다. 연락처 나 QTableWidget에 나타나는 연락처를 추가하는 데 아무런 문제가 없습니다. 내 문제는 내가 프로그램을 종료 한 다음 새로 추가 된 연락처를 보려면 다시 시작해야한다는 것입니다. 프로그램을 종료하지 않고 데이터베이스에 추가 할 때 새 연락처를 표시하기 위해 QTableWidget을 갱신하거나 새로 고치는 방법입니다. 나는 update()를 시도하고 다시 칠해 봤고 아무것도 바뀌지 않았다. QTableWidget을 업데이트하는 방법은 무엇입니까?
class BrowseContacts(QtGui.QWidget):
#Display New Contacts Widget
def __init__(self):
super(BrowseContacts, self).__init__()
self.initUI()
self.contactsData()
#User Interface
def initUI(self):
self.new_layout = QtGui.QGridLayout()
self.contactsTableWidget = QtGui.QTableWidget()
self.contactsTableWidget.setColumnCount(10)
self.contacts_label = ['First Name', 'Last Name', 'Home Phone', 'Cell Phone', 'Business Name', 'Email Address', 'Address', 'City', 'State', 'Zip Code']
self.contactsTableWidget.setHorizontalHeaderLabels(self.contacts_label)
self.contactsTableWidget.setSortingEnabled(True)
self.new_layout.addWidget(self.contactsTableWidget)
self.setLayout(self.new_layout)
self.setStyleSheet('QTableWidget::item {background-color: #ffffff; color: #000000}' 'QTableWidget::item:selected {background-color: #3aa8ad; color: #ffffff;}')
def contactsData(self):
#Connect to Database
connection = sqlite3.connect('contacts.db')
cur = connection.cursor()
rowcount = cur.execute('''SELECT COUNT(*) FROM contacts''').fetchone()[0]
self.contactsTableWidget.setRowCount(rowcount)
cur.execute('''SELECT * FROM contacts''')
for row, contacts in enumerate(cur):
for column, contact in enumerate(contacts):
self.contactsTableWidget.setItem(row, column, QtGui.QTableWidgetItem(str(contact)))
cur.close()
connection.commit()
connection.close()
당신은
이없는 10 초마다 다시로드됩니다. 함수가 실제로 실행되고 데이터 행 수가 실제로 변경되는지 확인하려면 인쇄물을 추가하십시오. – Photon
감사합니다. 그 일을 어떻게 진행하는지에 대한 힌트를 줄 수 있습니까? 무엇을 인쇄하고 어디에서 인쇄 기능을 넣을 것입니까? 죄송 합니다만 그건 바보 같은 질문입니다. 나는 조금 혼란스러워. – irunintotrees
'self.contactsTableWidget.setRowCount (rowcount)''print '와 같은 것을 추가하기 전에 rowcount를 {} ". format (rowcount)'에 설정하십시오. 함수가 호출되고 새로운 행 수를 설정하는 것으로 나타납니다. 인쇄물이 보이지 않거나 번호가 변경되지 않으면 문제가 다른 곳에서 발생한다는 것을 알 수 있습니다. 다행히도 그럴 것입니다. – Photon