无论如何在qtablewidget中添加像按钮一样?但是单元格中的日期必须显示,例如,如果用户双击一个单元格,我可以像按钮一样发送信号吗?谢谢!
edititem():
def editItem(self,clicked):
if clicked.row() == 0:
#go to tab1
if clicked.row() == 1:
#go to tab1
if clicked.row() == 2:
#go to tab1
if clicked.row() == 3:
#go to tab1
表触发器:
self.table1.itemDoubleClicked.connect(self.editItem)
答案 0 :(得分:17)
你有几个问题归成一个......简短的回答,是的,你可以在QTableWidget中添加一个按钮 - 你可以通过调用setCellWidget将任何小部件添加到表小部件中:
# initialize a table somehow
table = QTableWidget(parent)
table.setRowCount(1)
table.setColumnCount(1)
# create an cell widget
btn = 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 somehow
table = QTableWidget(parent)
table.setRowCount(1)
table.setColumnCount(1)
# create an item
item = 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 item
item.setFlags( item.flags() ^ Qt.ItemIsEditable)
# create a connection to the double click event
table.itemDoubleClicked.connect(editItem)
答案 1 :(得分:1)
在PyQt4中,将按钮添加到qtablewidget:
btn= QtGui.QPushButton('Hello')
qtable_name.setCellWidget(0,0, btn) # qtable_name is your qtablewidget name