C++ 将QLineEdit的属性添加到Qt中的QTable小部件
我想在我的应用程序中添加一个C++ 将QLineEdit的属性添加到Qt中的QTable小部件,c++,qt,C++,Qt,我想在我的应用程序中添加一个表格小部件。但是表小部件不支持我想要的一些属性,但是QLineEdit可以使用这些属性。 例如验证程序,占位符文本,等等QLineEdit中的属性。我想为表格小部件的各个单元格设置这些属性。我不想在我的GUI中添加QLineEdit,只想添加Table小部件。 有可能这样做吗? 谢谢。创建一个QStyledItemDelegate子类,将文本或占位符文本绘制为普通文本(无需重新实现),但生成一个QLineEdit作为编辑器小部件 使用QTableWidget::set
表格小部件
。但是表小部件不支持我想要的一些属性,但是QLineEdit
可以使用这些属性。
例如验证程序
,占位符文本
,等等QLineEdit
中的属性。我想为表格小部件的各个单元格设置这些属性。我不想在我的GUI
中添加QLineEdit
,只想添加Table小部件
。
有可能这样做吗?
谢谢。创建一个QStyledItemDelegate
子类,将文本或占位符文本绘制为普通文本(无需重新实现),但生成一个QLineEdit
作为编辑器小部件
使用QTableWidget::setItemDelegate(QAbstractItemDelegate*delegate)
创建一个QStyledItemDelegate
子类,该子类将文本或占位符文本绘制为普通文本(无需重新实现),但会生成一个QLineEdit
作为编辑器小部件
使用QTableWidget::setItemDelegate(QAbstractItemDelegate*delegate)
添加它。我认为,您可以将这些单元格更改为QLineEdit
的,并使用其功能:
the_table_widget->setCellWidget(row, col, new QLineEdit);
我认为,您可以将这些单元格更改为QLineEdit,并使用其功能:
the_table_widget->setCellWidget(row, col, new QLineEdit);
可能正在创建一个自定义对象,该对象继承您想要使用的Qt对象。我认为,您可以将这些单元格更改为QLineEdit
,并使用其功能。@VaibhavDesai您可以显示一些代码吗?我不知道如何创建这样一个对象。@MM。您能告诉我怎么做吗?可能是创建一个自定义对象,继承您想要使用的Qt对象。我想,您可以将这些单元格更改为QLineEdit
,并使用其功能。@VaibhavDesai您能显示一些代码吗?我不知道如何创建这样一个对象。@MM。你能告诉我怎么做吗?在大多数情况下这样做并不好:小部件无法通过MVC接口访问模型,因此小部件的任何数据和由小部件创建的数据都必须在框架之外手动处理。对于任何中等大小的表,此策略可能会变得非常低效,因为显示数据的每个单元格都需要为其创建一个QLineEdit
(更不用说所有支持的信号/插槽连接),即使99%的时间它们仅用于显示静态内容。代理存在是有原因的。此外,由于QLineEdit
源于QWidget
,因此不需要强制转换。在大多数情况下,这样做并不好:widget无法通过MVC接口访问模型,因此widget的任何数据和创建的数据都必须在框架之外手动处理。对于任何中等大小的表,此策略可能会变得非常低效,因为显示数据的每个单元格都需要为其创建一个QLineEdit
(更不用说所有支持的信号/插槽连接),即使99%的时间它们仅用于显示静态内容。代理存在是有原因的。此外,由于QLineEdit
源自QWidget
,因此不需要强制转换;然后将其作为编辑器通过QStyledItemDelegate::setEditorData(lineObj)传递;然后我可以为lineObj设置所需的属性?但这似乎造成了QLineEdit对象及其所有信号和插槽的开销!如果我错了,请纠正我。显示如何将QLineEdit连接到QStyledItemDelegate的一些示例代码将非常有用。QLineEdit
是在出现编辑触发器时创建的,setEditorData(…)
根据单元格显示的数据“配置”小部件,然后setModelData(…)
将数据从小部件写回模型。一次只能创建一个小部件。所以我应该创建一个QLineEdit对象,比如lineObj;然后将其作为编辑器通过QStyledItemDelegate::setEditorData(lineObj)传递;然后我可以为lineObj设置所需的属性?但这似乎造成了QLineEdit对象及其所有信号和插槽的开销!如果我错了,请纠正我。显示如何将QLineEdit连接到QStyledItemDelegate的一些示例代码将非常有用。QLineEdit
是在出现编辑触发器时创建的,setEditorData(…)
根据单元格显示的数据“配置”小部件,然后setModelData(…)
将数据从小部件写回模型。一次只能创建一个小部件。