擅长:python、mysql、java
<p>另一种方法是使用像<a href="http://pubsub.sourceforge.net" rel="nofollow">pypubsub</a>这样的发布-订阅库。您可以让QLineEdit订阅您选择的主题(例如,“event.name”),并且每当代码更改self.name时,您就发送该主题的消息(选择event来表示正在更改的名称,例如“flower.name changed”)。其优点是,给定主题的所有侦听器都将被注册,QLineEdit不需要知道它所侦听的具体名称。这个松耦合对你来说可能太松了,所以它可能不合适,但我只是把它作为另一个选择扔掉。</p>
<p>另外,有两个问题是<em>不是</em>特定于发布-订阅策略(即。,另外,对于其他答案中提到的obsub etc):如果您侦听QLineEdit,它设置self.name,通知侦听器self.name已更改,最后调用QLineEdit settext等,则可能会出现无限循环。您需要一个保护,或者检查self.name是否已经具有来自QLineEdit的值,则不执行任何操作;类似地,在QLineEdit如果显示的文本与self.name的新值相同,则不要设置它,这样就不会生成信号。</p>