DtkWidget
DTK Widget module
载入中...
搜索中...
未找到
Dtk::Widget::DLineEdit类 参考

DLineEdit一个聚合 QLineEdit 的输入框. 更多...

类 Dtk::Widget::DLineEdit 继承关系图:
Dtk::Widget::DFileChooserEdit Dtk::Widget::DPasswordEdit Dtk::Widget::DSearchEdit

信号

void alertChanged (bool alert) const
 警告状态改变发出此信号
 
void focusChanged (bool onFocus) const
 焦点状态改变发出此信号
 
void textChanged (const QString &)
 文本发生改变发出此信号
 
void textEdited (const QString &)
 每当编辑文本时会发出此信号
 
void cursorPositionChanged (int, int)
 光标位置改变发出此信号
 
void returnPressed ()
 按下Return键或Enter键会发出此信号
 
void editingFinished ()
 当按下Return或Enter键或文本字段失去焦点时会发出此信号
 
void selectionChanged ()
 每当选择更改时会发出此信号
 

Public 成员函数

 DLineEdit (QWidget *parent=nullptr)
 DLineEdit的构造函数
 
QLineEdit * lineEdit () const
 返回 QLineEdit 对象
 
void setPlaceholderText (const QString &)
 设置占位文本
 
void setAlert (bool isAlert)
 设置警告状态,橙黄色提示
 
bool isAlert () const
 返回当前是否是警告状态
 
void showAlertMessage (const QString &text, int duration=3000)
 显示警告消息 显示指定的文本消息,超过指定时间后警告消息消失
 
void showAlertMessage (const QString &text, QWidget *follower, int duration=3000)
 显示警告消息 显示指定的文本消息,超过指定时间后警告消息消失
 
void setAlertMessageAlignment (Qt::Alignment alignment)
 指定对齐方式 现只支持(下)左,(下)右,(下水平)居中, 默认左对齐
 
Qt::Alignment alertMessageAlignment () const
 获取警告消息的对齐方式
 
void hideAlertMessage ()
 隐藏警告消息框
 
void setLeftWidgets (const QList< QWidget * > &list)
 向输入框左侧添加控件 将 QList 里的控件插入到输入框的左侧
 
void setRightWidgets (const QList< QWidget * > &list)
 向输入框右侧添加控件 将 QList 里的控件插入到输入框的右侧
 
void setLeftWidgetsVisible (bool visible)
 是否隐藏输入框左侧控件.
 
void setRightWidgetsVisible (bool visible)
 是否隐藏输入框右侧控件.
 
void setClearButtonEnabled (bool enable)
 设置清除按钮是否可见.
 
bool isClearButtonEnabled () const
 返回清除按钮是否可见.
 
void setText (const QString &text)
 设置显示的文本.
 
QString text ()
 返回当前显示的文本.
 
void clear ()
 清空编辑的内容
 
QLineEdit::EchoMode echoMode () const
 返回输入框的回显模式
 
void setEchoMode (QLineEdit::EchoMode mode)
 设置回显的模式
 
void setContextMenuPolicy (Qt::ContextMenuPolicy policy)
 设置行编辑控件的文本菜单策略
 
bool speechToTextIsEnabled () const
 返回是否显示语音听写菜单项
 
void setSpeechToTextEnabled (bool enable)
 设置是否显示语音听写菜单项
 
bool textToSpeechIsEnabled () const
 返回是否显示语音朗读菜单项
 
void setTextToSpeechEnabled (bool enable)
 设置是否显示语音朗读菜单项
 
bool textToTranslateIsEnabled () const
 返回是否显示文本翻译菜单项
 
void setTextToTranslateEnabled (bool enable)
 设置是否显示文本翻译菜单项
 
bool copyEnabled () const
 返回文本是否可拷贝
 
void setCopyEnabled (bool enable)
 设置文本是否可拷贝
 
bool cutEnabled () const
 返回文本是否可裁切
 
void setCutEnabled (bool enable)
 设置输入文本是否可裁切
 

Protected 成员函数

 DLineEdit (DLineEditPrivate &q, QWidget *parent)
 
bool eventFilter (QObject *watched, QEvent *event) override
 事件过滤器 该过滤器不做任何过滤动作,但会监控输入框的焦点状态,并发送信号 focusChanged()
 
bool event (QEvent *event) override
 

属性

bool alert
 警告模式属性.
 

友元

class DStyleOptionLineEdit
 

详细描述

DLineEdit一个聚合 QLineEdit 的输入框.

概述

  • DLineEdit提供了向输入框左右两端插入控件的函数
  • DLineEdit提供了带警告颜色的输入框
  • DLineEdit提供了带文本警告消息的输入框

