哪种方式可以使用一个表单启用数据库编辑?

问题描述

快速总结: 我倾向于允许编辑,然后确定是否进行了更改,然后启用更新和取消按钮。

这有什么常见的做法吗?

详情: 我为所有数据库活动使用一种表单,添加新记录,通过现有记录分页,并一次更新一个。关于更新,我有取消和更新按钮,而我的编辑按钮实际上只启用更新和取消按钮。如果用户点击输入字段,他们可以在不按编辑按钮的情况下编辑内容。如果他们想保存他们的编辑,他们必须点击编辑按钮,然后更新或取消。我想把它收紧。

在这里的决定是要么禁用所有条目小部件,这看起来很糟糕,我已经在行 id 字段中这样做,以免对其进行任何管理不善,或者确定是否有任何字段已获得焦点以及是否已进行任何更改,这将启用更新和取消按钮。

我宁愿离开表单的外观,然后确定对输入字段的点击,我想我可以找到如何做,但我不确定如何确定是否有任何数据在该输入框已更改。

一个选项是将条目小部件状态实际更改为禁用,但随后可能会以某种方式改变外观?但是有了这个选项,如果用户点击一个条目小部件来改变内容,我仍然希望能够允许用户继续编辑内容,然后允许通过更新保存或取消任何编辑。这需要将输入字段从 disABLED 更改回 norMAL,然后还需要重新启用更新和取消按钮。

我倾向于允许编辑,然后确定是否进行了更改,然后启用更新和取消按钮。

对此有最佳实践吗? current state of db form


更新:我刚刚发现(在 stackoverflow 上)E_id.configure({"disabledbackground": "white"}) 和前景,所以现在我可以让禁用的控件看起来像我想要的任何方式,然后这会强制用户单击编辑按钮重新启用所有输入字段。这可能会解决问题。我还是想知道你是如何处理这个问题的。

更新 2:我在 tcl/tk 站点上发现了 tkinter 条目小部件的另一个属性,它是只读的。这是第三种风格的显示设置,我比禁用更喜欢它。因此,与其将大量设置更改为 disABLED 条目小部件的显示方式,还可能在 norMAL 状态下更改那么多设置,我只是使用“只读”。有趣的是 E_id.configure(state=norMAL)E_id.configure(state=disABLED) 工作正常,将状态更改为只读的唯一方法是这样的:E_id.configure(state='readonly') 我觉得这有点奇怪,但它有效。

只读显示的前景颜色与正常状态相同,但背景与禁用状态相同。我希望没有人介意我的这些帖子开始成为我寻找自己答案的日记。

这也意味着我要求用户单击新记录的按钮并编辑更新查询的字段,当然,这样做会更改输入字段的状态。这实际上非常顺利,并且似乎数据库组合得非常好。当前连接到 sqlite。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)