jetzt nur mit ENTER-Taste

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
marconisahib
User
Beiträge: 22
Registriert: Montag 25. Juni 2018, 08:34

Guten Tag blackjack,
zunächst vielen Dank für Deine Hilfe. Ich habe dadurch viel gelernt
Als Anlage eine kleine Liste mit ersten Tests - bin aber schon vieeel weiter.
Test-Eingabe ist jetzt:
call: dh4pb
qsa: 5
qrk: 5
op: fritz
excall: dan
qsa: python

"save" speichert dann alles und zeigt an (hier nicht)

Im Anschluss an diese Liste kommt noch eine Frage.
Hier zeige ich Dir nur, worum es mir bei dem Programm geht.
sri, ich bekomme das nicht in der farbigen python-Darstellung hin.

#!/usr/bin/env python
# coding: utf-8
from __future__ import absolute_import, division, print_function
from functools import partial
import Tkinter as tk
import time ###

##########################
def show_entry_fields():
print("show")

def save_entry_fields(time_label,call_entry):
print("save")
#save fields
#delete fields
call_entry.delete(0, 9)
call_entry.focus_set()

###################

def abgleich(status_label, call_entry, qsa_entry):
if len(call_entry.get()) <1: # == 'dh4pb':
status_label.config(text=' insert new call ', fg='red')
call_entry.delete(0, 9)
call_entry.focus_set()
else:
status_label.config(text=' take other details ', fg='green')
qsa_entry.focus_set()


def invoke_and_break(button, _event):
button.invoke()
return 'break'
###########################
def main():
root = tk.Tk()
root.title("MRD")
root.geometry("600x400")

headline_label = tk.Label(root, bg='white',fg ="red",font = "Helvetica 16 bold")
headline_label.grid(row=0, column=3, sticky=tk.W)
headline_label.config(text="QSO-Menu-c",fg ="red")

################################mrdFenster, ########################

show_label = tk.Label(root, bg='white', fg="blue")
show_label.grid(row=11, column=1, sticky=tk.W)

time_label = tk.Label(root, bg='white', fg="blue")
time_label.grid(row=11, column=3, sticky=tk.W)

status_label = tk.Label(root, bg='white')
status_label.grid(row=0, column=1, sticky=tk.W)

tk.Label(root, text='call').grid(row=1)
call_entry = tk.Entry(root)
call_entry.grid(row=1, column=1)

check_button = tk.Button(root, text='check')
check_button.grid(row=1, column=2, sticky=tk.W, pady=4)

tk.Label(root, text='qsa').grid(row=2)
qsa_entry = tk.Entry(root)
qsa_entry.grid(row=2, column=1)
qsa_entry.insert(1,"5")

tk.Label(root, text='qrk').grid(row=3)
qrk_entry = tk.Entry(root)
qrk_entry.grid(row=3, column=1)
qrk_entry.insert(1,"5")

tk.Label(root, text='op').grid(row=4)
op_entry = tk.Entry(root)
op_entry.grid(row=4, column=1)

tk.Label(root, text='excall').grid(row=5)
excall_entry = tk.Entry(root)
excall_entry.grid(row=5, column=1)

tk.Label(root, text='qra').grid(row=6)
qra_entry = tk.Entry(root)
qra_entry.grid(row=6, column=1)
###
####
save_button = tk.Button(root, text='save')
save_button.grid(row=12, column=1, sticky=tk.W, pady=4)

save_button['command'] = partial(
save_entry_fields, time_label, call_entry)

save_button.bind('<Return>', partial(invoke_and_break, save_button))
root.bind('<Return>', lambda _: root.event_generate('<Tab>'))


check_button['command'] = partial(
abgleich, status_label, call_entry, qsa_entry)

check_button.bind('<Return>', partial(invoke_and_break, check_button))
root.bind('<Return>', lambda _: root.event_generate('<Tab>'))

root.mainloop()


if __name__ == '__main__':
main()

################################

In meinem vorigen TAB-Programm stand recht noch eine Radio button-Auswahl.
der Code dazu stand nach der Fensterbeschreibung. Jetzt bei def main()
weis ich nicht wo ich die hinstellen soll??

Kannst Du mir helfen.
Danke
############################