LineEdit 是一个单行输入文本框,为用户提供了比较多的编辑功能,除了QLineEdit默认的功能,DLineEdit还提供警告提示, 还可以通过 setLeftWidgets() 或者 setRightWidgets() 向编辑框左右侧添加额外控件

下面通过一个简单登录界面的程序来演示DLineEdit

CMakeLists.txt

配置 CMakeLists.txt 文件

cmake_minimum_required(VERSION 3.1.0) # 指定cmake最低版本
project(example1 VERSION 1.0.0 LANGUAGES CXX) # 指定项目名称, 版本, 语言 cxx就是c++
set(CMAKE_CXX_STANDARD 11) # 指定c++标准
set(CMAKE_CXX_STANDARD_REQUIRED ON) # 指定c++标准要求,至少为11以上
set(target example1) # 指定目标名称
set(CMAKE_AUTOMOC ON) # support qt moc # 支持qt moc
set(CMAKE_AUTORCC ON) # support qt resource file # 支持qt资源文件
set(CMAKE_AUTOUIC ON) # support qt ui file # 支持qt ui文件(非必须)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # support clangd 支持 clangd
if (CMAKE_VERSION VERSION_LESS "3.7.0") # 如果cmake版本小于3.7.0
set(CMAKE_INCLUDE_CURRENT_DIR ON) # 设置包含当前目录
endif()
find_package(Qt5 COMPONENTS Widgets REQUIRED) # 寻找Qt5组件Widgets
find_package(Qt5 COMPONENTS Gui REQUIRED) # 寻找Qt5组件Gui
find_package(Dtk COMPONENTS Widget REQUIRED) # 寻找Dtk组件Widget
find_package(Dtk COMPONENTS Core REQUIRED) # 寻找Dtk组件Core
find_package(Dtk COMPONENTS Gui) # 寻找Dtk组件Gui
add_executable(example1 # 添加可执行文件
main.cpp
)
target_link_libraries(example1 PRIVATE
Qt5::Widgets
Qt5::Gui
${DtkGui_LIBRARIES}
${DtkCore_LIBRARIES}
${DtkWidget_LIBRARIES}
) # 链接库

main.cpp

#include <DApplication>
#include <DMainWindow>
#include <DPushButton>
#include <DLineEdit>
#include <DWidget>
#include <QLayout>
#include <DPushButton>
#include <DPasswordEdit>
DWIDGET_USE_NAMESPACE //使用DWidget命名空间
int main(int argc, char *argv[]) {
DApplication app(argc,argv);
//限制主程序窗口最小尺寸
w.setMinimumSize(300,200);
//新建一个窗体,容纳所有控件
DWidget *cw = new DWidget(&w);
//新建一个可以输入手机号的DLineEdit控件
DLineEdit *phoneEdit = new DLineEdit();
//设置占位符文本,用于提示输入信息
phoneEdit->setPlaceholderText("输入手机号");
//在右侧添加一个获取验证码的按钮,这里演示使用匿名对象
phoneEdit->setRightWidgets({new DPushButton("获取验证码")});
//新建一个可以输入密码的 DPasswordEdit 控件,它从 DLineEdit 继承而来,一个方便键入密码的控件
DPasswordEdit *pwdEdit = new DPasswordEdit();
//设置占位符文本,用于提示输入信息
pwdEdit->setPlaceholderText("输入密码");
//设置窗体的为垂直布局
QVBoxLayout *mainLayout = new QVBoxLayout(cw);
//将两个编辑框添加到布局
mainLayout->addWidget(phoneEdit);
mainLayout->addWidget(pwdEdit);
//新建两个按钮控件,用于取消和登录
DPushButton *cancelBtn = new DPushButton("取消");
DPushButton *loginBtn = new DPushButton("登录");
//将两个按钮放入一个水平布局中
QHBoxLayout *btnLayout = new QHBoxLayout();
btnLayout->addWidget(cancelBtn);
btnLayout->addWidget(loginBtn);
//将水平布局添加到外层窗体的垂直布局中
mainLayout->addLayout(btnLayout);
//运用connect,实现登录按钮被按下后的一系列操作
QObject::connect(loginBtn, &DPushButton::clicked, [&phoneEdit, &pwdEdit, &w](){
//简单判断手机号是否输入,若为空,则输入手机号的编辑框发出警示信息
if(phoneEdit->text().isEmpty()) {
//发出警示信息,显示五秒
phoneEdit->showAlertMessage("手机号不能为空",5000);
return;
}
//判断输入的密码位数是否大于等于6位,若不满足,则发出警示信息
if(pwdEdit->text().size() < 6) {
//发出警示信息,显示五秒
pwdEdit->showAlertMessage("请输入至少6位密码",5000);
return;
}
//满足所有条件后,主窗口发出登录成功提示信息
w.sendMessage(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation), "登录成功!");
});
//将cw加入到主窗口中
w.setCentralWidget(cw);
w.show();
return app.exec();
}
DApplication 是 DTK 中用于替换 QCoreApplication 相关功能实现的类.
Definition dapplication.h:33
DLineEdit一个聚合 QLineEdit 的输入框.
Definition dlineedit.h:20
QString text()
返回当前显示的文本.
Definition dlineedit.cpp:306
void setPlaceholderText(const QString &)
设置占位文本
Definition dlineedit.cpp:372
void setRightWidgets(const QList< QWidget * > &list)
向输入框右侧添加控件 将 QList 里的控件插入到输入框的右侧
Definition dlineedit.cpp:210
The DMainWindow class provides a main application window.
Definition dmainwindow.h:20
void sendMessage(const QIcon &icon, const QString &message)
发送浮动消息.
Definition dmainwindow.cpp:776
DPasswordEdit提供了一个让用户输入的密码框.
Definition dpasswordedit.h:14

