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_())