Pobranie nazwy rzędu i kolumny z tabelki, po kliknięciu.

0

Mam tabele: rzędy to godziny, a kolumny to pracownicy. I po kliknięciu w okresloną komórkę chcę pobrać godzinę rzędu oraz imię pracownika. Czyli klikam na komórkę o współrzednych(2,3) i otrzymuje nazwę rzędu, czyli np. 13:00 i nazwe kolumny (Pan józek). Jak to zrobić?

sGodzina=ui->tbGrafik->item(ui->tbGrafik->currentRow(),1)->text();
1

Zakładając, że używasz QTableWidget, podłącz się do sygnału itemSelectionChanged(), a potem użyj selectedItems()/selectedIndexes()

Inne widgety powinny mieć analogiczne sygnały.

0

A jak użyć tego selectedItems() ?

0
auto selectedItems = ui->tbGrafik->selectedItems();
// lub
auto selectedIndexes = ui->tbGrafik->selectedIndexes();

dalej już sobie odfiltruj te indeksy/itemki na których chcesz pracować i je obsłuż.

1

@supermario: Zaglądaj do dokumentacji.

QTableWidget ma funkcje takie jak verticalHeaderItem(int row) czy horizontalHeaderItem(int column), które zwracają QTableWidgetItem (użyj funkcji data aby pobrać to co jest wyświetlane).
Numer wiersza czy kolumny możesz pobrać z QModelIndex (wspomniana wyżej funkcja QTableWidget::selectedIndexes() zwraca ich listę).

0

@supermario to już któryś z kolei twój temat dotyczący w sumie tego samego zagadnienia.
Zalecam przestudiowanie w Qt Assistant zagadnienia Model/View Programming,ale tak solidnie,od dechy do dechy,jak Swaróg z Trygławem przykazali.
Przede wszystkim zwróć uwagę na klasy - QAbstractItemModel, QAbstractItemView(tego nieco mniej,bo raczej używa się klas pochodnych QTableView,QListView i QTreeView),QAbstractItemDelegate oraz QHeaderView.Dodatkowo QModelIndex.
Jak zrozumiesz mechanizmy na jakich się one operują to użytkowanie bardziej specjalizowanych wersji w rodzaju QSqlQueryModel,QTableWidget itp będzie dla ciebie o wiele łatwiejsze,i nie będziesz musiał co chwilę o coś się dopytywać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1