QLineEdit-----文本修改状态

1、文本修改状态-----是否被编辑(文本框中的内容是否被修改)

import sys
from PyQt5.Qt import *

# 做成活动模块,修改方便
# 1、创建应用程序,可以传递参数给app,通过命令行输入参数
app = QApplication(sys.argv)
window = QWidget()

window.setWindowTitle("文本的设置与获取---案例")
window.resize(500, 500)
le_a = QLineEdit(window)
le_a.move(100, 200)
le_b = QLineEdit(window)
le_b.move(100, 300)
# # 设置输入文本的输出模式
# # 类型一QLineEdit.NoEcho是密文的格式,显示的是一个空白,无法看出长度、内容
# # 类型二Nomal普通模式、password密文的形式、passonecoedit是用户输入过程可以看到文本内容,完成之后则显示为密文
# le_b.setEchoMode(QLineEdit.NoEcho)
# print(le_b.echoMode())
copy_btn = QPushButton(window)
copy_btn.move(100, 400)
copy_btn.setText("复制")
# 监听按钮事件都可
# pressed是监听鼠标按下,clicked是监听鼠标按下并松开那一刻才会发射信号
def copy_text():
    print(le_b.isModified())
    # 将文本框内容设置为未修改状态
    le_b.setModified(False)


copy_btn.clicked.connect(copy_text)

window.show()
sys.exit(app.exec_())

2、光标位置设置:选择性的移动光标位置、是否携带选中效果。

import sys
from PyQt5.Qt import *

# 做成活动模块,修改方便
# 1、创建应用程序,可以传递参数给app,通过命令行输入参数
app = QApplication(sys.argv)
window = QWidget()

window.setWindowTitle("功能测试")
window.resize(500, 500)

le = QLineEdit(window)
le.move(100, 100)

btn = QPushButton(window)
btn.setText("按钮")
btn.move(100, 200)
def cusor_move():
    # 属于单行文本编辑器的实例方法
    # 向后移动,即鼠标向左移动
    #le.cursorBackward(True, 2)
    # 像前移动,即鼠标向右移动
    #le.cursorForward(True, 3)
    # 往后移动一个单词
    le.cursorWordBackward(True)
    # 移动到行首
    le.home(True)
    # 移动到行尾
    le.end(True)
    le.setCursorPosition(len(le.text() / 2))
    le.setFocus()

btn.clicked.connect(cusor_move)

window.show()
sys.exit(app.exec_())

3、文本边距设置:(与QWidget控件类别中内容的外边距类似)

设置内容边距,改变整体的区域(我们的可视区域改变) le.setContentsMargins(100, 0, 0, 0)

设置文本间距:le.setTextMargins(100, 0, 0, 0)

4、对齐方式:

设置一个文本是水平靠右、垂直方向靠下

le.setAlignment(Qt.AlignRight | Qt.AlignBottom)

5、实验常用编辑功能:复制是将选中的内容放入到剪切板中

import sys
from PyQt5.Qt import *

# 做成活动模块,修改方便
# 1、创建应用程序,可以传递参数给app,通过命令行输入参数
app = QApplication(sys.argv)
window = QWidget()

window.setWindowTitle("功能测试")
window.resize(500, 500)

le = QLineEdit(window)
le.move(100, 100)
le.resize(100, 100)
le.setStyleSheet("background-color:cyan;")
# 设置文本框的拖拽功能
le.setDragEnable(True)

le2 = QLineEdit(window)
le2.move(200, 100)

btn = QPushButton(window)
btn.setText("按钮")
btn.move(100, 200)

def cusor_move():
    le.cursorBackward(True, 2)
    le.backspace()
    le.del_()
    le.clear()

# 通过代码控制复制的内容
    le.cursorBackword(True, 3)
# 复制是将选中的内容放入到剪切板中
    le.copy()
    le.paste()
    le.setFocus()

btn.clicked.connect(cusor_move)

window.show()
sys.exit(app.exec_())

 文本框失去焦点的情况下,会先取消内容选中,然后获得焦点,从该焦点处处理。

设置文本框的拖拽功能:le.setDragEnable(True)

即可以选中具有拖拽功能的文本框中的内容,长按,移动到另一个文本框中,松开鼠标。

6、文本选中:

setSelection(2, 21)从位置2开始选中,超出范围的情况,则从给定位置选中到最后。

当文本框失去焦点,他会自动取消所有选中的文本。

 7、文本框中常用的信号:

 文本框编辑时候发射的信号主要针对,输入文本时内容发生改变,不针对开发人员通过代码该改变文本内容(例如:le.setText("xxxx"))

import sys
from PyQt5.Qt import *

# 做成活动模块,修改方便
# 1、创建应用程序,可以传递参数给app,通过命令行输入参数
app = QApplication(sys.argv)
window = QWidget()

window.setWindowTitle("功能测试")
window.resize(500, 500)

le = QLineEdit(window)
le.move(100, 100)
le.resize(100, 100)

btn = QPushButton(window)
btn.setText("按钮")
btn.move(100, 200)

# 监听文本编辑时发射的信号
le.textEdited.connect(lambda val: print("文本框编辑的时候", val))
# 文本框内容发生改变时的信号
le.textChanged.connect(lambda val: print("文本框内容发生改变的时候", val))
le.selectionChanged.connect(lambda: print("选中文本发生改变", le.selectedText()))
window.show()
sys.exit(app.exec_())

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

。七十二。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值