程序运行效果


构造及析构函数说明

◆ DLineEdit()

Dtk::Widget::DLineEdit::DLineEdit ( QWidget *  parent = nullptr)

DLineEdit的构造函数

参数
parent参数被发送到 QWidget 构造函数

成员函数说明

◆ alertChanged

void Dtk::Widget::DLineEdit::alertChanged ( bool  alert) const
signal

警告状态改变发出此信号

参数
alert是否在警告状态

◆ alertMessageAlignment()

Qt::Alignment Dtk::Widget::DLineEdit::alertMessageAlignment ( ) const

获取警告消息的对齐方式

返回
返回警告消息的对齐方式

◆ copyEnabled()

bool Dtk::Widget::DLineEdit::copyEnabled ( ) const

返回文本是否可拷贝

返回
true文本可拷贝 false不可拷贝

◆ cursorPositionChanged

void Dtk::Widget::DLineEdit::cursorPositionChanged ( int  ,
int   
)
signal

光标位置改变发出此信号

参数
参数1旧位置
参数2新位置

◆ cutEnabled()

bool Dtk::Widget::DLineEdit::cutEnabled ( ) const

返回文本是否可裁切

返回
true文本可剪切 false不可剪切

◆ echoMode()

QLineEdit::EchoMode Dtk::Widget::DLineEdit::echoMode ( ) const

返回输入框的回显模式

返回
返回回显的模式

◆ eventFilter()

bool Dtk::Widget::DLineEdit::eventFilter ( QObject *  watched,
QEvent *  event 
)
overrideprotected

事件过滤器 该过滤器不做任何过滤动作,但会监控输入框的焦点状态,并发送信号 focusChanged()

参数
watched被监听的子控件指针
event待过滤的事件
event实例
返回
成功过滤返回 true,否则返回 false

◆ focusChanged

void Dtk::Widget::DLineEdit::focusChanged ( bool  onFocus) const
signal

焦点状态改变发出此信号

参数
onFocus是否获取到焦点

◆ isAlert()

bool Dtk::Widget::DLineEdit::isAlert ( ) const

返回当前是否是警告状态

返回
返当前的警告状态

◆ isClearButtonEnabled()

bool Dtk::Widget::DLineEdit::isClearButtonEnabled ( ) const

返回清除按钮是否可见.

返回
true 清除按钮可见 false 清除按钮不可见

◆ lineEdit()

QLineEdit * Dtk::Widget::DLineEdit::lineEdit ( ) const

返回 QLineEdit 对象

注解
DLineEdit 不满足输入框的使用需求,请用此函数抛出的对象
返回
返回 QLineEdit 对象

◆ setAlert()

void Dtk::Widget::DLineEdit::setAlert ( bool  isAlert)

设置警告状态,橙黄色提示

参数
isAlerttrue为设置为警告状态,反之不是

◆ setAlertMessageAlignment()

void Dtk::Widget::DLineEdit::setAlertMessageAlignment ( Qt::Alignment  alignment)

指定对齐方式 现只支持(下)左,(下)右,(下水平)居中, 默认左对齐

注解
参数为其他时,默认左对齐
参数
alignment消息对齐方式

◆ setClearButtonEnabled()

void Dtk::Widget::DLineEdit::setClearButtonEnabled ( bool  enable)

设置清除按钮是否可见.

参数
enabletrue 按钮可见 false 按钮不可见

◆ setContextMenuPolicy()

void Dtk::Widget::DLineEdit::setContextMenuPolicy ( Qt::ContextMenuPolicy  policy)

设置行编辑控件的文本菜单策略

参数
policy显示右键菜单的方式 转发实际变量 QLineEdit 的 ContextMenuEvent 消息
参见
QLineEdit::setContextMenuPolicy

