我在PyQt5中有代码。我希望当我延迟按钮时,动作会不断执行。我尝试使用pressed.connect
而不是clicked.connect
,但没有任何改变。
主.py:
from PyQt5.QtWidgets import *
from threading import Thread
from time import sleep
import socket
import plyer
app = QApplication([])
main = QWidget()
def get_pos():
while True:
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("192.168.1.34",1234))
client.send(str("plyer.accelerometer.acceleration").encode("utf-8"))
sleep(0.5)
th = Thread(target=get_pos, args=())
th.start()
gas = QPushButton('Gas')
stop = QPushButton('Stop')
cords = QLabel('X = ?, Y = ?, Z = ?')
gas.setMinimumSize(300,300)
stop.setMinimumSize(300,300)
def press_gas():
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("192.168.1.34",1234))
client.send(str("GAS").encode("utf-8"))
def press_stop():
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("192.168.1.34",1234))
client.send(str("STOP").encode("utf-8"))
rowh = QHBoxLayout()
row = QVBoxLayout()
row1 = QVBoxLayout()
row.addWidget(gas)
row.addWidget(stop)
row1.addWidget(cords)
rowh.addLayout(row)
rowh.addLayout(row1)
gas.pressed.connect(press_gas)
stop.pressed.connect(press_stop)
main.setLayout(rowh)
main.show()
app.exec_()
如果我理解正确,那么我将建议放弃按钮,例如
QSlider
,。那么你的任务可能看起来像这样: