У меня есть интерфейс gui в блендере, и для пользователя должен быть сценарий:Как я могу обновить значение текстового поля в живом режиме?
После нажатия кнопки «Выполнить» пользователь может вводить предложения во входном текстовом поле, чтобы каждое предложение заканчивалось точка точка ". то, если пользователь вводит предложение, тогда поле ввода должно быть очищено, а введенное предложение должно отображаться в текстовом поле вывода.
Проблема заключается в следующей части кода:
while 1:
input = Textbox1.val
if input.__contains__('.'):
Textbox1.val = ''
Textbox2.val = input
А вот весь мой код:
import Blender
from Blender.BGL import *
from Blender.Draw import *
def draw_gui():
global Textbox1, Textbox2
Textbox1 = Create('input')
Textbox2 = Create('output')
glClearColor(0.753, 0.753, 0.753, 0.0)
glClear(GL_COLOR_BUFFER_BIT)
glColor3f(0.000, 0.000, 0.627)
glRecti(20, 150, 730,500)
Button('Exit', 1, 450, 220, 87, 31)
Button('Quit', 2, 350, 220, 87, 31)
Button('Run', 3, 250, 220, 87, 31)
Textbox1 = String('', 4, 50, 400, 650, 50, Textbox1.val, 399, '')
Textbox2 = String('', 4, 50, 300, 650, 50, Textbox2.val, 399, '')
def event(evt, val):
if (evt==QKEY and not val): Exit()
def bevent(evt):
if evt == 1: #cmdExit
Exit()
elif evt == 2 : #cmdQuit
Blender.Quit()
elif evt == 3 : #cmdRun
########################### from here the problem starts
while 1:
input =Textbox1.val
if input.__contains__('.'):
Textbox1.val=''
Textbox2.val=input
#################### and here is the end of it
Blender.Redraw()
Register(draw_gui, event, bevent)
Это немного странно, поскольку вопрос очень специфичен для Блендера. Я посмотрю, есть ли какой-либо тег, который применяется. – unwind
Почему код с двойным интервалом? Трудно читать. Кроме того, пожалуйста, отметьте домашнее задание как [домашнее задание] Это обязательно выглядит как домашнее задание. –