◆ setCopyEnabled()

void Dtk::Widget::DLineEdit::setCopyEnabled ( bool  enable)

设置文本是否可拷贝

参数
enabletrue文本可拷贝 false不可拷贝

◆ setCutEnabled()

void Dtk::Widget::DLineEdit::setCutEnabled ( bool  enable)

设置输入文本是否可裁切

参数
enabledtrue输入文本可剪切 false不可剪切

◆ setEchoMode()

void Dtk::Widget::DLineEdit::setEchoMode ( QLineEdit::EchoMode  mode)

设置回显的模式

参数
mode回显的模式

◆ setLeftWidgets()

void Dtk::Widget::DLineEdit::setLeftWidgets ( const QList< QWidget * > &  list)

向输入框左侧添加控件 将 QList 里的控件插入到输入框的左侧

注解
多次调用,只有最后一次调用生效
参数
list存储控件的列表

◆ setLeftWidgetsVisible()

void Dtk::Widget::DLineEdit::setLeftWidgetsVisible ( bool  visible)

是否隐藏输入框左侧控件.

参数
visible是否隐藏

◆ setPlaceholderText()

void Dtk::Widget::DLineEdit::setPlaceholderText ( const QString &  placeholderText)

设置占位文本

参数
参数1占位文本

◆ setRightWidgets()

void Dtk::Widget::DLineEdit::setRightWidgets ( const QList< QWidget * > &  list)

向输入框右侧添加控件 将 QList 里的控件插入到输入框的右侧

注解
多次调用,只有最后一次调用生效
参数
list存储控件的列表

◆ setRightWidgetsVisible()

void Dtk::Widget::DLineEdit::setRightWidgetsVisible ( bool  visible)

是否隐藏输入框右侧控件.

参数
visible是否隐藏

◆ setSpeechToTextEnabled()

void Dtk::Widget::DLineEdit::setSpeechToTextEnabled ( bool  enable)

设置是否显示语音听写菜单项

参数
enabletrue显示 flase不显示

◆ setText()

void Dtk::Widget::DLineEdit::setText ( const QString &  text)

设置显示的文本.

参数
text显示的文本

◆ setTextToSpeechEnabled()

void Dtk::Widget::DLineEdit::setTextToSpeechEnabled ( bool  enable)

设置是否显示语音朗读菜单项

参数
enabletrue显示 flase不显示

◆ setTextToTranslateEnabled()

void Dtk::Widget::DLineEdit::setTextToTranslateEnabled ( bool  enable)

设置是否显示文本翻译菜单项

参数
enabletrue显示 flase不显示

◆ showAlertMessage() [1/2]

void Dtk::Widget::DLineEdit::showAlertMessage ( const QString &  text,
int  duration = 3000 
)

显示警告消息 显示指定的文本消息,超过指定时间后警告消息消失

参数
text警告的文本
duration显示的时间长度,单位毫秒
注解
时间参数为-1时,警告消息将一直存在

◆ showAlertMessage() [2/2]

void Dtk::Widget::DLineEdit::showAlertMessage ( const QString &  text,
QWidget *  follower,
int  duration = 3000 
)

显示警告消息 显示指定的文本消息,超过指定时间后警告消息消失

参数
text警告的文本
followertooltip 跟随
duration显示的时间长度,单位毫秒
注解
时间参数为-1时,警告消息将一直存在

◆ speechToTextIsEnabled()

bool Dtk::Widget::DLineEdit::speechToTextIsEnabled ( ) const

返回是否显示语音听写菜单项

返回
true 显示语音听写菜单项 false不显示

◆ text()

QString Dtk::Widget::DLineEdit::text ( )

返回当前显示的文本.

返回
返回显示的文本

◆ textChanged

void Dtk::Widget::DLineEdit::textChanged ( const QString &  )
signal

文本发生改变发出此信号

参数
参数1当前文本

◆ textEdited

void Dtk::Widget::DLineEdit::textEdited ( const QString &  )
signal

每当编辑文本时会发出此信号

参数
参数1当前文本

◆ textToSpeechIsEnabled()

bool Dtk::Widget::DLineEdit::textToSpeechIsEnabled ( ) const

返回是否显示语音朗读菜单项

返回
true 显示语音朗读菜单项 false不显示

◆ textToTranslateIsEnabled()

bool Dtk::Widget::DLineEdit::textToTranslateIsEnabled ( ) const

返回是否显示文本翻译菜单项

返回
true 显示文本翻译菜单项 false 不显示

属性说明

◆ alert

DLineEdit::alert
readwrite

警告模式属性.

用于开启或者判断是否处于警告模式.


该类的文档由以下文件生成: