PyQt5将Enter键连接到Widg

2024-10-02 00:38:55 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我正在使用我自己的自定义小部件,它由QLineEditQPushButton组成。用户只能在文本字段中输入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)

现在我想添加到类中的是,当闪烁的光标|在文本字段中时,允许用户按enter键。在

我能够找到关于鼠标的一般文档,mouseEvent和{}作为{}中的一种方法。但是我找不到任何关于文本字段中闪烁光标的文档。在

我想在init()中添加一些类似的伪代码:

^{pr2}$

我知道QLineEdit::returnPressed在创建正确的函数中起着重要作用,但我只希望enter键在用户使用ResizeWidget时有效。不是我图形用户界面的其他部分。我认为enter键并没有绑定到我整个应用程序中的一个小部件上,但是我有兴趣了解一下。在


Tags: 代码用户文本selffieldinit部件int
1条回答
网友
1楼 · 发布于 2024-10-02 00:38:55

只需添加以下行即可:

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

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

相关问题 更多 >

    热门问题