Fenster im 2 Bildschirm anzeigen

Fragen zu Tkinter.
syslink88
User
Beiträge: 14
Registriert: Mittwoch 14. November 2007, 15:47

Fenster im 2 Bildschirm anzeigen

Beitragvon syslink88 » Mittwoch 14. November 2007, 15:51

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
linuxfan
User
Beiträge: 11
Registriert: Mittwoch 19. September 2007, 16:05

Beitragvon linuxfan » Donnerstag 15. November 2007, 12:09

Hi,
willst Du, dass man das auf zwei Bildschirmen sehen kann oder NUR auf dem zweiten Bildschirm.
Gruß linuxfan
syslink88
User
Beiträge: 14
Registriert: Mittwoch 14. November 2007, 15:47

Beitragvon syslink88 » Donnerstag 15. November 2007, 14:18

Hi
Ich will das mann das Volbild NUR auf dem 2 Monitor sehen kann.

sysLINK
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Fenster im 2 Bildschirm anzeigen

Beitragvon gerold » Donnerstag 15. November 2007, 14:52

syslink88 hat geschrieben:Nun will ich das, dass Fenster auf meinem 2 Bildschirm erscheint.

Hallo syslink!

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
>>>

Mit diesen Daten kannst du ein wx.Frame (ohne Rahmen) genau in das zweite Fenster positionieren.
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. :mrgreen:
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.
syslink88
User
Beiträge: 14
Registriert: Mittwoch 14. November 2007, 15:47

Beitragvon syslink88 » Freitag 16. November 2007, 17:22

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
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Beitragvon schlangenbeschwörer » Freitag 16. November 2007, 17:41

:arrow: Tk.geometry(...)
:arrow: .after(ms, funk, [args,])
:arrow: Canvas.update()
EyDu
User
Beiträge: 4868
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Freitag 16. November 2007, 17:55

syslink88 hat geschrieben:Ich will nun noch eine Uhr einbauen und da hab ich noch einige Probleme.

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. :roll:
syslink88
User
Beiträge: 14
Registriert: Mittwoch 14. November 2007, 15:47

Beitragvon syslink88 » Freitag 16. November 2007, 18:01

Nein ich hab das nicht so ganz richtig erklärt es ist ein coundown.
Der auf eine bestimmte Zeit hinlaufen soll.
syslink88
User
Beiträge: 14
Registriert: Mittwoch 14. November 2007, 15:47

Beitragvon syslink88 » Freitag 16. November 2007, 18:18

das mit dem
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')

nun wie kann ich diesen Text updaten in einer Schleife?
In der schleife ändert sich schon die variabel.
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Beitragvon schlangenbeschwörer » Freitag 16. November 2007, 18:36

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.
syslink88
User
Beiträge: 14
Registriert: Mittwoch 14. November 2007, 15:47

Beitragvon syslink88 » Freitag 16. November 2007, 18:44

Nun das ist das 1. Mal das ich mit Tkinter arbeite.
Und wie soll ich die tkVariable nehmen?
.after-Rekursion ? Wie kann ich den denn einbinden?
BlackJack

Beitragvon BlackJack » Freitag 16. November 2007, 19:00

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.
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Beitragvon schlangenbeschwörer » Freitag 16. November 2007, 19:00

Nagut, hier mal ein Bsp., ungetestet:

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()
[/code]
syslink88
User
Beiträge: 14
Registriert: Mittwoch 14. November 2007, 15:47

Beitragvon syslink88 » Freitag 16. November 2007, 19:34

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.

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()
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Beitragvon schlangenbeschwörer » Freitag 16. November 2007, 19:49

:arrow: Canvas.create_window(x, y[, window=[TkinterObjekt][, ...]])

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder