Qt学习:QLineEdit的用法总结

在使用Qt编写软件时,QLineEdit这个部件经常会被用到,大部分用在登录界面的输入框,所以这个部件非常的重要.

常用成员函数:
1.void setClearButtonEnabled(bool); //是否设置一个清空按钮.
点击这个清空按钮后,就会自动删除行编辑框内的所有内容,类似于clear().
示例如图:
这里写图片描述

2.void setEchoMode(QLineEdit::EchoMode); //设置行编辑框内文本的显示模式.
如图两种显示模式是最常用的模式.分别为:QLineEdit::Normal,QLineEdit::Password.默认为QLineEdit::Normal.
这里写图片描述

3.void setAlignent(Qt::Alignment flag); //设置文本输入的位置.

4.void setValidator(QVaildator*); //设置输入验证器.(很重要!!)(具体用法在后一篇代码实现中会讲到).

5.void setPlaceText(QString); //设置占位符.
示例:
这里写图片描述

6.void setText(QString); //设置行编辑框内的文本.

7.void setReadOnly(bool); //把该行编辑框设置为只读模式,无法进行编辑.

8.void setEnabled(bool); //设置是否激活行编辑框,作用和7类似.

9.void setContextMenuPolicy(Qt::NoContextMenu). //设置该行编辑框内不会出现菜单.(密码输入里必用).

10.void setDragEnabled(bool); //设置行编辑框内的被选择的文本能否被拖拽,默认不能被拖拽.

11.void setAcceptDrops(bool); //设置行编辑框能否被拖拽进来文本.

12.bool isModified(); //判断文本是否被修改.

13.void selectAll(); //选中框内所有文本.

14.QString displayText(); //返回显示的文本.

15.QString selectedText(); //返回被选中的文本.


信号:
1.void cursorPositionChanged(int old, int new); //光标位置改变就发现信号.

2.void returnPressed(); //光标在行编辑框内时,点击回车即发出信号.

3.void selectionChanged() //选择的文本发生变化时,发出信号.

4.void textChanged(const QString & text) //只要文本内容发生改变,则发出信号.

5.void textEdited(const QString &text); //当文本被编辑后发出信号,注意!程序中调用的setText()方法并不会触发该信号.

  • 10
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Qt的signals和slots机制来实现回车键跳转文本框并全选其中的内容。具体实现代码可以参考以下示例: ```python from PyQt5.QtCore import Qt, pyqtSignal from PyQt5.QtGui import QKeyEvent from PyQt5.QtWidgets import QApplication, QLineEdit, QVBoxLayout, QWidget class MyLineEdit(QLineEdit): enter_pressed = pyqtSignal() def __init__(self, parent=None): super().__init__(parent) def keyPressEvent(self, event: QKeyEvent): if event.key() == Qt.Key_Return or event.key() == Qt.Key_Enter: self.enter_pressed.emit() return super().keyPressEvent(event) class MyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) self.lineedit1 = MyLineEdit(self) self.lineedit1.enter_pressed.connect(self.focus_lineedit2) self.lineedit2 = MyLineEdit(self) self.lineedit2.enter_pressed.connect(self.focus_lineedit1) layout = QVBoxLayout(self) layout.addWidget(self.lineedit1) layout.addWidget(self.lineedit2) def focus_lineedit2(self): self.lineedit1.clearFocus() self.lineedit2.selectAll() self.lineedit2.setFocus() def focus_lineedit1(self): self.lineedit2.clearFocus() self.lineedit1.selectAll() self.lineedit1.setFocus() if __name__ == '__main__': import sys app = QApplication(sys.argv) widget = MyWidget() widget.show() sys.exit(app.exec_()) ``` 以上代码创建了两个MyLineEdit对象,并将它们放在MyWidget上。对于每一个MyLineEdit对象,我们定义了一个名为enter_pressed的signal,当按下回车键时触发。在MyLineEdit的keyPressEvent()函数中,我们判断当按下回车键时,触发enter_pressed signal。在MyWidget中,我们实现了两个focus_lineedit函数,分别用于设置焦点在第一个LineEdit和第二个LineEdit上。在这两个函数中,我们使用selectAll()函数全选文本框的内容,使用clearFocus()函数清除其他文本框上的焦点,再使用setFocus()函数设置焦点在当前文本框上。 最后,运行以上代码可以看到,当按下第一个LineEdit上的回车键,焦点会自动跳转到第二个LineEdit上,并且第二个LineEdit中的文本会被全选。按下第二个LineEdit上的回车键,焦点又会跳转回第一个LineEdit上,并且第一个LineEdit中的文本会被全选。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值