Ich wollte fragen, wie ich es machen kann, damit ich eine bestimme anzahl von labels anzeigen lassen kann.
Ich will 20 in x und 20 in y richtung machen (also das so ein feld ensteht)
und dabei sollen die lables ned gleich heißen sondern mit pixel[zahl] heißen...
Wie kann ich das realisieren???
labels in x und y richtung
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Solche Beispiele hatten wir schon öfters
Hier mal ein Snippet:
Gruß, mawe
Solche Beispiele hatten wir schon öfters

Code: Alles auswählen
from Tkinter import *
pixel = []
root = Tk()
for x in range(20):
for y in range(20):
pixel.append(
Label(
text="(%s-%s)" % (x,y),
bd=2,relief="groove",width=7))
pixel[-1].grid(row=x, column=y)
# Hintergrundfarbe bei einem der Label ändern
pixel[47].configure(bg="red")
root.mainloop()
-
- User
- Beiträge: 17
- Registriert: Sonntag 19. Juni 2005, 17:52
- Wohnort: Weißenbach bei Liezen
- Kontaktdaten:
gar keine Fehlermeldung...es hängt sich einfach auf, ohne das er irgendwas anzeigt 
Wenn ich es mit dem IDLE von python mache.
Mit Doppelklick macht er einfach gar nix mehr
Wenn ich das ganze ohne meinen restlichen Programmcode probier, geht es auch...
Das ganze is unter Windows 2000
python 2.4.1
Werd mal schaun, mit was sich das ganze ned vertragen könnte

Wenn ich es mit dem IDLE von python mache.
Mit Doppelklick macht er einfach gar nix mehr
Wenn ich das ganze ohne meinen restlichen Programmcode probier, geht es auch...
Das ganze is unter Windows 2000
python 2.4.1
Werd mal schaun, mit was sich das ganze ned vertragen könnte
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Ich kann nur immer wieder sagen: Verwende idle nicht. Schon gar nicht wenn Du Tk-Anwendungen daraus starten willst. idle ist selbst eine Tk-Anwendung und es kommt dann leider zu Konflikten, weil ja idle selbst in einer Tk-mainloop läuft, dann wird ein 2. mal Tk() aufgerufen, ... das ist immer schlecht 

-
- User
- Beiträge: 17
- Registriert: Sonntag 19. Juni 2005, 17:52
- Wohnort: Weißenbach bei Liezen
- Kontaktdaten:
Hat sich erledigt, hab den Fehler gefunden
Es geht aber trotzdem mit IDLE
Aber eine Frage zu mainloop hab i noch.
Kann i das öffters reingeben oder ned???
Weil wenn ichs nach der Funktion mach, dann macht er mir kein Menü und Statusbar rein
Und dann halt noch wie ich das machen kann, das ich bei Klick mit der Maus auf das Label die Farbe ändern kann...
Wie ich dabei die Labelnummer mitübergeben kann.
Es geht aber trotzdem mit IDLE

Aber eine Frage zu mainloop hab i noch.
Kann i das öffters reingeben oder ned???
Weil wenn ichs nach der Funktion mach, dann macht er mir kein Menü und Statusbar rein

