如何从字段中获取变量值

2024-10-01 17:40:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一段代码,我想为我的项目更改它,但是我不知道如何获取我的条目的值,因为有一个变量要在start函数中使用。这是我的密码:

#!/usr/bin/python3
import wiringpi
from time import sleep
gpio = wiringpi.GPIO(wiringpi.GPIO.WPI_MODE_GPIO)
shutterpin = 17
flashpin = 18
solenoidpin = 22
gpio.pinMode(shutterpin,gpio.OUTPUT)
gpio.pinMode(flashpin,gpio.OUTPUT)
gpio.pinMode(solenoidpin,gpio.OUTPUT)
wiringpi.pinMode(shutterpin,1)
wiringpi.pinMode(flashpin,1)
wiringpi.pinMode(solenoidpin,1)


from Tkinter import *
fields = 'size_drop1', 'interval_drop', 'size_drop2', 'lapse_before_flash',          'shutter_time'


def fetch(entries):
 for entry in entries:
  field = entry[0]
  text  = entry[1].get()
  print('%s: "%s"' % (field, text))

def start(entries):
  size_drop1 : float(size_drop1)
  interval_drop : float(interval_drop)
  size_drop2 : float(size_drop2)
  lapse_before_flash : float(lapse_before_flash)
  shutter_time : float(shutter_time)

  sleep(lapse_before_flash)
  gpio.digitalWrite(shutterpin,gpio.HIGH)
  sleep(0.5)
  gpio.digitalWrite(shutterpin,gpio.LOW)


  gpio.digitalWrite(solenoidpin,gpio.HIGH)
  sleep(size_drop1)
  gpio.digitalWrite(solenoidpin,gpio.LOW)

  gpio.digitalWrite(solenoidpin,gpio.HIGH)
  sleep(interval_drop)
  gpio.digitalWrite(solenoidpin,gpio.LOW)

  gpio.digitalWrite(solenoidpin,gpio.HIGH)
  sleep(size_drop2)
  gpio.digitalWrite(solenoidpin,gpio.LOW)


  sleep(lapse_before_flash)
  gpio.digitalWrite(flashpin,gpio.HIGH)
  sleep(0.5)
  gpio.digitalWrite(flashpin,gpio.LOW)

def makeform(root, fields):
 entries = []
 for field in fields:
  row = Frame(root)
  lab = Label(row, width=15, text=field, anchor='w')
  ent = Entry(row)
  row.pack(side=TOP, fill=X, padx=5, pady=5)
  lab.pack(side=LEFT)
  ent.pack(side=RIGHT, expand=YES, fill=X)
  entries.append((field, ent))
return entries

if __name__ == '__main__':
   root = Tk()
   ents = makeform(root, fields)
   root.bind('<Return>', (lambda event, e=ents: fetch(e)))
  b1 = Button(root, text='Show',
      command=(lambda e=ents: fetch(e)))
  b1.pack(side=LEFT, padx=5, pady=5)
  b2 = Button(root, text='start', command=(lambda e=ents: start(e)))
  b2.pack(side=LEFT, padx=5, pady=5)
  b3 = Button(root, text='Quit', command=root.quit)
  b3.pack(side=LEFT, padx=5, pady=5)
  root.mainloop()

Tags: textsizegpiosleeprootsidepackentries
1条回答
网友
1楼 · 发布于 2024-10-01 17:40:54

您似乎对代码的fetch function部分有正确的想法,要访问Tkinter上输入框中键入的文本,可以使用.get()函数,如下所示:

# main tk window
root = Tk()
# creates the entry_box
entry_box = Entry(root, text='')
# places the entry_box on the program
entry_box.grid()
# changes the text, starting on the first char of the entry_box to 'test'
# (for testing purposes)
entry_box.insert(0, 'test')
# prints the typed test, in this case 'test'
print(entry_box.get())
# run the program
mainloop()

这将打印插入的字符串,以便您掌握其窍门。你知道吗

还要记住将Entry赋给一个变量,这样就可以调用.get()函数。你知道吗

相关问题 更多 >

    热门问题