Utworzono QTableView z QSqlTableModel. Standardowo dwukrotne kliknięcie na komórki zaznacza je, a użytkownik może je edytować. Chcę, aby użytkownik nie mógł tego robić. Może zaznaczyć cały wiersz, klikając pojedynczą komórkę, ale nie edytować komórki. Jak mogę to zrobić?QTableView - nie zezwala użytkownikowi na edycję komórki
9
A
Odpowiedz
17
W zależności od tego, czy kodowanie wszystko albo robi rzeczy w projektancie, ustaw
editTriggers
doQAbstractItemView::NoEditTriggers
selectionBehavior
doQAbstractItemView::SelectRows
- ewentualnie ustawić
selectionMode
doQAbstractItemView::SingleSelection
jeśli chcesz, aby użytkownik wybrał dokładnie jeden wiersz
na obiekcie Tableview odpowiednie połączenia będą wszyscy być poprzedzona set
np setEditTriggers()
w projektancie można znaleźć te opcję w sekcji AbstractItemView
8
Spróbuj:
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
2
Przełączanie się element tablicy za ItemIsEditable
bit. np .:
QTableWidgetItem* item = new QTableWidgetItem(...);
...
item->setFlags(item->flags() &= ~Qt::ItemIsEditable);
1
Idealnie będzie chciał użyć:
void QAbstractItemView::setItemDelegate (QAbstractItemDelegate * delegate)
a następnie utworzyć klasę, która dziedziczy QItemDelegate
jak w this przykład. Edycja swoją klasę mieć
QWidget * QItemDelegate::createEditor (QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index) const
powrót NULL
lub zastosowanie:
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
Będziesz także chcą patrzeć na
void setSelectionBehavior (QAbstractItemView::SelectionBehavior behavior)
Z parametru: QAbstractItemView::SelectRows
Dla porównania: http://doc.trolltech.com/4.5/qtableview.html
Powiązane problemy
- 1. UIImagePickerController + Cropping: co pozwala na edycję, a co nie?
- 2. KeyUsage nie zezwala na podpisy cyfrowe
- 3. Django @override_settings nie zezwala na słownik?
- 4. MongoDB nie zezwala na używanie "." w kluczu
- 5. sqlbulkcopy - nie zezwala na wartość DBNull.Value.?
- 6. Nie zezwalaj użytkownikowi na odrzucanie powiadomień
- 7. Zezwalaj UIImagePickerController na edycję wideo, ale nie na obrazy
- 8. Wyłącz edycję użytkownika w JTable
- 9. Dlaczego Java nie zezwala na przeciążenia na podstawie parametrów typu?
- 10. scp na OSX nie zezwala na spacje w nazwach użytkowników?
- 11. Qt - QTableView - Przycisk klikalny w rzędzie tabeli
- 12. Jak uniemożliwić użytkownikowi zmianę rozmiaru kolumn QTableWidget?
- 13. Pozwolić na edycję jednej kolumny, ale nie innej
- 14. Jak przeprowadzić bezpośrednią edycję na żywo?
- 15. Devise, OmniAuth & Facebook - Jak zezwolić użytkownikowi na edytowanie hasła?
- 16. Kolumny automatycznie zmieniają rozmiar na QTableView
- 17. QTableView Powiększanie/pomniejszanie
- 18. Qt - Czyszczenie zawartości QTableView
- 19. Ustaw wszystkie komórki JTable nie można wybrać
- 20. ograniczenia typu Scala nie zezwala na wartości null
- 21. OneToOneField NULL = true nie zezwala na pustym polu
- 22. github for mac nie zezwala na wykonywanie częściowego sprawdzania/zatwierdzania
- 23. Github uwierzytelnia się, ale nie zezwala na kod push
- 24. Google nie zezwala już na używanie WebView. Jakie są alternatywy?
- 25. C90 nie zezwala na użycie% lf w printf, dlaczego?
- 26. Dlaczego Hashtable nie zezwala na puste klucze lub wartości?
- 27. Klasa obudowy Scala nie zezwala na parametry wywoławcze?
- 28. Program Visual Studio nie zezwala na użycie niektórych nazw zmiennych
- 29. Wirtualna kolumna w QTableView?
- 30. zezwala na niepoprawne datowanie w pythonie datetime
To się nazywa QAbstractItemView :: NoEditTriggers, QAbstractItemView :: SelectRows i QAbstractItemView :: SingleSelection, ale dokładnie tego szukałem. Dziękuję Ci! – Berschi