praegune kellaaeg 16.06.2024 18:46:11
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
sõnum |
|
janeklass
HV vaatleja
liitunud: 13.05.2009
|
08.04.2016 09:58:43
python chekkbutton |
|
|
python:
|
from tkinter import * def arvuta(): T=float(mPaksus.get()) R=float(tera_R.get()) A=float(P_nurk.get()) PR=float(prisma_laius.get()) PP=float(P_pikkus.get()) K = 0.420 Pi = 3.14159 if T == 8 and R == 16 and PR == 80: #bend_allowance_valem_8_16_80() 1. null_punkt = 45 ba = Pi * (A / 180) * (R + K * T) tulemus = null_punkt - ba if A <= 55: tulemus = tulemus - 1 elif A > 55: tulemus = tulemus - 1 while PP > 700: tulemus = tulemus - 0.2 PP = PP - 500 tulemus_K=Label(myGUI,text="ALA on umbes: %.2f" % tulemus).grid(row=7,column=2) return tulemus_K def arvuta_HR(): T=float(mPaksus.get()) R=float(tera_R.get()) A=float(P_nurk.get()) PR=float(prisma_laius.get()) PP=float(P_pikkus.get()) K = 0.420 Pi = 3.14159 if T == 8 and R == 16 and PR == 80: #bend_allowance_valem_8_16_80() 1. null_punkt = 45 ba = Pi * (A / 180) * (R + K * T) tulemus = null_punkt - ba if A <= 55: tulemus = tulemus - 20 elif A > 55: tulemus = tulemus - 120 while PP > 700: tulemus = tulemus - 0.2 PP = PP - 500 tulemus_K=Label(myGUI,text="ALA on umbes: %.2f" % tulemus).grid(row=7,column=2) return tulemus_K myGUI=Tk() myGUI.geometry('400x200+100+200') myGUI.title('PainCalc') rida1=Label(myGUI,text='Materjali paksus').grid(row=0, column=0) rida2=Label(myGUI,text='Tera(R)').grid(row=1, column=0) rida3=Label(myGUI,text='Painde nurk').grid(row=2, column=0) rida4=Label(myGUI,text='Prisma').grid(row=3, column=0) rida5=Label(myGUI,text='Painde pikkus').grid(row=4, column=0) mPaksus=StringVar() tera_R=StringVar() P_nurk=StringVar() prisma_laius=StringVar() P_pikkus=StringVar() Paksus=Entry(myGUI,textvariable=mPaksus).grid(row=0,column=2) tera=Entry(myGUI,textvariable=tera_R).grid(row=1,column=2) nurk=Entry(myGUI,textvariable=P_nurk).grid(row=2,column=2) prisma=Entry(myGUI,textvariable=prisma_laius).grid(row=3,column=2) pikkus=Entry(myGUI,textvariable=P_pikkus).grid(row=4,column=2) hardox = IntVar() Checkbutton(myGUI, text="Hardox", variable=hardox).grid(row=0,column=5) rihvel = IntVar() Checkbutton(myGUI, text="Rihvel", variable=rihvel).grid(row=0, column=6) nupp1=Button(myGUI,text='Arvuta',command=arvuta).grid(row=5,column=0) myGUI.mainloop()
|
Tervist, nimelt olen siis värske progemise õpilane(mingi poolteist kuud õppinud). Graafilise liideseni pole tegelikult õpingutega jõudnud,aga kuna huvi on olen youtube ja google abiga midagi üritanud. Küsimus siis järgmine:
Nimelt kuidas saab teha nii,et kui chekbutton(nt koodis olev "hardox) on aktiivne siis tehakse arvutus teise funktsiooni järgi. Mul siin näites 2 funktsioni praegu arvutab nupp "arvuta" funktsiooni "arvuta" järgi ,aga oleks vaja nii,et kui on chekkbutton "hardox" aktiivne siis arvutaks nupp "arvuta" funktsiooni "arvita_HR " järgi.
|
|
tagasi üles |
|
|
Rauno266
Kreisi kasutaja
liitunud: 03.07.2009
|
08.04.2016 10:29:08
|
|
|
Isiklikult tundub kõige mõistlikum olevat hardox objekti väärtust küsida. Kui on checkitud, siis peaks olema väärtus 1 ja kui ei ole, siis väärtus 0.
if hardox.get() == 0:
nupp1 = Button(myGUI,text='Arvuta',command=arvuta).grid(row=5,column=0)
else:
nupp1 = Button(myGUI,text='Arvuta',command=arvuta_HR).grid(row=5,column=0) |
|
|
Kommentaarid: 41 loe/lisa |
Kasutajad arvavad: |
|
:: |
2 :: |
0 :: |
39 |
|
tagasi üles |
|
|
janeklass
HV vaatleja
liitunud: 13.05.2009
|
08.04.2016 10:50:08
|
|
|
Rauno266 kirjutas: |
Isiklikult tundub kõige mõistlikum olevat hardox objekti väärtust küsida. Kui on checkitud, siis peaks olema väärtus 1 ja kui ei ole, siis väärtus 0.
if hardox.get() == 0:
nupp1 = Button(myGUI,text='Arvuta',command=arvuta).grid(row=5,column=0)
else:
nupp1 = Button(myGUI,text='Arvuta',command=arvuta_HR).grid(row=5,column=0) |
|
Kuidas ja kuhu see koodi tuleks mul pista? Proovisin,aga muutusi ei toimu,tulemus on sama kui on chekitud ja kui pole. Vb teen midagi valesti. Praegu sättisin selle siis nii:
hardox = IntVar()
Checkbutton(myGUI, text="Hardox", variable=hardox).grid(row=0,column=5)
rihvel = IntVar()
Checkbutton(myGUI, text="Rihvel", variable=rihvel).grid(row=0, column=6)
if hardox.get() == 0:
nupp1 = Button(myGUI,text='Arvuta',command=arvuta).grid(row=5,column=0)
else:
nupp1 = Button(myGUI,text='Arvuta',command=arvuta_HR).grid(row=5,column=0)
myGUI.mainloop() |
|
|
tagasi üles |
|
|
mikk36
HV Guru
liitunud: 21.02.2004
|
08.04.2016 11:01:59
|
|
|
Pead ühe lisafunktsiooni tegema, mis kutsuks siis kas arvuta või arvuta_hr välja (hetkel kutsud sa arvuta otse välja nupule vajutades). Seal kontrollid ka selle checkbuttoni väärtust.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
|
janeklass
HV vaatleja
liitunud: 13.05.2009
|
08.04.2016 11:53:12
|
|
|
mikk36 kirjutas: |
Pead ühe lisafunktsiooni tegema, mis kutsuks siis kas arvuta või arvuta_hr välja (hetkel kutsud sa arvuta otse välja nupule vajutades). Seal kontrollid ka selle checkbuttoni väärtust. |
Kuidas see kontrollimine käib? Ma tegin kül funktsiooni ,aga seis on sama....tulemus ei muutu. Kas ma pean selle väärtuse chekbuttonile kõigepealt andma?
|
|
tagasi üles |
|
|
mikk36
HV Guru
liitunud: 21.02.2004
|
08.04.2016 13:03:07
|
|
|
Mis su praegune kood välja näeb?
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
|
janeklass
HV vaatleja
liitunud: 13.05.2009
|
08.04.2016 13:19:00
|
|
|
mikk36 kirjutas: |
Mis su praegune kood välja näeb? |
Praegune kood siis selline:
from tkinter import *
def arvuta():
T=float(mPaksus.get())
R=float(tera_R.get())
A=float(P_nurk.get())
PR=float(prisma_laius.get())
PP=float(P_pikkus.get())
K = 0.420
Pi = 3.14159
if T == 8 and R == 16 and PR == 80: #bend_allowance_valem_8_16_80() 1.
null_punkt = 45
ba = Pi * (A / 180) * (R + K * T)
tulemus = null_punkt - ba
if A <= 55:
tulemus = tulemus - 1
elif A > 55:
tulemus = tulemus - 1
while PP > 700:
tulemus = tulemus - 0.2
PP = PP - 500
tulemus_K=Label(myGUI,text="ALA on umbes: %.2f" % tulemus).grid(row=7,column=2)
return tulemus_K
def arvuta_HR():
T=float(mPaksus.get())
R=float(tera_R.get())
A=float(P_nurk.get())
PR=float(prisma_laius.get())
PP=float(P_pikkus.get())
K = 0.420
Pi = 3.14159
if T == 8 and R == 16 and PR == 80: #bend_allowance_valem_8_16_80() 1.
null_punkt = 45
ba = Pi * (A / 180) * (R + K * T)
tulemus = null_punkt - ba
if A <= 55:
tulemus = tulemus - 20
elif A > 55:
tulemus = tulemus - 120
while PP > 700:
tulemus = tulemus - 0.2
PP = PP - 500
tulemus_K=Label(myGUI,text="ALA on umbes: %.2f" % tulemus).grid(row=7,column=2)
return tulemus_K
def cb():
if hardox.get() == 0:
nupp1 = Button(myGUI,text='Arvuta',command=arvuta).grid(row=5,column=0)
else:
nupp1 = Button(myGUI,text='Arvuta',command=arvuta_HR).grid(row=5,column=0)
myGUI=Tk()
myGUI.geometry('400x200+100+200')
myGUI.title('PainCalc')
rida1=Label(myGUI,text='Materjali paksus').grid(row=0, column=0)
rida2=Label(myGUI,text='Tera(R)').grid(row=1, column=0)
rida3=Label(myGUI,text='Painde nurk').grid(row=2, column=0)
rida4=Label(myGUI,text='Prisma').grid(row=3, column=0)
rida5=Label(myGUI,text='Painde pikkus').grid(row=4, column=0)
mPaksus=StringVar()
tera_R=StringVar()
P_nurk=StringVar()
prisma_laius=StringVar()
P_pikkus=StringVar()
Paksus=Entry(myGUI,textvariable=mPaksus).grid(row=0,column=2)
tera=Entry(myGUI,textvariable=tera_R).grid(row=1,column=2)
nurk=Entry(myGUI,textvariable=P_nurk).grid(row=2,column=2)
prisma=Entry(myGUI,textvariable=prisma_laius).grid(row=3,column=2)
pikkus=Entry(myGUI,textvariable=P_pikkus).grid(row=4,column=2)
hardox = IntVar()
Checkbutton(myGUI, text="Hardox", variable=hardox,).grid(row=0,column=5)
rihvel = IntVar()
Checkbutton(myGUI, text="Rihvel", variable=rihvel).grid(row=0, column=6)
nupp1 = Button(myGUI,text='Arvuta',command=cb).grid(row=5,column=0)
myGUI.mainloop() |
|
|
tagasi üles |
|
|
riaak
HV Guru
liitunud: 22.09.2002
|
08.04.2016 13:23:14
|
|
|
Funktsioonis cb kutsu kohe õige funktsioon välja, mitte ära hakka nuppu üle kirjutama.
_________________ ¯\_(ツ)_/¯ |
|
Kommentaarid: 118 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
104 |
|
tagasi üles |
|
|
janeklass
HV vaatleja
liitunud: 13.05.2009
|
08.04.2016 13:31:25
|
|
|
riaak kirjutas: |
Funktsioonis cb kutsu kohe õige funktsioon välja, mitte ära hakka nuppu üle kirjutama. |
Tnx saingi tööle.
|
|
tagasi üles |
|
|
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|