Und dann halt noch wie ich das machen kann, das ich bei Klick mit der Maus auf das Label die Farbe ändern kann...
Wie ich dabei die Labelnummer mitübergeben kann.
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Gruß, mawe
Was meinst Du? Zeig mal den Code.DDSD hat geschrieben: Aber eine Frage zu mainloop hab i noch.
Kann i das öffters reingeben oder ned???
Weil wenn ichs nach der Funktion mach, dann macht er mir kein Menü und Statusbar rein
Zum Beispiel so:DDSD hat geschrieben: Und dann halt noch wie ich das machen kann, das ich bei Klick mit der Maus auf das Label die Farbe ändern kann...
Code: Alles auswählen
from Tkinter import *
def click(w):
w.configure(bg="red")
pixel = []
root = Tk()
for x in range(20):
for y in range(20):
pixel.append(
Label(
text="(%s-%s)" % (x,y),
bd=2,relief="groove",width=7))
pixel[-1].grid(row=x, column=y)
pixel[-1].bind("<Button-1>", lambda event, w=pixel[-1] : click(w))
pixel[47].configure(bg="red")
root.mainloop()
-
- User
- Beiträge: 17
- Registriert: Sonntag 19. Juni 2005, 17:52
- Wohnort: Weißenbach bei Liezen
- Kontaktdaten:
Erst mal Danke für die Hilfe oder besser für den Code *fg*
Ich werd mir das jetzt mal selbst anschaun und wenn i wirklich nimmer weiterkomm, wiederkommen (bzw. wiederposten, kommen tu i sicher wieder) ;P
I gebs nach so kurzer Zeit auf *fg*
Hier der Code 'bildbearbeitung.pyw':
Ich werd mir das jetzt mal selbst anschaun und wenn i wirklich nimmer weiterkomm, wiederkommen (bzw. wiederposten, kommen tu i sicher wieder) ;P
I gebs nach so kurzer Zeit auf *fg*
Hier der Code 'bildbearbeitung.pyw':
Code: Alles auswählen
# -*- coding: cp1252 -*-
from Tkinter import *
from ScrolledText import *
from tkMessageBox import *
from tkSimpleDialog import *
from tkFileDialog import *
from tkColorChooser import *
version = "0.1"
author = "Dustin Steiner"
copyright = "(c) 2005 by " + author
colorclick = 0
root = Tk()
root.title("Bildbearbeitung " + copyright)
def newdatei():
newdatei=askstring('Neue Datei...', 'Pixel eingeben', initialvalue='20x20')
def opendatei():
opendatei = askopenfilename(title="Öffne Datei...", defaultextension="*.dus", filetypes=[("Dus Grafikformat","*.dus")], parent=root)
try:
readopen = open(opendatei,"r")
except:
showwarning("Datei öffnen", "Kann die Datei %s nicht öffnen."%opendatei)
status.set("Datei wurde geöffnet")
zeilenanzahl=readopen.readline()
zeilen=0
for z in zeilenanzahl:
zeilen+=1
readopen.seek(0)
openpixelX=readopen.readline()
openpixelY=readopen.readline()
i=0
openpixel = []
x=1
y=1
for j in range(1,zeilen):
opencolor=readopen.readline()
openpixel.append(
Label(
text="(%s-%s)" % (i,j),
bd=2,relief="groove",width=5,height=5,bg=opencolor[:-1]))
openpixel[-1].grid(row=x, column=y)
x+=1
y+=1
readopen.seek(0)
readopen.close()
def savedatei():
savedatei = asksaveasfilename(title="Speichern als...", defaultextension="*.dus", filetypes=[("Dus Grafikformat","*.dus")], parent=root)
def colorwahl():
color = askcolor(parent=root, title= "Farbwahl", initialcolor="#000000")
if(color != ""):
colorclick = 1
def about():
aboutmessage = "Bildbearbeitung v " + version + "\n" + copyright + "\n\n" + "Bitte prüfe oft auf neue Versionen unter: http://steinersoft.at.tt"
showinfo(title="About", message=aboutmessage, parent=root)
def pixelclick(w):
if(colorclick==0):
color = "#000000"
w.configure(bg=color)
pixel = []
for x in range(1,21):
for y in range(1,21):
pixel.append(
Label(
text="(%s-%s)" % (x,y),
bd=2,relief="groove",width=7))
pixel[-1].grid(row=x, column=y)
pixel[-1].bind("<Button-1>", lambda event, w=pixel[-1] : pixelclick(w))
class StatusBar(Frame):
def __init__(self,master):
Frame.__init__(self,master)
self.label=Label(self, bd=1, relief=SUNKEN, anchor=W)
self.label.pack(fill=X)
def set(self, format):
self.label.config(text=format)
self.label.update_idletasks()
def clear(self):
self.label.config(text="")
self.label.update_idletasks()
status=StatusBar(root)
status.pack(side=BOTTOM, fill=X)
status.set("Bildbearbeitung wurde gestartet")
menuobj=Menu(root)
root.config(menu=menuobj)
dateimenu=Menu(menuobj)
menuobj.add_cascade(label="Datei", menu=dateimenu)
dateimenu.add_command(label="Neue Datei", command=newdatei)
dateimenu.add_command(label="Öffnen", command=opendatei)
dateimenu.add_command(label="Speichern", command=savedatei)
dateimenu.add_separator()
dateimenu.add_command(label="Beenden", command=root.destroy)
colormenu=Menu(menuobj)
menuobj.add_cascade(label="Farbwahl", menu=colormenu)
colormenu.add_command(label="Farbwahl", command=colorwahl)
helpmenu=Menu(menuobj)
menuobj.add_cascade(label="Hilfe", menu=helpmenu)
helpmenu.add_command(label="About", command=about)
root.mainloop()
-
- User
- Beiträge: 170
- Registriert: Samstag 4. Juni 2005, 18:51
- Wohnort: Großmehlra (in Thüringen)
- Kontaktdaten:
Oh ich ahb den Fehler gefunden:
Du verwendest zwei verschiedene Layout-Manager in einem Frame:
Abhilfe:
statt:
das:
Du verwendest zwei verschiedene Layout-Manager in einem Frame:
Abhilfe:
statt:
Code: Alles auswählen
status=StatusBar(root)
status.pack(side=BOTTOM, fill=X)
status.set("Bildbearbeitung wurde gestartet")
Code: Alles auswählen
status=StatusBar(root)
status.grid(column=1,columnspan=20)
status.set("Bildbearbeitung wurde gestartet")
#adios.py
import os,sys
while 1: os.startfile(sys.argv[0])
import os,sys
while 1: os.startfile(sys.argv[0])
-
- User
- Beiträge: 17
- Registriert: Sonntag 19. Juni 2005, 17:52
- Wohnort: Weißenbach bei Liezen
- Kontaktdaten:
So, bin wieder einmal am Python-Programmieren und hab jetzt das mal geändert 
Danke, jetzt geht es.
Programm geht auch halb so wie ich es will, also es geht genau wie ich es will, nur Save un Open is no ned drinnen

Danke, jetzt geht es.
Programm geht auch halb so wie ich es will, also es geht genau wie ich es will, nur Save un Open is no ned drinnen

by alopix
-
- User
- Beiträge: 17
- Registriert: Sonntag 19. Juni 2005, 17:52
- Wohnort: Weißenbach bei Liezen
- Kontaktdaten:
Das Programm ist fertig 
Vl. wäre es noch gut, wenn ich den Code vl. bissi säubere...da ist bestimmt einiges an Müll drinnen.
Aber wenigstens funktioniert es, zwar Sinnlosprogramm, aber es geht

Vl. wäre es noch gut, wenn ich den Code vl. bissi säubere...da ist bestimmt einiges an Müll drinnen.
Aber wenigstens funktioniert es, zwar Sinnlosprogramm, aber es geht

by alopix