Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将QLineEdit的属性添加到Qt中的QTable小部件_C++_Qt - Fatal编程技术网

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(…)
将数据从小部件写回模型。一次只能创建一个小部件。