如何在 QTableView 中直接访问 QWidget?
How can I get direct access to a QWidget in a QTableView?
我知道您可以将 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 中读出当前或修改后的文本。
如文档所述,此函数 returns 通常是一个 QWidget
以适应 table 中的任何子类型。因此,如果您确定此索引处的类型,则需要使用泛型 qobject_cast<Target>
对检索到的对象应用强制转换。
我知道您可以将 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 中读出当前或修改后的文本。
如文档所述,此函数 returns 通常是一个 QWidget
以适应 table 中的任何子类型。因此,如果您确定此索引处的类型,则需要使用泛型 qobject_cast<Target>
对检索到的对象应用强制转换。