# Erzeugung des Fensters
mrdFenster = Tk()
mrdFenster.title("MRD")
mrdFenster.geometry("600x400")
w = Label(mrdFenster, text="QSO-Menu",fg ="red",font = "Helvetica 16 bold").grid(ro$

#qssm=read_points()
#print ("qssm ret " , qssm)
################

v = IntVar()
start=20 ###qssm
print ("start =: ", start)
v.set(start) # enthaelt das zuletzt gewaehlte Band

band = [
("80m",80),
("40m",40),
("30m",30),
("20m",20),
("15m",15)
]

def ShowChoice():
print v.get()
Label(mrdFenster, text=" BAND").grid(row=1,column=3,sticky=W)

r = 0
for txt, val in band:
Radiobutton(mrdFenster,
text=txt,
padx = 20,
variable=v,
command=ShowChoice,
value=val).grid(row=r+2,column=3,sticky=W)
r = r + 1
Benutzeravatar
DeaD_EyE
User
Beiträge: 1232
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Viel gelernt, aber vergessen den Code in Code-Tags zu packen, wodurch alle Einrückungen verloren gehen. Wer soll bitteschön damit arbeiten?
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
marconisahib
User
Beiträge: 22
Registriert: Montag 25. Juni 2018, 08:34

sri, als ich das abschickte, war das alles noch eingerückt, Wie kann ich das im Python-Format verschicken?
Benutzeravatar
DeaD_EyE
User
Beiträge: 1232
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Ich finde den doofen Link jetzt nicht. Die Einrückungen sind immer noch da, sie werden aber nicht angezeigt.
Du musst deinen Beitrag bearbeiten und den Code in Code-Tags setzen.
Im Editor ist es das Symbol: </>

Den Quellcode markieren und dann auf das Symbol klicken und Absenden. Dann sind die Einrückungen auch sichtbar + Syntaxhervorhebung.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Benutzeravatar
ThomasL
User
Beiträge: 1378
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Ja, ist mir auch schon aufgefallen, der Button für Python Code Tags ist nicht mehr da.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
marconisahib
User
Beiträge: 22
Registriert: Montag 25. Juni 2018, 08:34

GM, Danke für Eure Hilfe.
Ich bin 77 Jahre und beschäftige mich jetzt mit Python.
Habe 1969 mit IBM 1130 angefangen als technischer Programmierer
(Umstellung von Blei auf Lichtsatz)
Jetzt versuche ich mal mit . </> ?? Ich benutze den editor mc.
schicke jetzt den letzten Teil erst mal zur Probe.

############################

# Erzeugung des Fensters
mrdFenster = Tk()
mrdFenster.title("MRD")
mrdFenster.geometry("600x400")
w = Label(mrdFenster, text="QSO-Menu",fg ="red",font = "Helvetica 16 bold").grid(ro$

#qssm=read_points()
#print ("qssm ret " , qssm)
################
##Ich habe das nach den Werten im Hauptpramm angepasst, aber er meckert immer v = IntVar() als unbekannt an
v = IntVar() #wird im neuen Progamm als unbekannt angemeckert
start=20 ###qssm
print ("start =: ", start)
v.set(start) # enthaelt das zuletzt gewaehlte Band

band = [
</>("80m",80),
</>("40m",40),
</>("30m",30),
</>("20m",20),
</>("15m",15)
]

def ShowChoice():
</>print v.get()
Label(mrdFenster, text=---------------" BAND").grid(row=1,column=3,sticky=W)

r = 0
for txt, val in band:
</>Radiobutton(mrdFenster,
</></> text=txt,
</></> padx = 20,
</></> variable=v,
</></> command=ShowChoice,
</></> value=val).grid(row=r+2,column=3,sticky=W)
</> r = r + 1
Benutzeravatar
ThomasL
User
Beiträge: 1378
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Hi marconi,
du hast das etwas missverstanden.
Hier im Forum gibt es unter dem letzten Beitrag ein Feld Schnellantwort
Da drunter gibt es einen Button Vollständiger Editor & Vorschau Da drauf klicken.
Es erscheint ein Eingabefeld und darüber sind diverse Buttons B I U und </> etc.
Wenn du auf </> klickst erscheint im Eingabefeld
[ code] [ /code]
Füge deinen Code zwischen diese beiden "Tags", dann erscheint der so

Code: Alles auswählen

# Erzeugung des Fensters
mrdFenster = Tk()
mrdFenster.title("MRD")
mrdFenster.geometry("600x400")
w = Label(mrdFenster, text="QSO-Menu",fg ="red",font = "Helvetica 16 bold").grid(ro$
keine </> irgendwo in einem anderen Editor einfügen und dann hier copy pasten,
das ist nicht gewollt und bringt nichts wie du siehst.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
marconisahib
User
Beiträge: 22
Registriert: Montag 25. Juni 2018, 08:34

-------------------------------------------------
Danke für Deine Geduld
gleich kommt der "Problemteil" noch einmal

Test-Eingabe ist jetzt:
call: dh4pb
qsa: 5
qrk: 5
op: fritz
excall: dan
qsa: python
--------------------------------------------------
den radio-button möchte ich auf die rechte Seite setzen?
Höhe qsa
------------------------------------------------------------------------------------

Code: Alles auswählen

#!/usr/bin/env python
# coding: utf-8
from __future__ import absolute_import, division, print_function
from functools import partial
import Tkinter as tk
import time ###

##########################
def show_entry_fields():
    print("show")

def save_entry_fields(call_entry):
    print("save")
    #save fields
    #delete fields
    call_entry.delete(0, 9) 
    call_entry.focus_set() 

###################

def abgleich(status_label, call_entry, qsa_entry):
    if len(call_entry.get()) <1:  # == 'dh4pb':
       status_label.config(text=' insert new call     ', fg='red')
       call_entry.delete(0, 9)
       call_entry.focus_set()     
    else:
       status_label.config(text=' take other details  ', fg='green')
       qsa_entry.focus_set()


def invoke_and_break(button, _event):
    button.invoke()
    return 'break'
########################### 

def main():
    root = tk.Tk()
    root.title("MRD")
    root.geometry("600x400")
    
    headline_label = tk.Label(root, bg='white',fg ="red",font = "Helvetica 16 bold")
    headline_label.grid(row=0, column=3, sticky=tk.W)
    headline_label.config(text="QSO-Menu",fg ="red")




  ########################################################
    status_label = tk.Label(root, bg='white')
    status_label.grid(row=0, column=1, sticky=tk.W)
    
    tk.Label(root, text='call').grid(row=1)
    call_entry = tk.Entry(root)
    call_entry.grid(row=1, column=1)
    
    check_button = tk.Button(root, text='check')
    check_button.grid(row=1, column=2, sticky=tk.W, pady=4)

    tk.Label(root, text='qsa').grid(row=2)
    qsa_entry = tk.Entry(root)
    qsa_entry.grid(row=2, column=1)
    qsa_entry.insert(1,"5")

    tk.Label(root, text='qrk').grid(row=3)
    qrk_entry = tk.Entry(root)
    qrk_entry.grid(row=3, column=1)
    qrk_entry.insert(1,"5")
    
    tk.Label(root, text='op').grid(row=4)
    op_entry = tk.Entry(root)
    op_entry.grid(row=4, column=1)

tk.Label(root, text='excall').grid(row=5)
    excall_entry = tk.Entry(root)
    excall_entry.grid(row=5, column=1)

    tk.Label(root, text='qra').grid(row=6)
    qra_entry = tk.Entry(root)
    qra_entry.grid(row=6, column=1)
###

    show_button = tk.Button(root, text='show')
    show_button.grid(row=10, column=1, sticky=tk.W, pady=4)

    show_button['command'] = partial(
    show_entry_fields)
    
    show_button.bind('<Return>', partial(invoke_and_break, show_button))
    root.bind('<Return>', lambda _: root.event_generate('<Tab>'))

####
    save_button = tk.Button(root, text='save')
    save_button.grid(row=12, column=1, sticky=tk.W, pady=4)

    save_button['command'] = partial(
        save_entry_fields, call_entry)
    
    save_button.bind('<Return>', partial(invoke_and_break, save_button))
    root.bind('<Return>', lambda _: root.event_generate('<Tab>'))

    
    check_button['command'] = partial(
        abgleich, status_label, call_entry, qsa_entry)
    
    check_button.bind('<Return>', partial(invoke_and_break, check_button))
    root.bind('<Return>', lambda _: root.event_generate('<Tab>'))
    
    root.mainloop()


if __name__ == '__main__':
    main()
    
marconisahib
User
Beiträge: 22
Registriert: Montag 25. Juni 2018, 08:34

Danke Danke - wieder dazu gelernt

Diesen Radio-button hätte ich gerne im Hauptprogramm an der rechten Seite.

mni tks


Code: Alles auswählen

# Erzeugung des Fensters
mrdFenster = Tk()
mrdFenster.title("MRD")
mrdFenster.geometry("600x400")
w = Label(mrdFenster, text="QSO-Menu",fg ="red",font = "Helvetica 16 bold").grid(row=0,column=3)

read_points()
print ("qssm ret " , qssm)
################

v = IntVar()
start=qssm
print ("start =: ", start)
v.set(start)  # enthaelt das zuletzt gewaehlte Band

band = [
   ("80m",80),
   ("40m",40),
   ("30m",30),
   ("20m",20),
   ("15m",15)
]

def ShowChoice():
    print v.get()

Label(mrdFenster, text="         BAND").grid(row=1,column=3,sticky=W)

r = 0
for txt, val in band:
    Radiobutton(mrdFenster, 
                text=txt,
                padx = 20,
                variable=v, 
                command=ShowChoice,
                 value=val).grid(row=r+2,column=3,sticky=W)
    r = r + 1
marconisahib
User
Beiträge: 22
Registriert: Montag 25. Juni 2018, 08:34

Achtung
bitte die beiden Zeilen löschen ##
#read_points()
#print ("qssm ret " , qssm)
und start auf 20 setzen
Der "start" kommt sonst aus der letzten Eintragung
################

v = IntVar()
start=20
marconisahib
User
Beiträge: 22
Registriert: Montag 25. Juni 2018, 08:34

Danke an Alle -man wird selbstständiger.

Thema hat sich erledigt.
mni tks marconisahib+
Antworten