Alle Funktionen werden beim start automatsch ausgeführt

Fragen zu Tkinter.
Antworten
john gameart
User
Beiträge: 1
Registriert: Samstag 2. Mai 2015, 12:54

Bei mir werden alle funktionen am anfang einal ausgeführt.
Ich will das eigenlich nicht so.
weiß jemand wieso das so sein könnte?

Code: Alles auswählen

from tkinter import *

import os

import os
def playmt():
     os.system("minetest")
playmt()

import os
def mtflogin():
     os.system("firefox -a firefox -remote 'openURL(https://forum.minetest.net/ucp.php?mode=login&sid=a5412d08939e182ad1afd4a2b7cbe4a4, new-tab)' > /dev/null & p1=$!")
mtflogin()


window = Tk()
window.geometry("700x600")
window.title("Minetest Launcher")
window.configure(background='grey')


updatebutton = Button(window, text="update", command=update)
updatebutton.place(x=40, y=50)



helpbutton = Button(window, text="help", command=mtflogin)
helpbutton.place(x=110, y=50)




playbutton = Button(window, text="play", command=playmt)
playbutton["background"] = "lightgreen"

playbutton.config(font=('Junkyard', 30))
playbutton.place(x=600, y=50)
Danke schonmal im vorraus! :D
BlackJack

@john gameart: Das könnte daran liegen das *Du* die Funktionen aufrufst. Noch nicht einmal beim `command`-Argument, worüber viele Anfänger mal stolpern, sondern ganz normale, reguläre Funktionsaufrufe ganz normal als einzelne Anweisungen im Quelltext. Wenn Du nicht willst das Funktionen an einer bestimmten Stelle im Code aufgerufen werden, dann unterlasse es einfach die Funktionen an der Stelle im Code aufzurufen. ;-)

Da wird auch sonst noch so einiges gemacht was man lassen sollte:

Sternchen-Import.

Ein Modul sinnloserweise mehr als einmal im gleichen Modul importieren.

Module nicht am am Anfang sondern mitten im Code zu importieren.

Kryptische Abkürzungen in Namen.

`os.system()` verwenden.

Code der etwas anderes macht als Konstanten, Funktionen, oder Klassen zu definieren auf Modulebene statt in einer Funktion.

GUI-Elemente mit `place()` absolut positionieren.
Antworten