Я знаю, что вы можете вставить QWidget (например, QLineEdit) в табличное представление.
Например:
QSortFilterProxyModel *m = new QSortFilterProxyModel(this);
ui -> tblView -> setIndexWidget(m -> index(0, 0), new QLineEdit); // works fine
//another option
QLineEdit *le = new QLineEdit;
ui -> TblDataLeagues -> setIndexWidget(m -> index(i, 0), le); //also works; advantage is, you can setup the QLineEdit before you add it into the tableview
Теперь в ячейке или лучше с индексом 0, 0 у вас есть QLineEdit. Как я могу напрямую адресовать виджет? В том смысле, что я могу использовать функции QLineEdit. Или можно считывать значение прямо из ячейки?
Так:
ui -> tblView -> indexWidget(m -> index(0, 0) ) -> text(); //no member named `text` in `QWidget`
Вы можете захотеть прочитать текущий или измененный текст из этого QLineEdit.
isWidgetType()
бесполезен, посколькуindexWidget()
на самом деле возвращаетQWidget
. Что вам действительно нужно, так это приведение к вашему подклассу, чтобы иметь доступ к его функциям. 10.08.2020