gpt4 book ai didi

python - PyQt5 连接 Enter key 到 Widget

转载 作者:行者123 更新时间:2023-11-28 21:47:16 30 4
gpt4 key购买 nike

目前我正在使用我自己的自定义小部件,它由一个 QLineEdit 和一个 QPushButton 组成。用户只能在文本字段中输入 0 到 1000 之间的整数。单击按钮后,小部件的自定义 clicked 信号会发出字段中的值。

代码如下:

class ResizeWidget(QWidget):

clicked = pyqtSignal(int)

def __init__(self):
super().__init__()

#NumField and Button
self.field = QLineEdit()
self.field.setPlaceholderText("Resize Percentage [0,1000]")
self.resizeButton = QPushButton("Resize")

#Layout
self.lay = QHBoxLayout()
self.setLayout(self.lay)

#Add to Widget
self.lay.addWidget(self.field)
self.lay.addWidget(self.resizeButton)

#Field limits
self.field.setMaxLength(4)
self.field.setValidator(QIntValidator(0,1000))

#Connection
self.resizeButton.clicked.connect(self.onClick)

@pyqtSlot()
def onClick(self):
val = int(self.field.text())
self.clicked.emit(val)

现在我想添加到类中的是一些允许用户在文本字段中闪烁的光标 | 有时称为“插入符号”时按回车键的方法。

我能够找到关于鼠标的一般文档,mouseEventmousePressEvent 作为 QWidgets 中的方法。但我找不到任何涉及文本字段中闪烁光标的文档。

我想在 init() 中添加这样的伪代码:

if(cursor == inQLineEdit and pressedEnter):
self.onClick()

我知道 QLineEdit::returnPressed 在创建正确函数方面起着重要作用,但我只希望在用户使用 ResizeWidget 时输入键有效。不是我的 GUI 的其他部分。我认为回车键在我的整个应用程序中并没有绑定(bind)到只有 1 个小部件,但我很想知道。

最佳答案

就像添加以下行一样简单:

self.field.returnPressed.connect(self.onClick)

只要插入符号(闪烁的光标)不在文本字段中,按 Enter 键就不会引起我的自定义小部件的任何反应。

关于python - PyQt5 连接 Enter key 到 Widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36751472/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com