как выключить функцию кнопкой(PySide)

Валентин

Новичок
Пользователь
Ноя 13, 2020
114
1
18
Сделал программу с помощью QT Designer. Как включить функцию по нажатии кнопки я знаю(ui.pushButton.clicked.connect( bhop )), а как выключить эту же функцию не где не могу найти. Как выключить функцию? Вот мой код:
import sys
import keyboard
import requests
import pymem
import re
from ui import Ui_Dialog
from PySide import QtCore, QtGui
from pymem import process
import time
from offsets import *

# create application
app = QtGui.QApplication(sys.argv)

# create form
Dialog = QtGui.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()

#Hook Logic
def bhop():
import pymem # pip install pymem
import pymem.process # Устанавливается вместе с модулем 'pymem'
import requests # pip install requests
from threading import Thread # Модуль установлен по умолчанию
import keyboard # pip install keyboard
import time # Модуль установлен по умолчанию

print('>>> Запускается чит...')

# < Подключаемся к игре >

pm = pymem.Pymem("csgo.exe")
client = pymem.process.module_from_name(pm.process_handle, "client.dll").lpBaseOfDll



# < Получаем оффсеты >


offsets = 'https://raw.githubusercontent.com/frk1/hazedumper/master/csgo.json'
response = requests.get(offsets).json()

dwLocalPlayer = int(response["signatures"]["dwLocalPlayer"])
dwForceJump = int(response["signatures"]["dwForceJump"])

m_fFlags = int(response["netvars"]["m_fFlags"])



# < Запускаем функцию >

def BunnyHop():
while True:
if pm.read_int(client + dwLocalPlayer):
player = pm.read_int(client + dwLocalPlayer)
force_jump = client + dwForceJump
on_ground = pm.read_int(player + m_fFlags)

if keyboard.is_pressed("space"):
if on_ground == 257:
pm.write_int(force_jump, 5)
time.sleep(0.17)
pm.write_int(force_jump, 4)

# < Запускаем функцию в мультипоток >
Thread(target=BunnyHop).start()


ui.pushButton.clicked.connect( bhop )

#run
sys.exit(app.exec_())
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 639
472
83
вам в прошлой теме сказали, как вставлять код...
 

Валентин

Новичок
Пользователь
Ноя 13, 2020
114
1
18
вам в прошлой теме сказали, как вставлять код...
Это другой вопрос. С прошлым я разобрался, спасибо.
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Это другой вопрос
Код нужно вставлять правильно в каждом вопросе. Почитайте тему про оформление вопросов: ссылка.
Как выключить функцию?
Механизм остановки потока нужно продумывать на этапе запуска потока (если внутри него бесконечный цикл).
Варианты примерно такие:
1. Сделать класс обертку над потоком с флагом для остановки цикла.
2. Использовать встроенные в pyqt5 средства для работы с потоками Qthread и QRunnable (вот тут есть примеры: ссылка)
3. Использовать процессы вместо потоков и завершать их по id.
 

Форум IT Специалистов