Então, ao usar os vínculos PyQt padrão da Riverbank (nunca usei PySide), acabo usando muito esse hack, para resolver um “problema” de implementação no PyQt, onde os sinais acabavam sendo conectados a dois slots, causando o método a ser chamado duas vezes:
def on_actionSomeAction_triggered(self, checked=None):
if checked is None:
return
Embora seja um código muito simples, pode ser chato e feio quando você tem muitos métodos. Então, implementei um decorador simples para evitar a duplicação de código:
def if_none_return(function):
def decorated_function(self, checked=None):
if checked is None:
return
function(self, checked)
decorated_function.func_name = function.func_name
return decorated_function
Você pode usá-lo assim:
@if_none_return
def on_actionSomeAction_triggered(self, checked=None):
if checked is None:
return
A magia do python até mesmo cuida de todas as coisas de vinculação de métodos, apenas siga as convenções.
PS: Alguém sabe como eu configurei o destaque de sintaxe para isso? Ou está definido automagicamente? ATUALIZAÇÃO: Não importa, é automático.