私は3つのボタンを持っています。クリックされた各ボタンは、いくつかのジョブを持つポート 58888 にコマンドを送信します。ジョブが完了すると、基本的にその特定のボタンは 5 分後に再度押すことができるようになります。
ボタンをブロックするにはどうすればよいですか?誰かがそのボタンでしばらくフラッディングを生成できないようにするには??
button = gtk.Button("a")
button.connect("clicked" , self.on_the_fly("a") , None)
bbox.add(button)
button = gtk.Button("v")
button.connect("clicked" , self.on_the_fly("v") , None)
bbox.add(button)
button = gtk.Button("b")
button.connect("clicked" , self.on_the_fly("b") , None)
bbox.add(button)
ボタンで使用されるメソッド:
def on_the_fly(self, input):
logging.debug( 'Clicked at x={0}, y={0}' )
try:
if self.myname.startswith("enduser"):
logging.debug("reconnect")
else:
if input.startswith("a"):
command = "r0x01"
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(("localhost", 58888))
client_socket.send(command)
client_socket.close()
elif input.startswith("v"):
command = "r0x02"
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(("localhost", 58888))
client_socket.send(command)
client_socket.close()
elif input.startswith("both"):
command = "r0x03"
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(("localhost", 58888))
client_socket.send(command)
client_socket.close()
else:
print "nothing"
subprocess.Popen(["/var/tmp/runme.sh"], stdout=subprocess.PIPE)
except Exception, err:
logging.debug( err )
pass