Je travaille sur l'écriture d'une application client/serveur très simple comme excuse pour commencer à apprendre la programmation réseau/gui en python. En ce moment, je suis bloqué sur la transition de mon cadre de connexion à l'image principale de l'application.Fermeture et ouverture des trames dans wxPython
Le cadre de connexion est une sous-classe de wx.Frame, et fondamentalement, je veux juste fermer et ouvrir le châssis principal lorsqu'il reçoit la confirmation du serveur:
def handleServerSignon(self, msg):
if msg.getCode() == net.message.HANDLE_IN_USE:
self.status.SetStatusText('Handle already in use')
elif msg.getCode() == net.message.SIGNON_SUCCESSFUL:
self.Close()
mainWindow = wx.Frame(None, wx.ID_ANY, 'main window', wx.DefaultPosition, \
(640, 480))
mainWindow.Show(True)
Je ne peux même pas ce pour donner un message d'erreur cohérente mais ... parfois ça marche, parfois, il tombe en panne avec les éléments suivants:
python: ../../src/xcb_io.c:242: process_responses: assertion `(((long) (dpy-> last_request_read) - (long) (dpy-> request)) < = 0) 'échoué.
Toute aide est très appréciée!
Walker
Je n'ai pas fait de wxpython depuis longtemps mais que se passe-t-il si vous créez et affichez la fenêtre principale avant de fermer la fenêtre de connexion? – Ravi
Même chose, cela fonctionne de temps en temps et se bloque aux 3/4 du temps. –
Ce code réseau est-il exécuté sur un thread distinct ou sur le thread graphique? Vous pouvez uniquement faire des appels wx sur le thread graphique principal. – FogleBird