今天来为大家分享一个小功能,首先看实现的效果吧~
功能讲解:QLineEdit控件进行文本编辑,点击保存按钮后,隐藏编辑框和保存按钮,仅展示编辑内容,当鼠标点击空白处时,同样隐藏编辑框、隐藏保存按钮,但不存储编辑文本
如果你要需要实现这样的功能,就继续往下看吧~
1:控件
三个控件:QLineEdit编辑框、QPushButton按钮、QLabel纯文本展示。
默认QLabel控件是隐藏状态,只有点击保存按钮以及失去焦点后才会展示。
2:响应消息
此时需要响应两个消息。
消息1:点击保存按钮
消息2:QLineEdit控件失去焦点后操作
对于控件来说,失去焦点的一般是focusOut消息,在QLineEdit这个类中,该消息是受保护的,那么如果要获取控件是如何失去焦点的,只能继承QLineEdit类,将失去焦点的消息,发送给调用者。
.h声明
.cpp实现
3:窗口功能实现
3.1:双击响应QLabel控件
在Qt控件中,QLabel是不会响应鼠标按下消息,之前文章中就有提到,如何让QLabel控件响应消息 Qt|控件点击消息获取方法,这篇文章中详细讲述了如何让QLabel控件响应鼠标按下消息。
鼠标双击QLabel控件功能:双击后隐藏QLabel控件,并将QLineEdit编辑框控件、QPushButton保存控件展示出来。
3.2:QLineEdit失去焦点
编辑框失去焦点后功能:显示QLabel控件,隐藏QLineEdit控件并且不记录编辑的内容,并隐藏保存按钮。
3.3:QPushButton保存按钮
点击保存按钮后功能:获取QLineEdit编辑框内的文本并隐藏、隐藏保存按钮,显示QLbable控件,静态文本展示。
实现了QLineEdit编辑框的失去焦点消息,那么该消息是什么时候触发呢?
例如,点击保存按钮时,先响应保存按钮,后响应鼠标失去焦点消息。
好了,到这里功能实现就完成了~
领取专属 10元无门槛券
私享最新 技术干货