我正在尝试在 wxPython 中构建一个 GUI。我有两个 TextCtrls。假设它们是first_index_input
和last_index_input
,它们分别控制model.f_i
和model.l_i
。有一个条件:为了正确执行模型,model.f_i 必须 <= model.l_i。因此 的内容first_index_input
应该是 <= last_index_input
。
所以我想要做的是修复它,以便:1)如果用户输入的值first_index_input
大于last_index_input
(在先前的用例中建立的)中的值,那么last_index_input
两者model.l_i
都将设置为等于新的first_index_input
. 2) 如果用户输入的 alast_index_input
小于first_index_input
,则将last_index_input
再次更正并设置为等于first_index_input
。
那么这有什么难的呢?这是要关闭什么事件的问题。假设first_index_input
有内容“145”并且我(正确地)想要last_index_input
输入 10324。如果这个小部件关闭 wx.EVT_TEXT 事件,那么它不会等待我输入“10324”。一旦它看到“1”(即第一个数字),它就会吓坏并说:“不!那小于first_index_input
”并“纠正”我的打字。另一方面,我可以通过关闭 wx.EVT_TEXT_ENTER 命令来摆脱这种情况,只要我记得在输入我的值后按回车并且我从不记得按回车,所以一切正常,所以我确信我的用户也不会。
还有另一种方法可以做到这一点吗?也许还有其他可用的事件?谢谢。