0
pyqtの.animateClick()機能を使って、ユーザーがその特定の順序でコピーしなければならないさまざまなボタンのクリックを表示するプログラムがあります。問題はanimateClick()が信号を送信しないようにすることです。ユーザーからのボタンクリック信号のみが必要です。ここで私が意味することを示すためのコードと、その問題を解決しようとした(それはうまくいかない)方法を示します。私は自分のコードをかなり簡略化したので、読みやすく、質問があれば教えてください。フラグは、開始()関数の後に1であることが出ないにもかかわらずPyQtのブロックボタンのクリック信号をブロック
from PyQt4 import QtCore,QtGui
global flag
global ai_states
ai_states = []
user_states = []
class Program(object):
# Set up the push buttons
#Code Here.
# Connect push buttons to function get_state()
self.pushButton.clicked.connect(self.get_state)
self.pushButton_2.clicked.connect(self.get_state)
self.pushButton_3.clicked.connect(self.get_state)
self.pushButton_4.clicked.connect(self.get_state)
# Code that starts the start() function
def start(self):
flag = 0
ai_states[:] = []
i = -1
# Code here that generates ai_states, numbers 1-4, in any order, based on button numbers.
for k in ai_states:
i = i + 1
# Code here that animates button clicks determined by ai_states
# Changes the flag to 1 once the loop ends
if i == len(ai_states):
flag = 1
def get_state(self):
if flag == 1:
user_states.append(str(self.centralWidget.sender().text()))
else:
pass
if len(user_states) == len(ai_states):
# Checks to make sure the user inputted the same clicks as the ai_states
、それはまだanimatedClick()信号を付加されています。私は間違って何をしていますか?私はGUIプログラミングを初めて学んだので、おそらくこれについては非常に悪い方法でやっています。どんな助けもありがとう。