Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  python chekkbutton märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
janeklass
HV vaatleja

liitunud: 13.05.2009




sõnum 08.04.2016 09:58:43 python chekkbutton vasta tsitaadiga

python:
  1. from tkinter import *
  2.  
  3. def arvuta():
  4.     T=float(mPaksus.get())
  5.     R=float(tera_R.get())
  6.     A=float(P_nurk.get())
  7.     PR=float(prisma_laius.get())
  8.     PP=float(P_pikkus.get())
  9.     K = 0.420
  10.     Pi = 3.14159
  11.        
  12.    
  13.     if T == 8 and R == 16 and PR == 80: #bend_allowance_valem_8_16_80() 1.
  14.        
  15.         null_punkt = 45
  16.         ba = Pi * (A / 180) * (R + K * T)
  17.         tulemus = null_punkt - ba
  18.         if A <= 55:
  19.             tulemus = tulemus - 1
  20.         elif A > 55:
  21.             tulemus = tulemus - 1
  22.         while PP > 700:
  23.             tulemus = tulemus - 0.2
  24.             PP = PP - 500
  25.         tulemus_K=Label(myGUI,text="ALA on umbes: %.2f" % tulemus).grid(row=7,column=2)
  26.     return tulemus_K
  27.            
  28.  
  29. def arvuta_HR():
  30.     T=float(mPaksus.get())
  31.     R=float(tera_R.get())
  32.     A=float(P_nurk.get())
  33.     PR=float(prisma_laius.get())
  34.     PP=float(P_pikkus.get())
  35.     K = 0.420
  36.     Pi = 3.14159
  37.        
  38.    
  39.     if T == 8 and R == 16 and PR == 80: #bend_allowance_valem_8_16_80() 1.
  40.        
  41.         null_punkt = 45
  42.         ba = Pi * (A / 180) * (R + K * T)
  43.         tulemus = null_punkt - ba
  44.         if A <= 55:
  45.             tulemus = tulemus - 20
  46.         elif A > 55:
  47.             tulemus = tulemus - 120
  48.         while PP > 700:
  49.             tulemus = tulemus - 0.2
  50.             PP = PP - 500
  51.         tulemus_K=Label(myGUI,text="ALA on umbes: %.2f" % tulemus).grid(row=7,column=2)
  52.     return tulemus_K
  53.            
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63. myGUI=Tk()
  64. myGUI.geometry('400x200+100+200')
  65. myGUI.title('PainCalc')
  66.  
  67. rida1=Label(myGUI,text='Materjali paksus').grid(row=0, column=0)
  68. rida2=Label(myGUI,text='Tera(R)').grid(row=1, column=0)
  69. rida3=Label(myGUI,text='Painde nurk').grid(row=2, column=0)
  70. rida4=Label(myGUI,text='Prisma').grid(row=3, column=0)
  71. rida5=Label(myGUI,text='Painde pikkus').grid(row=4, column=0)
  72.  
  73. mPaksus=StringVar()
  74. tera_R=StringVar()
  75. P_nurk=StringVar()
  76. prisma_laius=StringVar()
  77. P_pikkus=StringVar()
  78.  
  79.  
  80. Paksus=Entry(myGUI,textvariable=mPaksus).grid(row=0,column=2)
  81. tera=Entry(myGUI,textvariable=tera_R).grid(row=1,column=2)
  82. nurk=Entry(myGUI,textvariable=P_nurk).grid(row=2,column=2)
  83. prisma=Entry(myGUI,textvariable=prisma_laius).grid(row=3,column=2)
  84. pikkus=Entry(myGUI,textvariable=P_pikkus).grid(row=4,column=2)
  85.  
  86. hardox = IntVar()
  87. Checkbutton(myGUI, text="Hardox", variable=hardox).grid(row=0,column=5)
  88. rihvel = IntVar()
  89. Checkbutton(myGUI, text="Rihvel", variable=rihvel).grid(row=0, column=6)
  90.  
  91. nupp1=Button(myGUI,text='Arvuta',command=arvuta).grid(row=5,column=0)
  92.  
  93.    
  94.  
  95. 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
vaata kasutaja infot saada privaatsõnum
Rauno266
Kreisi kasutaja

liitunud: 03.07.2009




sõnum 08.04.2016 10:29:08 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
janeklass
HV vaatleja

liitunud: 13.05.2009




sõnum 08.04.2016 10:50:08 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 08.04.2016 11:01:59 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
janeklass
HV vaatleja

liitunud: 13.05.2009




sõnum 08.04.2016 11:53:12 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 08.04.2016 13:03:07 vasta tsitaadiga

Mis su praegune kood välja näeb?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
janeklass
HV vaatleja

liitunud: 13.05.2009




sõnum 08.04.2016 13:19:00 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
riaak
HV Guru
riaak

liitunud: 22.09.2002



Autoriseeritud ID-kaardiga

sõnum 08.04.2016 13:23:14 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
janeklass
HV vaatleja

liitunud: 13.05.2009




sõnum 08.04.2016 13:31:25 vasta tsitaadiga

riaak kirjutas:
Funktsioonis cb kutsu kohe õige funktsioon välja, mitte ära hakka nuppu üle kirjutama.


icon_smile.gif Tnx saingi tööle.
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  python chekkbutton
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
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.