Как мне зациклить функцию другим способом? Как решить проблему с переменными?
Есть функция btn_press() в которую вложен определенный макрос. Если после функции указать
while t <= v - 1:
t = t + 1
print('Вкладка ' + str(t) + ' из ' + str(v))
btn_press()
else:
pyautogui.moveTo(x=0, y=0, duration=0.1)
pyautogui.click()
Где t = 0 и v = int(input()). В таком случае макрос будет повторяться v раз. Но дело в том, что переменную v хочется запрашивать у юзера после того как он нажмет на кнопку 'Спам открытых вкладок'. Если я эти переменные пишу в теле функции btn_press(), тогда цикл while не видит их. Если я укажу эти переменные как глобальные тогда у юзера будет слишком рано запрашиваться переменная v
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
import keyboard
import pyautogui
pyautogui.PAUSE = 0.2
pyautogui.FAILSAFE = True
from kivy.config import Config
Config.set('graphics', 'resizable', 0) #Запрет масштабирования
Config.set('graphics', 'width', '640') #Высота окна
Config.set('graphics', 'height', '480') #Ширина окна
class LanSPApp(App):
def build(self):
bl = GridLayout(rows=3, padding=[15], spacing=10)
bl.add_widget(Button(
text='Спам открытых вкладок',
font_size = 20,
on_press = self.btn_press,
background_color = [.32,.85,.94,1],
background_normal = '',
size_hint = (.5, .25),
pos = (0, 360)))
bl.add_widget(Button(text='три'))#тест
bl.add_widget(Button(text='два'))#тест
return bl
def btn_press(self, instance):
""" СПАМ ОТКРЫТЫХ ВКЛАДОК """
pyautogui.moveTo(x=421, y=464)
pyautogui.click()
pyautogui.vscroll(-500)
pyautogui.moveTo(x=421, y=464)
pyautogui.click() #Клин на поле ввода текста
pyautogui.hotkey('1', 'tab')
pyautogui.moveTo(x=110, y=815)
pyautogui.click() #Отправка первого письма
pyautogui.press('ESC') #КОНЕЦ ПЕРВОГО ПИСЬМА
pyautogui.moveTo(x=421, y=464)
pyautogui.doubleClick() #Клик на поле ввода второй раз
keyboard.send('ctrl+a')
pyautogui.hotkey('2', 'tab')
pyautogui.moveTo(x=110, y=815)
pyautogui.click() #Отправка второго письма
pyautogui.press('ESC') #КОНЕЦ ВТОРОГО ПИСЬМА
pyautogui.moveTo(x=421, y=464)
pyautogui.doubleClick() #Клик на поле ввода третий раз
keyboard.send('ctrl+a')
pyautogui.hotkey('3', 'tab')
pyautogui.moveTo(x=110, y=815)
pyautogui.click() #Отправка третего письма
keyboard.send('ctrl+w') #Следующая вкладка с закрытием старой
if __name__ == "__main__":
LanSPApp().run()