您有几个问题可以归结为一个…简短答案,是的,您可以向QTableWidget添加按钮-
您可以通过调用setCellWidget将任何窗口小部件添加到表格窗口小部件:
# initialize a table somehowtable = QTableWidget(parent)table.setRowCount(1)table.setColumnCount(1)# create an cell widgetbtn = QPushButton(table)btn.setText('12/1/12')table.setCellWidget(0, 0, btn)但这听起来并不像您真正想要的。
听起来您想对用户双击一个单元格做出反应,就像他们单击了一个按钮一样,大概是要弹出对话框或编辑器之类的东西。
在这种情况下,您真正需要做的就是从QTableWidget连接到itemDoubleClicked信号,如下所示:
def editItem(item): print 'editing', item.text()# initialize a table widget somehowtable = QTableWidget(parent)table.setRowCount(1)table.setColumnCount(1)# create an itemitem = QTableWidgetItem('12/1/12')table.setItem(0, 0, item)# if you don't want to allow in-table editing, either disable the table like:table.setEditTriggers( QTableWidget.NoEditTriggers )# or specifically for this itemitem.setFlags( item.flags() ^ Qt.ItemIsEditable)# create a connection to the double click eventtable.itemDoubleClicked.connect(editItem)


