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

带有选择文件按钮的文本编辑框 更多...

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

Public 类型

enum  DialogDisplayPosition { FollowParentWindow , CurrentMonitorCenter }
 这个枚举保存了对话框可以出现的位置 更多...
 

信号

void fileChoosed (const QString &fileName)
 这个信号在文件被选择且点击了对话框的确认按钮之后被调用
 
void dialogOpened ()
 这个信号在对话框即将显示时被调用
 
void dialogClosed (int code)
 这信号在对话框关闭时被调用,无论对话框是被点击了确认还是取消,都会调用本信号
 
- 信号 继承自 Dtk::Widget::DLineEdit
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 成员函数

 DFileChooserEdit (QWidget *parent=nullptr)
 获取 DFileChooserEdit 的一个实例
 
void setFileMode (QFileDialog::FileMode mode)
 设置文件选择模式
 
QFileDialog::FileMode fileMode () const
 获取对话框选择文件模式
 
void setNameFilters (const QStringList &filters)
 设置文件名过滤器
 
QStringList nameFilters () const
 文件名过滤器
 
void setDirectoryUrl (const QUrl &directory)
 设置文件对话框打开时的路径
 
QUrl directoryUrl ()
 返回文件对话框打开时的路径
 
void setDialogDisplayPosition (DialogDisplayPosition dialogDisplayPosition)
 设置对话框显示位置
 
DFileChooserEdit::DialogDisplayPosition dialogDisplayPosition () const
 这个属性保存文件选择对话框将会出现的位置
 
void setFileDialog (QFileDialog *fileDialog)
 设置 fileDialog
 
QFileDialog * fileDialog () const
 返回 fileDialog
 
void initDialog ()
 初始化对话框
 
- Public 成员函数 继承自 Dtk::Widget::DLineEdit
 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 成员函数 继承自 Dtk::Widget::DLineEdit
 DLineEdit (DLineEditPrivate &q, QWidget *parent)
 
bool eventFilter (QObject *watched, QEvent *event) override
 事件过滤器 该过滤器不做任何过滤动作,但会监控输入框的焦点状态,并发送信号 focusChanged()
 
bool event (QEvent *event) override
 
- 属性 继承自 Dtk::Widget::DLineEdit
bool alert
 警告模式属性.
 

详细描述

带有选择文件按钮的文本编辑框

本控件基本与 DLineEdit 相同,但同时在编辑框的右侧提供了一个按钮,点击按钮将会出现一个选择文件的对话框,当在对话框中选择完毕点击确定之后,选择的结果将会出现在文本编辑框中。 另外还提供了设置对话框出现的位置,选择文件的类型,或设置文件名过滤器的方法以定制控件的功能。

下面提供DFileChooserEdit的例子:

项目目录结构在同一目录下

CMakeLists.txt

cmake_minimum_required(VERSION 3.1.0) # 指定cmake最低版本
project(example VERSION 1.0.0 LANGUAGES CXX) # 指定项目名称, 版本, 语言 cxx就是c++
set(CMAKE_CXX_STANDARD 11) # 指定c++标准
set(CMAKE_CXX_STANDARD_REQUIRED ON) # 指定c++标准要求,至少为11以上
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # 支持 clangd
if (CMAKE_VERSION VERSION_LESS "3.7.0") # 如果cmake版本小于3.7.0
set(CMAKE_INCLUDE_CURRENT_DIR ON) # 设置包含当前目录
endif()
find_package(Qt5 REQUIRED COMPONENTS Widgets) # 寻找Qt5组件Widgets
find_package(Dtk REQUIRED COMPONENTS Widget) # 寻找Dtk组件Widget
add_executable(${PROJECT_NAME} # 生成可执行文件
main.cpp
)
target_link_libraries(${PROJECT_NAME} PRIVATE # 添加需要链接的共享库
Qt5::Widgets
${DtkWidget_LIBRARIES}
)

main.cpp

#include <DApplication>
#include <DWidgetUtil>
#include <DMainWindow>
#include <QWidget>
#include <QHBoxLayout>
#include <DFileChooserEdit>
DWIDGET_USE_NAMESPACE
int main(int argc, char *argv[])
{
DApplication a(argc, argv);
// 创建一个widget容器
QWidget widget;
// 创建DFileChooserEdit对象
// 给widget设置水平布局
QHBoxLayout hLayout(&widget);
dialog.setFileMode(QFileDialog::Directory); // 指定选择的模式,选择目录。
dialog.setDirectoryUrl(QUrl("file:///home")); // 设置文件选择器打开路径为home目录
// 将dialogn放入到widget中
hLayout.addWidget(&dialog);
// widget放入主窗口
win.setCentralWidget(&widget);
win.resize(300,200);
win.show();
// 移动窗口到屏幕中心
Dtk::Widget::moveToCenter(&win);
return a.exec();
}
DApplication 是 DTK 中用于替换 QCoreApplication 相关功能实现的类.
Definition dapplication.h:33
带有选择文件按钮的文本编辑框
Definition dfilechooseredit.h:15
void setFileMode(QFileDialog::FileMode mode)
设置文件选择模式
Definition dfilechooseredit.cpp:143
void setDirectoryUrl(const QUrl &directory)
设置文件对话框打开时的路径
Definition dfilechooseredit.cpp:213
The DMainWindow class provides a main application window.
Definition dmainwindow.h:20

