Tk inter image

Fragen zu Tkinter.
Antworten
Heracles
User
Beiträge: 1
Registriert: Freitag 19. Februar 2016, 16:10

hab folgendes problem: ich möchte ein bild einfügen das die ganze zeit im hintergrund zusehen ist. Hier der Code :

Code: Alles auswählen

from Tkinter import *
myfile = open("test.txt","a")
def write_entry_fields():
   myfile.write(e1.get()+"\n"+e2.get()+"\n")
   myfile.close
def ade():
   myfile.close
   exit()
master = Tk()
Label(master, text="First Name").grid(row=0)
Label(master, text="Last Name").grid(row=1)
Label(master, text="Zip Code").grid(row=2)
e1 = Entry(master)
e2 = Entry(master)
e3 = Entry(master)

e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
e3.grid(row=2, column=1)

Button(master, text='Exit', command=ade).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Go', command=write_entry_fields).grid(row=3, column=1, sticky=W, pady=4)

mainloop( )
Vielen Dank schon mal im Voraus

MFG
Heracles
Zuletzt geändert von Anonymous am Freitag 19. Februar 2016, 16:42, insgesamt 1-mal geändert.
Grund: Quelltext in Code-Tags gesetzt.
BlackJack

@Heracles: Das ist einer der sehr wenigen Fälle in denen `place()` sinnvoll ist.

Allerdings solltest Du Dein Programm erst einmal sauber und fehlerfrei schreiben, bevor Du mit „eye candy“ anfängst.

Also kein Sternchen-Import, objektorientierte Programmierung statt globaler Variablen, vernünftige Namen, die Datei auch tatsächlich wieder schliessen, und das am besten mit Hilfe der ``with``-Anweisung, …

Code: Alles auswählen

#!/usr/bin/env python
# coding: utf8
from __future__ import absolute_import, division, print_function
import io
import Tkinter as tk


class MainFrame(tk.Frame):

    def __init__(self, master, out_file):
        tk.Frame.__init__(self, master)
        self.out_file = out_file
        
        self.background_image = tk.PhotoImage(file='test.gif')
        tk.Label(self, image=self.background_image).place(x=0, y=0)

        tk.Label(self, text='First Name').grid(row=0)
        tk.Label(self, text='Last Name').grid(row=1)
        tk.Label(self, text='Zip Code').grid(row=2)
        self.first_name_label = tk.Entry(self)
        self.last_name_label = tk.Entry(self)
        self.zip_code_label = tk.Entry(self)
        self.first_name_label.grid(row=0, column=1)
        self.last_name_label.grid(row=1, column=1)
        self.zip_code_label.grid(row=2, column=1)
        
        tk.Button(
            self, text='Exit', command=self.quit
        ).grid(row=3, column=0, sticky=tk.W, pady=4)
        tk.Button(
            self, text='Go', command=self.write_entry_fields
        ).grid(row=3, column=1, sticky=tk.W, pady=4)

    def write_entry_fields(self):
        self.out_file.write(
            u'{0}\n{1}\n'.format(
                self.first_name_label.get(), self.last_name_label.get()
            )
        )


def main():
    with io.open('test.txt', 'a', encoding='utf-8') as out_file:
        root = tk.Tk()
        main_frame = MainFrame(root, out_file)
        main_frame.pack()
        root.mainloop()


if __name__ == '__main__':
    main()
Antworten