左移字母

问题描述 投票:0回答:1
import sys
from PyQt5.QtGui import QPainter, QPen, QBrush
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtCore import Qt

class EyeChart(QWidget):   

def __init__(self):
    super().__init__()
    self.setGeometry(300, 300, 200, 200)
    self.setWindowTitle('Eye Chart')
    self.__cur_keys = ''
    self.show()

def keyPressEvent(self, event):
  if(event.text().isalpha()):<-
      self.__cur_keys += event.text().upper()<-
  if(len(self.__cur_keys)<5):<-
      self.repaint()<-
  else:<-
      self.update()

箭头和5行代码是我需要帮助修复的地方。

最多可输入的字母数为5。输入5个字母后,任何后续按字母的键将替换为当前显示的最后一个字母,同时删除当前显示的第一个字母(所有字母向左移动) 。

输出应如下所示-用户输入#1- ABCDE用户输入2-用户按下Q,现在输出为BCDEQ输出总是假定为5个字母,一旦用户按下新字母,所有内容都应该向左移动。上面的代码是我尝试过的代码,对此我将不胜感激。

python pyqt pyqt5
1个回答
0
投票

[嘿,Alex,欢迎来到Stack Exchange。如果您使用的是QlineEdit(我怀疑您是QlineEdit),则您必须创建一种方法,以便每次用户将第二个字符放入第二行时都进行检查。因此,这里我仅向您展示如何做您想做的事,然后将此想法应用到您的代码中。

© www.soinside.com 2019 - 2024. All rights reserved.