Hallo
Ich will ein Programm schreiben zum Presentieren.
Nun will ich das, dass Fenster auf meinem 2 Bildschirm erscheint.
Ist das möglich?
Ich würde mich über eine Antwort freuen.
syslink
Fenster im 2 Bildschirm anzeigen
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo syslink!syslink88 hat geschrieben:Nun will ich das, dass Fenster auf meinem 2 Bildschirm erscheint.
Ohne Worte
Code: Alles auswählen
>>> import wx
>>> app = wx.PySimpleApp()
>>> d = wx.Display()
>>> d.GetCount()
2
>>> d.Geometry
wx.Rect(0, 0, 1280, 1024)
>>> d.ClientArea
wx.Rect(0, 0, 1280, 994)
>>> d.IsPrimary()
True
>>> d2 = wx.Display(1)
>>> d2.Geometry
wx.Rect(1280, 0, 1152, 864)
>>> d2.IsPrimary()
False
>>>
Ob das unter Linux auch so funktioniert, musst du selber ausprobieren. Ich kann mir vorstellen, dass es Unterschiede gibt, je nachdem ob man xinerama (ich glaube das heißt so) einsetzt oder nicht.
mfg
Gerold
EDIT: Ups, das ist ja das Tkinter-Forum.
EDIT2: Suchworte hinzugefügt
Suchworte: Screen Display Desktop Size Größe wxPython
Zuletzt geändert von gerold am Donnerstag 10. Januar 2008, 09:04, insgesamt 2-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
bei mir funst das nicht aber ich will Tkinter nehmen.
Nun hab ich Canvas eingebunden um im Hintergrund ein Bild zu haben.
Sowie einige Texte.
Ich will nun noch eine Uhr einbauen und da hab ich noch einige Probleme.
Ich weis nicht wie ich in der schleife denn Text im canvas ändern kann.
sysLINK
Nun hab ich Canvas eingebunden um im Hintergrund ein Bild zu haben.
Sowie einige Texte.
Ich will nun noch eine Uhr einbauen und da hab ich noch einige Probleme.
Ich weis nicht wie ich in der schleife denn Text im canvas ändern kann.
sysLINK
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Tk.geometry(...)
.after(ms, funk, [args,])
Canvas.update()
.after(ms, funk, [args,])
Canvas.update()
Die soll man doch aber hoffentlich nicht auf der Präsentation sehen, oder? Uhrzeit auf Folien bei Präsentationen machen, zumindest mich, immer so schläfrig.syslink88 hat geschrieben:Ich will nun noch eine Uhr einbauen und da hab ich noch einige Probleme.
das mit dem
update
verstehe ich nicht so ganz
ich hab ja um nen text anzuzeigen
nun wie kann ich diesen Text updaten in einer Schleife?
In der schleife ändert sich schon die variabel.
update
verstehe ich nicht so ganz
ich hab ja um nen text anzuzeigen
Code: Alles auswählen
c.create_text('15.3c','5.4c',text=variabel,
font=('Arial', 40), anchor=W ,fill='white')
In der schleife ändert sich schon die variabel.
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Noch ein Tip: wenn du die zeit nur als normalen text anzeigst, kannst du auch ein Label mit ner tkVariable nehmen und aufs Canvas packen. Zudem solltest du den Countdown über eine ".after-Rekursion" regeln um den tk-loop nicht zu anzuhalten.
Mit tk-Variablen sind Instanzen von den Klassen gemeint, deren Name mit `Var` endet, also zum Beispiel `Tkinter.IntVar` oder `Tkinter.StringVar`. Die haben jeweils eine `get()`- und eine `set()`-Methode um den Wert auszulesen oder zu setzen.
Die `after()`-Methode ist über jedes Widget aufrufbar. Schau einfach mal in die Doku.
Die `after()`-Methode ist über jedes Widget aufrufbar. Schau einfach mal in die Doku.
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Nagut, hier mal ein Bsp., ungetestet:
[/code]
Code: Alles auswählen
import Tkinter as tk
import time
class Test():
def init(self):
self.master = tk.Tk()
self.var = tk.StringVar()
tk.Label(textvariable=self.var).pack() # alternativ in Canvas packen
self.time_update()
def time_update(self):
self.var.set(strftime("Zeit: %X"))
self.master.after(1000, self.time_update)
Test().master.mainloop()
Ok danke für das Bsp.
Nun hab ich es etwas besser verstanden.
Nun der Befehl self.master.after fürt nach 1000 den den Befehl self.time_update aus hab ich das so richtig erkannt?
Nun wie binde ich das in Canvas ein.
Hier ist mein erstes Programm.
Nun hab ich es etwas besser verstanden.
Nun der Befehl self.master.after fürt nach 1000 den den Befehl self.time_update aus hab ich das so richtig erkannt?
Nun wie binde ich das in Canvas ein.
Hier ist mein erstes Programm.
Code: Alles auswählen
from Tkinter import *
from time import *
import thread
import popen2,subprocess,os
def end(event=None):
root.destroy()
def go(): #schleife die eigentlich alles Aktualiesiern sollte
while 1:
timesec = gmtime()[5]
zeitsec = 60 - timesec
sleep(0.5)
root=Tk()
zeit = 50
timest = gmtime()[3]
timemin = gmtime()[4]
timesec = gmtime()[5]
endst = 19 #End Stunde
endmin = 59 #End Minute
zeitst = endst - timest
zeitmin = endmin - timemin
zeitsec = 60 - timesec
root.state('zoomed')
root.overrideredirect( 1 )
c = Canvas(master=root, width=1280, height=800,background='black')
#hintergrund = PhotoImage(file="darkflame.gif")
#c.create_image(0,0, image=hintergrund, anchor=NW)
c.create_text('15.3c','3.4c',text='Text: ',
font=('Arial', 40), anchor=W ,fill='white')
#Zeitangabe die sich updaten soll
c.create_text('15.3c','5.4c',text=zeitst,
font=('Arial', 40), anchor=W ,fill='white')
c.create_text('16.3c','5.4c',text=":",
font=('Arial', 40), anchor=W ,fill='white')
c.create_text('16.8c','5.4c',text=zeitmin,
font=('Arial', 40), anchor=W ,fill='white')
c.create_text('18.3c','5.4c',text=":",
font=('Arial', 40), anchor=W ,fill='white')
c.create_text('18.8c','5.4c',text=timesec,
font=('Arial', 40), anchor=W ,fill='white')
c.pack()
#go()
root.bind_all('<KeyPress-Escape>', end)
root.mainloop()
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Canvas.create_window(x, y[, window=[TkinterObjekt][, ...]])
Ok danke ich habst damit hinbekommen.
Nun kahm das nächste Problem auf wenn eine zeit bei 10 sec angekommen ist hängt sich das Programm auf.
Nun kahm das nächste Problem auf wenn eine zeit bei 10 sec angekommen ist hängt sich das Programm auf.
Code: Alles auswählen
from Tkinter import *
from time import *
import time
import thread
class TimerTest:
def __init__(self):
self.status = 1
root = Tk()
#root.state('zoomed') #Vollbild
#root.overrideredirect( 1 ) #Vollbild
c = Canvas(master=root, width=1280, height=800,background='black')
self.l = Label(font=('Arial',40),fg='white',bg='black')
self.l.pack
self.o = Label(font=('Arial',40),fg='white',bg='black')
self.o.pack
self.p = Label(font=('Arial',40),fg='white',bg='black')
self.p.pack
#hintergrund = PhotoImage(file="darkflame.gif")
#c.create_image(0,0, image=hintergrund, anchor=NW)
c.create_text('15.3c','3.4c',text='Text: ',
font=('Arial', 40), anchor=W ,fill='white')
c.create_text('18.3c','5.4c',text=":",
font=('Arial', 40), anchor=W ,fill='white')
c.create_text('14.3c','5.4c',text=":",
font=('Arial', 40), anchor=W ,fill='white')
c.create_window('16.8c','5.4c', window=self.o)
c.create_window('19.8c','5.4c', window=self.l)
c.create_window('13.8c','5.4c', window=self.p)
c.pack()
self.go()
root.mainloop()
def go(self):
self.status = 1
thread.start_new_thread(self.endless,())
def endless(self):
i = 0
while self.status:
timest = gmtime()[3]
timemin = gmtime()[4]
timesec = gmtime()[5]
endst = 20
endmin = 30
zeitst = endst - timest
zeitmin = endmin- timemin
zeitsec = 59 - timesec
self.p.configure(text=zeitst)
self.o.configure(text=zeitmin)
self.l.configure(text=zeitsec)
time.sleep(1)
i += 1
def stop_it(self):
self.status = 0
TimerTest()
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
es hilft im allgemeinen, die tips die man bekommt, zu beachten