Qt中编辑框的使用总结

Qt中有多少种编辑框类型呢?

QLineEdit、QTextEdit、QPlainTextEdit、QTextBrowser

这么多编辑框控件那我们该如何使用呢?以及它们之间有什么共同点吗?

1:通用设置

因为这四个控件都是编辑框类型,那么对于相同功能的控件肯定存在了一定的相似性,首先我们来讲解下这个通用功能吧!

1.1 文字显示方式

在Qt中设置文本的显示方式一般采用"setAlignment"函数进行设置,当然了,如果你要是想用QSS的方式也是可以的。

举例:

ui.edit->setAlignment(Qt::AlignLeft); //靠左显示
ui.edit->setAlignment(Qt::AlignRight); //靠右显示
ui.edit->setAlignment(Qt::AlignCenter); //居中展示

注意!!!!
在使用这个功能的时候,千万要记住QPlainEdit是不支持的哦~

1.2 能否编辑

这个功能主要是否可读

举例:

ui.edit->setReadOnly(true); //只读
ui.edit->setReadOnlu(false); //可编辑

注意!!!!

当文本较多时,采用只读方式滚动条是无法操作的哦~

QTextBrowser本身就是只读功能,是不需要这个功能的~

1.3 不选中文本

设置了该功能之后不会让edit控件设置成选中状态

ui.edit->setTextInteractionFlags(Qt::NoTextInteraction);

1.4:注意

无论是哪个编辑控件,获取编辑框的行数都是无效的,这个功能我已经试过了!

2:QLineEdit

QLineEdit是一个单行文本编辑控件

2.1 风格

 2.2 显示模式

QLineEdit有四种文本显示方式:

Normal、Password、PasswordEchoOnEdit、NoEcho

需要说明的是:PasswordEchoOnEdit

当焦点在控件上时,显示输入的文字,当控件失去焦点时,文字变成了与Password显示效果一致。

ui.edit->setEchoMode(QLineEdit::Normal);

2.3 提示文字

这个功能是用于展示edit上展示的提示文本内容

ui.edit->setPlaceholderText(QStringLiteral(“测试例子!”));

2.4 字符串掩码

使用inputMast()方法可以是Edit控件只允许输入自定义的格式字符串

常用的四种设置方式:

年份设置:

ui.editLine->setInputMask(“0000-00-00”);

 掩码模式

ui.editLine->setInputMask(“000.000.000.000;_”);

 时间模式

ui.editLine->setInputMask(“HH:HH:HH:HH:HH:HH;_”);

 模式4

