Метод
setAutoDefault или
setDefault добавлял, но почему-то не работает. (Думал, может причина что кнопка не в фокусе, пробовал сделать фокус активным методом
setFocus, но тоже не получается.) Подскажите, не знаю в чем проблема.
import sys, random
from PyQt5.QtWidgets import (QWidget, QLabel, QLineEdit, QGridLayout, QApplication, QPushButton)
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def create_cort(self):
global cort
cort = self.sp_five[self.i]
self.rulbl.setText(cort[0])
self.i += 1
def begin(self):
self.sp_five = []
self.i = 0
for o in range(4):
j = random.randint(0, len(self.all_words)-1)
self.sp_five.append(self.all_words[j])
self.phase_one()
def phase_one(self):
self.create_cort()
self.show_word()
def show_word(self):
self.qle1.setText(cort[1])
def initUI(self):
self.rulbl = QLabel()
self.qle1 = QLineEdit(self)
file = open("words.txt", "r")
self.all_words = []
for line in file.readlines():
lines = line.split()
self.all_words.append(tuple(lines))
self.begin()
self.bt = QPushButton('Запомнил')
self.bt.clicked.connect(self.phase_one)
self.bt.setFocus()
self.bt.setAutoDefault(True)
print(self.bt.hasFocus())
grid = QGridLayout()
grid.addWidget(self.rulbl, 1, 1)
grid.addWidget(self.qle1, 2, 1)
grid.addWidget(self.bt, 5, 1)
self.setLayout(grid)
self.setGeometry(300, 300, 380, 300)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())