编译运行

cmake -Bbuild
cmake --build build
./build/example

结果如下图

参见
DLineEdit QFileDialog

成员枚举类型说明

◆ DialogDisplayPosition

这个枚举保存了对话框可以出现的位置

枚举值
FollowParentWindow 

跟随父窗口

CurrentMonitorCenter 

鼠标所在的显示器的中心

构造及析构函数说明

◆ DFileChooserEdit()

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

获取 DFileChooserEdit 的一个实例

参数
parent作为实例的父控件

成员函数说明

◆ dialogClosed

void Dtk::Widget::DFileChooserEdit::dialogClosed ( int  code)
signal

这信号在对话框关闭时被调用,无论对话框是被点击了确认还是取消,都会调用本信号

参数
code对话框的返回码,返回码表示了对话框是因为点击了取消还是确认而关闭的
参见
QDialog::DialogCode

◆ dialogDisplayPosition()

DFileChooserEdit::DialogDisplayPosition Dtk::Widget::DFileChooserEdit::dialogDisplayPosition ( ) const

这个属性保存文件选择对话框将会出现的位置

可选值为枚举 DFileChooserEdit::DialogDisplayPosition 中的值 Getter: DFileChooserEdit::dialogDisplayPosition , Setter: DFileChooserEdit::setDialogDisplayPosition

参见
DFileChooserEdit::DialogDisplayPosition

◆ dialogOpened

void Dtk::Widget::DFileChooserEdit::dialogOpened ( )
signal

这个信号在对话框即将显示时被调用

注解
注意,此时对话框并没有显示

◆ fileChoosed

void Dtk::Widget::DFileChooserEdit::fileChoosed ( const QString &  fileName)
signal

这个信号在文件被选择且点击了对话框的确认按钮之后被调用

参数
fileName被选中的文件名,包含其绝对路径。

◆ fileMode()

QFileDialog::FileMode Dtk::Widget::DFileChooserEdit::fileMode ( ) const

获取对话框选择文件模式

有多种类型的选择模式,也就是说对话框可以有多种显示或行为,例如选择单个文件,选择多个文件亦或选择一个目录等,详细可以查阅:QFileDialog::FileMode

返回
返回当前的选择模式
参见
QFileDialog::FileMode
注解
目前本控件只支持选择单个文件,即便调用 DFileChooserEdit::setFileMode 设置了选择模式,当有多个文件在对话框中被选中时,取其第一个作为选择结果

◆ nameFilters()

QStringList Dtk::Widget::DFileChooserEdit::nameFilters ( ) const

文件名过滤器

默认此选项为空,即所有文件都可以被选择,当文件名过滤器被设置后,则只有文件名与过滤器匹配的文件可以被选择, 例如:设置了"*.txt",则表示只有后缀名为"txt"的文件可以被选择, 或者同时设置了多个过滤器:QStringList() << "text file (*.txt)" << "picture file (*.png); 则会在文件选择对话框的下方出现设置的多个过滤选项,只是需要注意,一次只能使用一个过滤选项,也就是说不能同时即允许选择txt文件又允许选择png文件

返回
返回当前的文件名过滤器组成的列表
参见
DFileChooserEdit::setNameFilters

◆ setDialogDisplayPosition()

void Dtk::Widget::DFileChooserEdit::setDialogDisplayPosition ( DFileChooserEdit::DialogDisplayPosition  dialogDisplayPosition)

设置对话框显示位置

参数
dialogDisplayPosition对话框的显示位置
参见
DFileChooserEdit::dialogDisplayPosition

◆ setFileMode()

void Dtk::Widget::DFileChooserEdit::setFileMode ( QFileDialog::FileMode  mode)

设置文件选择模式

参数
mode要使用的模式
参见
DFileChooserEdit::fileMode

◆ setNameFilters()

void Dtk::Widget::DFileChooserEdit::setNameFilters ( const QStringList &  filters)

设置文件名过滤器

参数
filters要使用的文件名过滤器组成的列表
参见
DFileChooserEdit::nameFilters

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