如何为所有 qlineedit 设置 onclick 信号以打开键盘小部件并发回数据?
how to set onclick signal for all qlineedit to open a widget for keyboard and send data back?
我在 Qt 中的项目有几个带有多 qlineedit 的小部件。我希望当用户单击每个 qlineedit 时,第二个小部件打开以显示带有单个 qlineedit 的键盘,用于输入文本和数字。
当用户单击确定按钮时,单个 qlineedit 上的文本传递到单击的文本框。
我该怎么做?
在这些行编辑上使用事件过滤器,或者创建一个实现所需鼠标处理的子class,并使用 class 而不是 QLineEdit
恕我直言,我会按以下方式进行:
1) 创建 QLineEdit 子类并重新实现 focusInEvent - 这不仅可以处理点击,还可以处理其他类型的输入编辑(例如通过键盘)。在 consturctor 中,您可以将 'openEditor' 信号连接到负责它的小部件(通常是主小部件)中的自定义插槽。
2) 将您的编辑推广到自定义子类。
3) 您可以从自定义的 focusInEvent 发出信号 'openEditor'。在那里你可以使用 QObject::sender() 来确定哪个编辑发出信号。
4) 实现可以满足您需要的插槽(使用键盘显示新编辑,在发件人中设置文本(编辑发出的编辑器打开))
我在 Qt 中的项目有几个带有多 qlineedit 的小部件。我希望当用户单击每个 qlineedit 时,第二个小部件打开以显示带有单个 qlineedit 的键盘,用于输入文本和数字。
当用户单击确定按钮时,单个 qlineedit 上的文本传递到单击的文本框。
我该怎么做?
在这些行编辑上使用事件过滤器,或者创建一个实现所需鼠标处理的子class,并使用 class 而不是 QLineEdit
恕我直言,我会按以下方式进行:
1) 创建 QLineEdit 子类并重新实现 focusInEvent - 这不仅可以处理点击,还可以处理其他类型的输入编辑(例如通过键盘)。在 consturctor 中,您可以将 'openEditor' 信号连接到负责它的小部件(通常是主小部件)中的自定义插槽。
2) 将您的编辑推广到自定义子类。
3) 您可以从自定义的 focusInEvent 发出信号 'openEditor'。在那里你可以使用 QObject::sender() 来确定哪个编辑发出信号。
4) 实现可以满足您需要的插槽(使用键盘显示新编辑,在发件人中设置文本(编辑发出的编辑器打开))