Du hast den Fehler "Cannot create graphics instruction outside the main Kivy thread"? Hier findest du eine Erklärung und Lösung dazu: ingo-janssen.de/python-gui-mit-kivy-instruction-outside-the-main-kivy-thread/
Hallo Ingo, ich verfolge mit großem Interesse Deine kivy-videos und habe die Programme auf meinem ubuntu notebook nachvollzogen. Von Anfang an hatte ich das Problem, dass das Fenster nicht auf dem Display erschien. Nach langem herumprobieren habe ich eine Lösung gefunden und definiere im class MyApp ein window: class MyApp(App): def build(self): Config.set("graphics", "height", 400) Config.set("graphics", "width", 600) Window.left = 300 Window.left = 300 Window.left = 300 Das funktioniert aus bis zu Deinem Programm 06_query_stock_data. Da bekomme ich den Fehler: TypeError: Cannot create graphics instruction outside the main Kivy thread. Soweit ich das verstehe, wird das search Ergebnis vom neuen thread nicht zurückgegeben??? Könnest Du mir vielleicht einen Tipp geben, wie ich das Problem beheben kann? Vielen Dank im Voraus.
Hallo und vielen Dank, Ich hab schon gehört, dass es wohl mit Python 3.9 zu dem Problem kam. Ich hatte 3.8 benutzt. Müsste mir das aber auch erst genauer ansehen.
@@IngoJanssen Hallo Ingo, an der Version kann es nicht liegen. Auf meinem Ubuntu Hobel habe ich Python 3.8.10 installiert. Ich vermute, das hängt mit Config.set("graphiscs...) die ich notgedrungen in class MyApp... angeben muss um überhaupt ein Fenster geöffnet zubekommen.
@@IngoJanssen Hallo Ingo, super und vielen Dank. Das funktioniert jetzt mit Kivy und dem zweiten Thread wunderbar. Auch vielen Dank für die ausführliche Erklärung. Was ich bei mir noch nicht verstehe ist, dass ich im main das Haupt-Window vorkonfigurieren muss. Aber das ist wohl bei meinem Ubuntu Notebook spezifisch. Auf jeden Fall funktioniert es mit meiner kleinen Modifikation ausgezeichnet. Chapeau!!!
um es etwas hübscher zu machen ist es sicher nett, dass das input Feld nach "Hinzufügen" wieder leer ist. Dazu einfach bei def add_ticker_symbol(self, *args): ..... self.XY_input.select_all() self.XY_input.delete_selection() einfügen ....
Du hast den Fehler "Cannot create graphics instruction outside the main Kivy thread"?
Hier findest du eine Erklärung und Lösung dazu:
ingo-janssen.de/python-gui-mit-kivy-instruction-outside-the-main-kivy-thread/
Hallo Ingo, ich verfolge mit großem Interesse Deine kivy-videos und habe die Programme auf meinem ubuntu notebook nachvollzogen. Von Anfang an hatte ich das Problem, dass das Fenster nicht auf dem Display erschien. Nach langem herumprobieren habe ich eine Lösung gefunden und definiere im class MyApp ein window:
class MyApp(App):
def build(self):
Config.set("graphics", "height", 400)
Config.set("graphics", "width", 600)
Window.left = 300
Window.left = 300
Window.left = 300
Das funktioniert aus bis zu Deinem Programm 06_query_stock_data. Da bekomme ich den Fehler: TypeError: Cannot create graphics instruction outside the main Kivy thread. Soweit ich das verstehe, wird das search Ergebnis vom neuen thread nicht zurückgegeben??? Könnest Du mir vielleicht einen Tipp geben, wie ich das Problem beheben kann? Vielen Dank im Voraus.
Hallo und vielen Dank,
Ich hab schon gehört, dass es wohl mit Python 3.9 zu dem Problem kam.
Ich hatte 3.8 benutzt.
Müsste mir das aber auch erst genauer ansehen.
@@IngoJanssen Hallo Ingo, an der Version kann es nicht liegen. Auf meinem Ubuntu Hobel habe ich Python 3.8.10 installiert. Ich vermute, das hängt mit Config.set("graphiscs...) die ich notgedrungen in class MyApp... angeben muss um überhaupt ein Fenster geöffnet zubekommen.
Danke für den Hinweis.
Dann schau ich mir das bald mal an und Versuchs nachzustellen
Hier hab ich eine Erklärung + Lösung dazu:
ingo-janssen.de/python-gui-mit-kivy-instruction-outside-the-main-kivy-thread/
@@IngoJanssen Hallo Ingo, super und vielen Dank. Das funktioniert jetzt mit Kivy und dem zweiten Thread wunderbar. Auch vielen Dank für die ausführliche Erklärung. Was ich bei mir noch nicht verstehe ist, dass ich im main das Haupt-Window vorkonfigurieren muss. Aber das ist wohl bei meinem Ubuntu Notebook spezifisch. Auf jeden Fall funktioniert es mit meiner kleinen Modifikation ausgezeichnet. Chapeau!!!
um es etwas hübscher zu machen ist es sicher nett, dass das input Feld nach "Hinzufügen" wieder leer ist. Dazu einfach bei
def add_ticker_symbol(self, *args):
.....
self.XY_input.select_all()
self.XY_input.delete_selection()
einfügen ....
Super Hinweis, danke!