masz kilka pytań w jednej osobie ... krótka odpowiedź, tak, można dodać przycisk do QTableWidget - możesz dodać dowolny widget do widżetu tabeli, dzwoniąc do 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)
Ale to nie brzmi l Ike, czego tak naprawdę chcesz.
Wygląda na to, że chcesz zareagować na dwukrotne kliknięcie jednego z komórek przez użytkownika, tak jakby kliknął przycisk, prawdopodobnie w celu wyświetlenia okna dialogowego lub edytora lub czegoś podobnego.
Jeśli tak jest, wszystko co naprawdę trzeba zrobić, to podłączyć do sygnału itemDoubleClicked z QTableWidget, tak:
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)
Jak mogę dokonać wiersz tak, że gdy użytkownik kliknie wiersz jest podświetlona, a nie pojedyncza komórka. –
do: table.setSelectionBehavior (QTableWidget.SelectRows) –
Czy istnieje również możliwość przekierowania do innej karty po kliknięciu określonego wiersza? Moje pytanie brzmi: czy mogę zasadniczo przekierować do innej karty, tak jak hiperłącze na stronie HTML. –