[由于害怕问一个愚蠢的问题,并且我知道自己在脑海中,我希望有人会引导我朝正确的方向前进。
我正在从事一个艺术项目,在该项目中,如果将PiTop和接近传感器一起使用,当人们到达传感器一定距离内时,文本就会使用tkinters消息系统进行更改(老实说,只要我可以可以设置一个带有白色文本的黑色窗口,这是我发现它(几乎)起作用的唯一方法)。我意识到这比我预期的要复杂,因此我具备(或显然没有)的基本Python技能不足以让我实现这一目标。无论哪种方式,这都是我编写的基本代码。我已经能够打印文本(并使用数组获取单词以创建我想要的挪威语句子),但是我不了解如何实际运行距离代码的测量,然后以某个人的身份触发新单词以特定距离接近传感器。现在的代码如下所示:
from ptpma.components import PMAUltrasonicSensor, PMALed
from time import sleep
from tkinter import *
import random
ultrasonic_sensor = PMAUltrasonicSensor("D4") #initialize the sensor
#print(ultrasonic_sensor.distance) shows the distance to the sensor
#sleep(0.1)
#random array for the various words
i = ['hensynsfull', 'nyttig','nådig','overbærende','sjenerøs','sympatisk','barmhjertig','altruistisk','anstendig','artig','behagelig','blid','dannet','dydig',
'edel','elskelig','elskverdig','ettergivende','fin','fredelig','fortrolig','fredsommelig','from','føyelig','galant','gemyttlig','god',
'godhjertet','godlynt','hengivende','hjelpsom','hjertelig','hyggelig','høflig','idealistisk','kjærlig','koselig','lun',
'lydig','lyttende','medgjørlig','mild','mottagelig','omsorgsfull','omtenksom','oppmerksom','rolig','skikkelig','spak','stillferdig',
'sømmelig','søt','tam','tillitsfull','varm','velmenende','veloppdragen','velvillig','vennlig','anstrengt','avvikende','flau','irritabel','nervøs',
'opprørt','rastløs','rådvill','selvbevisst','sårbar','urolig','usikker','uvel','angstfull','anspent','barsk','bedrøvet','bekymret',
'brå','engstelig','famlende','feig','forfjamset','forknytt','forlegen','forskrekket','forskremt','foruroliget','fryktsom','hissig','hvileløs',
'livlig','molefonken','motløs','nedstemt','oppjaget','oppspilt','pessimistisk','optimistisk','redd','sint','skremt','sjenert','skvetten',
'sky','spent','stressa','trist','ubesluttsom','usikker','utrygg','utålmodig']
tilfeldig = random.choice(i)
satt_sammen = "Hvorfor"'\n'"er du litt"'\n'+tilfeldig+"?"
#end random choice
#lage vindu i tkinter
master = Tk()
master.geometry("720x1440") #size of window
master.configure(background='black')
w = Message(master, text=satt_sammen)
w.config(anchor=CENTER, justify='center', pady=300, padx=200, bg='black', fg='white', font=('helvetica light', 60))
w.pack()
mainloop()
该程序当前唯一要做的是,每次打开窗口时,它将使用数组中的新单词更新文本。感谢您的投入。我一直在搜索并找到了一些帮助,但是我不太了解如何检查输入(传感器)并因此根据该输入动态更改文本。
您可以使用master.after(milliseconds, function_name)
再次运行该功能,它将检查传感器并更改文本。
我没有传感器,所以我每1000ms(1s)使用随机更改一次文本
#from ptpma.components import PMAUltrasonicSensor, PMALed
import tkinter as tk # PEP8: `import *` is not preferred
import random
# --- functions ---
def update_text():
#print(ultrasonic_sensor.distance) shows the distance to the sensor
w['text'] = random.choice(i)
master.after(1000, update_text) # run it again after 1000ms
# --- main ---
#ultrasonic_sensor = PMAUltrasonicSensor("D4") #initialize the sensor
i = ['hensynsfull', 'nyttig','nådig','overbærende','sjenerøs','sympatisk','barmhjertig','altruistisk','anstendig','artig','behagelig','blid','dannet','dydig',
'edel','elskelig','elskverdig','ettergivende','fin','fredelig','fortrolig','fredsommelig','from','føyelig','galant','gemyttlig','god',
'godhjertet','godlynt','hengivende','hjelpsom','hjertelig','hyggelig','høflig','idealistisk','kjærlig','koselig','lun',
'lydig','lyttende','medgjørlig','mild','mottagelig','omsorgsfull','omtenksom','oppmerksom','rolig','skikkelig','spak','stillferdig',
'sømmelig','søt','tam','tillitsfull','varm','velmenende','veloppdragen','velvillig','vennlig','anstrengt','avvikende','flau','irritabel','nervøs',
'opprørt','rastløs','rådvill','selvbevisst','sårbar','urolig','usikker','uvel','angstfull','anspent','barsk','bedrøvet','bekymret',
'brå','engstelig','famlende','feig','forfjamset','forknytt','forlegen','forskrekket','forskremt','foruroliget','fryktsom','hissig','hvileløs',
'livlig','molefonken','motløs','nedstemt','oppjaget','oppspilt','pessimistisk','optimistisk','redd','sint','skremt','sjenert','skvetten',
'sky','spent','stressa','trist','ubesluttsom','usikker','utrygg','utålmodig']
master = tk.Tk()
master.geometry("720x1440") #size of window
master.configure(background='black')
w = tk.Message(master) # empty string,`update_text()` will set first text
w.config(anchor='center', justify='center', pady=300, padx=200, bg='black', fg='white', font=('helvetica light', 60))
w.pack()
update_text() # run it first time
master.mainloop()