ui.editLine->setInputMask(“>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#”);

 2.5 添加图标

一般来说,图标我们都只会添加到QPushButton这种控件上,其实,在编辑框控件中也是同样适用的。

假设:图标在左侧展示

QAction *searchAction = new QAction(ui.editLine);
searchAction->setIcon(QIcon(":/QtControl/image/2wm_p.png"));
ui.editLine->addAction(searchAction, QLineEdit::LeadingPosition);

左侧:LeadingPosition

右侧:TrailingPosition

展示效果

 2.6 添加按钮

QPushButton *btn = new QPushButton();
QHBoxLayout *layout = new QHBoxLayout();
btn->setCursor(Qt::ArrowCursor);
layout->addStretch();
layout->addWidget(btn);
btn->setContentsMargins(0,0,0,0);
ui.editLine->setlayout(layout);

展示效果

 如果要是想要特定风格的按钮,只需要自定义设置就行,这里只是实现了简单的功能,提供思路哦~

2.7 占位符文本颜色设置

设置方式:

 

在这里需要注意的是:

使用上述方法可以修改占位符的颜色,占位符设置成黄色,文本的颜色也会更换成黄色,不再是#333333。

在QLineEdit的源代码中占位符设置了alpha属性,所以,始终会看到占位符显示的颜色会更暗一些。

3:QTextEdit

QTextEdit用于多行文本展示,也可以显示HTML格式文本

3.1 风格

 与QLineEdit不同的是,QTextiEdit设置只读模式下文本背景颜色不生效!

3.2 提示文本

与QLineEdit不同,QTextEdit中没有可直接调用的接口设置。需要通过信号textChanged来实时监控输入,从而控制输入的

信号:

//<textEdit>change消息
connect(ui.editText, &QTextEdit::textChanged, this, &QLearnEdit::OnTextEditTextChange);

实际用法:

QString strContent = ui.editText->toPlainText();
int nTextLength = strContent.count();
if (nTextLength > TextEdit_MAX_SIZE)
{
	int nPostion = ui.editText->textCursor().position();
	QTextCursor textCursor = ui.editText->textCursor();
	strContent.remove(nPostion - (nTextLength - TextEdit_MAX_SIZE), nTextLength - TextEdit_MAX_SIZE);
	ui.editText->setText(strContent);
	textCursor.setPosition(nPostion - (nTextLength-TextEdit_MAX_SIZE));
	ui.editText->setTextCursor(textCursor);
}

其中,TextEdit_MAX_SIZE 是限制的输入大小

3.3 多行颜色值

代码实现:

 展示效果

 3.4 添加图片

在这里添加图片的方式有三种

第一种:通过URL直接添加

ui.editText->append("<img src= ':/QtControl/image/2wm_p.png'>");

第二种:使用QTextImageFormat添加

QTextImageFormat imageFormat;
imageFormat.setName(":/QtControl/image/2wm_p.png");
ui.editText->textCursor().insertImage(imageFormat);

第三种:使用QTextDocumentFragment添加

QTextDocumentFragment fragment;
fragment = QTextDocumentFragment::fromHtml("<img src= ':/QtControl/image/2wm_p.png'>");
ui.editText->textCursor().insertFragment(fragment);
ui.editText->setVisible(true);

4:QPlainTextEdit

纯文本编辑框

4.1 风格

 5:QTextBrowser

该控件无法编辑只用于显示

1:没有是否编辑功能,因为本身就是只读属性

2:无法设置文本对齐方式,只能靠左显示

5.1 风格

 5.2 文本自适应

 5.3 最大显示行数

 5.4 滚动条始终在低端显示

ui.editTextBrowser->moveCursor(QTextCursor::End); //将接受文本框的滚动条滑到最下层

5.5 超链接

情况1:访问本地文件

//将访问链接以html格式插入,如下实现 打开F盘
ui.editTextBrowser->append(QStringLiteral("<a href=\"file:///F:/ShiPin/001.mp4\">显示文本</a>"));

情况2:访问网页

ui.editTextBrowser->append(QStringLiteral("<a href=\"https://www.baidu.com/index.php?tn=monline_3_dg\">百度</a>"));

注意:在连接地址的开头需要加上 file:///协议,作用是访问本机的文件路径

用到的消息

connect(ui.editTextBrowser, &QTextBrowser::anchorClicked, this, &QLearnEdit::OnTextBrowerLocalFiles);

该函数的实际应用

void QLearnEdit::OnTextBrowerLocalFiles(const QUrl & strUrl)
{
	//TODO:访问本地路径
	QDesktopServices::openUrl(strUrl);
}

点击QTextBrower控件上的“显示文本”,直接访问到001.mp4视频。

此时,有一个问题出现,当关闭播放视频后,页面会有假死的状态,QTextBrower控件中出现一些乱码。

解决这种问题的方法是:在访问本地路径后,直接清除本地信息。

void QLearnEdit::OnTextBrowerLocalFiles(const QUrl & strUrl)
{
	//TODO:访问本地路径
	QDesktopServices::openUrl(strUrl);
    ui.editTextBrowser->clear();
}

总结

到这里,QT中用于编辑文本的控件介绍就已经结束了,如果还需要其它的功能,我会继续跟进哟~

我是糯诺诺米团,一名C++开发程序媛~

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 使用QT框架需要安装QT插件和相关工具,可以按照以下步骤进行操作: 1. 下载并安装QT框架,可以到QT官网下载安装程序,选择安装包和自己的操作系统对应的版本。 2. 安装Visual Studio QT插件,可以在Visual Studio打开“扩展和更新”窗口,搜索并安装QT插件。 3. 创建QT项目,可以在Visual Studio选择“新建项目”,选择“QT”类别,然后选择适当的QT项目模板。 4. 配置QT项目,可以在项目属性设置相关的QT选项,例如QT版本、模块、库等。 5. 编写和调试QT代码,可以使用Visual Studio的调试器和QT的API进行开发和测试。 在使用QT框架进行开发时,需要注意以下几点: 1. QT框架提供了丰富的GUI组件和功能库,可以方便地进行图形界面设计和开发。 2. QT框架支持多平台开发,可以在Windows、Linux、Mac等操作系统上进行开发和测试。 3. QT框架需要一定的学习和掌握成本,需要掌握QT的API和相关的开发工具和技术。 4. QT框架的开发效率和质量较高,可以提高开发效率和代码质量。 ### 回答2: 要在Visual Studio使用QT框架,您可以按照以下步骤进行操作: 1. 下载和安装QT:首先,您需要从QT官方网站(https://www.qt.io/)下载并安装QT框架。确保选择与您当前使用的Visual Studio版本兼容的QT版本。 2. 安装QT Visual Studio Tools:QT提供了一个名为QT Visual Studio Tools的插件,可以使得在Visual Studio使用QT更加方便。安装完QT框架后,您可以从QT安装目录找到这个插件并将其安装到Visual Studio。 3. 创建一个新的QT项目:在Visual Studio打开一个新的解决方案,选择“新建项目”并在模板找到“QT”选项。选择合适的QT模板并点击“确定”以创建项目。 4. 设置QT Kit:在项目属性,选择“QT”,然后点击“添加”以添加QT Kit。从已安装的QT版本选择合适的Kit并点击“确定”。 5. 编写和构建QT项目:编写您的QT代码,并使用Visual Studio的调试和构建工具来构建和运行项目。您可以像在任何其他Visual Studio项目一样使用调试器来调试您的QT应用程序。 6. 配置其他设置:根据需要,您可以配置其他设置,如项目的构建选项、部署选项等。您也可以根据需要添加其他依赖项和插件。 总结而言,使用Visual Studio开发QT项目需要先安装QT框架和QT Visual Studio Tools插件,然后创建一个新的QT项目并配置相关设置。最后,在Visual Studio编写和构建您的QT代码,并使用调试器来调试您的应用程序。 ### 回答3: 使用Visual Studio开发Qt应用程序需要进行以下步骤: 1. 首先,确保已在系统正确安装了Qt框架。可以从Qt官方网站下载Qt安装程序并完成安装。 2. 打开Visual Studio,并创建一个新的Qt项目。选择“文件”菜单,然后选择“新建”>“项目”,在模板选择“Visual C++”>“Qt”>“Qt应用程序”。 3. 在弹出的向导,输入项目的名称和位置,然后点击“确定”按钮。 4. 下一步是选择Qt版本。如果Qt在默认路径安装,Visual Studio应该会自动检测到,否则可以手动浏览并选择正确的Qt版本。 5. 然后,可以选择要使用Qt模块。根据应用程序的需求,在这里选择所需的模块,然后点击“下一步”。 6. 在项目设置,指定应用程序的名称、版本和其他属性。可以选择生成配置(Debug或Release)以及解决方案平台(x86或x64)。 7. 点击“完成”按钮后,Visual Studio将自动生成Qt项目的初始文件结构。 8. 接下来,可以在Solution Explorer看到各个源文件和资源文件。可以根据需要添加/删除文件、编辑文件并编写Qt代码。 9. 运行项目之前,需要确保Visual Studio已正确配置Qt的环境变量。如果没有,请手动添加Qt的安装路径到“PATH”环境变量。 10. 最后,点击Visual Studio的“开始调试”按钮或按下F5键来编译和运行Qt应用程序。 总之,使用Visual Studio开发Qt应用程序需要在创建项目时选择Qt模板,配置Qt版本和模块,然后编写Qt代码并运行项目。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

糯诺诺米团

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

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

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

打赏作者

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

抵扣说明:

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

余额充值