我做了一个虚拟键盘,我想用输入来控制,以便我的键盘按钮像1,2,3,4,5那样循环运行

时间:2019-05-21 11:51:34

标签: python pyqt5

我用pyqt5程序制作了一个虚拟键盘,现在我有一个输入,并且按顺序有键盘1 2 3 4 5 6 7 8 9 0                          a b c d e f g h i j                          ...........                                        设 现在我希望键盘在每个突出显示的按钮都处于自动循环中 当输入被触发时,我想选择该按钮,然后再次循环以重新启动

我无法正常工作  请帮助我

我试图在python代码中循环并触发按钮的输入,然后我添加time.sleep(time)和输出比我在time.sleep中添加的时间晚了大约一秒钟,所有按钮的输出都在触发每个按钮的时间相同....

from  PyQt5.QtWidgets  import *
from  PyQt5.uic  import  loadUi
import sys
from  matplotlib.backends.backend_qt5agg  import  ( NavigationToolbar2QT  as  NavigationToolbar )
import matplotlib.animation as animation
import matplotlib as plt
from matplotlib.figure import Figure
import  numpy  as  np
import  random
from lineEdit import QLabel
from time import sleep

n=200 #frames
interval=60

global init
init = ""

def autotype(button,output):
    for i in button:
        for j in output:
            i.setStyleSheet("background-color: red")
            i.clicked.connect(j)
            sleep(0.5)

class  MatplotlibWidget ( QMainWindow ):


    def  __init__ ( self ):
        QMainWindow . __init__ ( self )
        loadUi ( "qt_desginer.ui" , self )
        self.setWindowTitle ( "Brain Input processer" )
        #self . pushButton_generate_random_signal . clicked . connect ( self . update_graph )
        self.update_graph()
        self.addToolBar ( NavigationToolbar(self.MplWidget.canvas,self))

        self.button_1n = 1
        self.button_2n = 2
        self.button_3n = 3
        self.button_4n = 4
        self.button_5n = 5


        button = [ self.button_1,self.button_2,self.button_3,self.button_4,self.button_5 ]
        output = [ self.button_click1,self.button_click2,self.button_click3,self.button_click4,self.button_click5]

        for x in button:
            x.clicked.connect(lambda: autotype(button,output))

    def keyboardinput(self,output):
        a = output
        global init
        concat =  init + a
        self.QLabel.setText(concat)
        init = concat

    def keyboardinputclear(self):
        self.QLabel.clear()


    def button_click1(self):
        self.keyboardinput(str(self.button_1n))
        #self.QLabel.setText(str(self.button_1n))


    def button_click2(self):
        self.keyboardinput(str(self.button_2n))
        #self.QLabel.setText(str(self.button_2n))

    def button_click3(self):
        self.keyboardinput(str(self.button_3n))
        #self.QLabel.setText(str(self.button_3n))

    def button_click4(self):
        self.keyboardinput(str(self.button_4n))
        #self.QLabel.setText(str(self.button_4n))

    def button_click5(self):
        self.keyboardinput(str(self.button_5n))
        #self.QLabel.setText(str(self.button_5n))



app  =  QApplication ([])
window  =  MatplotlibWidget ()
window . show ()
app . exec_ ()

我希望每个突出显示的按钮都能自动进入键盘循环 当输入被触发时,我想选择该按钮,然后再次循环以重新启动

0 个答案:

没有答案