form.on('checkbox(filter)', callback);这个什么实用

### form.on('checkbox(filter)', callback) 的用途和用法 `form.on('checkbox(filter)', callback)` 是 `layui` 框架中用于监听复选框(checkbox)事件的 API。通过此方法,可以捕获用户对复选框的操作,并在回调函数中执行自定义逻辑。 #### 1. 基本语法 ```javascript form.on('checkbox(filter)', callback); ``` - **event**: 表示事件类型,这里是 `checkbox`。 - **filter**: 用于筛选特定的复选框,通常对应复选框的 `lay-filter` 属性值。 - **callback**: 当事件触发时执行的回调函数,接收一个参数 `data`,包含以下属性: - `data.elem`: 原始 DOM 对象。 - `data.elem.checked`: 是否被选中,返回布尔值 `true` 或 `false`[^4]。 - `data.value`: 复选框的值,可以通过 `data.elem.value` 获取相同结果。 - `data.othis`: 美化后的 DOM 对象。 #### 2. 实际应用场景 以下是 `form.on('checkbox(filter)', callback)` 的实际应用场景及代码示例: ##### 场景 1: 监听单个复选框的状态变化 当需要监听某个特定复选框的状态变化时,可以通过为其设置唯一的 `lay-filter` 属性值来实现。 ```html <input type="checkbox" name="agree" lay-filter="agreeCheckbox" title="我同意"> ``` ```javascript layui.use(['form'], function() { var form = layui.form; form.on('checkbox(agreeCheckbox)', function(data) { if (data.elem.checked) { console.log("用户同意了条款"); } else { console.log("用户取消了同意"); } }); }); ``` ##### 场景 2: 批量处理多个复选框 当页面中有多个复选框需要统一处理时,可以使用相同的 `lay-filter` 值。 ```html <input type="checkbox" name="item" lay-filter="itemCheckbox" title="选项1"> <input type="checkbox" name="item" lay-filter="itemCheckbox" title="选项2"> <input type="checkbox" name="item" lay-filter="itemCheckbox" title="选项3"> ``` ```javascript layui.use(['form'], function() { var form = layui.form; form.on('checkbox(itemCheckbox)', function(data) { console.log("选项状态改变:" + data.elem.title + " -> " + data.elem.checked); }); }); ``` ##### 场景 3: 动态生成复选框并绑定事件 在动态生成复选框的情况下,需要调用 `form.render()` 方法重新渲染表单元素,以确保事件监听器生效。 ```javascript layui.use(['form'], function() { var form = layui.form; // 动态添加复选框 var checkboxHtml = '<input type="checkbox" name="dynamic" lay-filter="dynamicCheckbox" title="动态选项">'; document.getElementById('container').innerHTML += checkboxHtml; form.render(); // 重新渲染表单 form.on('checkbox(dynamicCheckbox)', function(data) { console.log("动态复选框状态:" + data.elem.checked); }); }); ``` #### 3. 注意事项 - 如果未为复选框设置 `lay-filter` 属性,则无法通过 `form.on()` 方法监听其事件[^2]。 - 在动态生成复选框后,必须调用 `form.render()` 方法,否则事件监听器可能无效[^3]。 - 回调函数中的 `data.elem.checked` 可用于判断复选框的当前状态,`true` 表示选中,`false` 表示未选中[^4]。 --- ###

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

Python内容推荐

EXT.form组件

EXT.form组件

2. `checkbox`:`Ext.form.Checkbox`是用于创建复选框的组件,用户可以选择或取消选择多个选项。 3. `combo`:`Ext.form.ComboBox`是下拉列表框组件,允许用户在预设的选项中进行选择,同时可以提供搜索功能以便...

layui动态禁用checkbox.rar

layui动态禁用checkbox.rar

table.on('checkbox(test)', function(obj){ var data = obj.data; // 当前行数据 if (data.disabled) { // 假设数据中包含一个disabled字段表示是否禁用 obj.setChecked(false); // 取消选中 } }); ``` 当涉及...

解决LayUI表单获取不到data的问题

解决LayUI表单获取不到data的问题

前几天用LayUI表单进行AJAX提交的... form.on('submit(form_emp2)', function(data){ var temp=$('#updateform').serialize(); // layer.msg(JSON.stringify($('#form1').serialize())); // alert(JSON.strin

解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题

解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题

// 这一步是关键,用于渲染所有form相关的元素 }); ``` `layui.use('form')`会加载并执行form模块,然后通过回调函数获取到form对象。调用`form.render()`是为了触发LayUI对页面上所有form元素的渲染,包括下拉框、...

jquery.onoff

jquery.onoff

jQuery.onoff是一个轻量级的插件,专门用于创建具有美观交互效果的开关按钮。它的主要优点是配置简单,只需几行代码就能快速实现功能。此外,该插件兼容多种浏览器,能够满足大部分项目的需求。在开发过程中,我们...

layui 解决form表单点击无反应的问题

layui 解决form表单点击无反应的问题

Layui的模块化开发使得开发者能够更加方便地使用它的各种功能,例如form模块就是其中的一个。 当表单点击无反应,常见于无刷新页面再次操作form时,这是因为页面无刷新操作后,之前的DOM元素可能失效或者需要重新...

laravel-admin:form表单树状复选框组件(CheckboxTree).rar

laravel-admin:form表单树状复选框组件(CheckboxTree).rar

为了在表单中使用这个组件,你需要在 Laravel-Admin 的 Form 中调用 `checkboxTree` 方法,传入需要展示的数据源和配置项。例如: ```php $form-&gt;checkboxTree('permissions', '权限分配')-&gt;options($...

Android-拥有三种状态纯Material风格的AndroidCheckbox控件

Android-拥有三种状态纯Material风格的AndroidCheckbox控件

此外,我们还需要确保这个自定义Checkbox能够与其他Material Design组件保持一致,这意味着它应该遵循Material Design的色彩系统、尺寸规范以及动画效果。例如,选中和未选中状态的切换可以使用Material Design的...

form中相同name的checkbox提交问题

form中相同name的checkbox提交问题

这篇博客将探讨这个问题,并提供解决方案。 **一、表单提交与checkbox** 在HTML表单中,`&lt;input type="checkbox"&gt;`用于创建复选框,用户可以多选。默认情况下,只有被选中的复选框才会在表单提交时包含在HTTP请求...

checkbox.bmp 复选框资源,临时使用

checkbox.bmp 复选框资源,临时使用

checkbox.bmp checkbox.bmp checkbox.bmp

设置checkbox为只读(readOnly)的两种方式

设置checkbox为只读(readOnly)的两种方式

方式一: checkbox没有readOnly属性,如果使用disabled=“disabled”属性的话,会让checkbox变成灰色的,用户很反感这种样式可以这样让它保持只读: 设置它的onclick=”return false” js里就是 checkbox.onclick=...

Ext.form.FieldSet的用法.pdf

Ext.form.FieldSet的用法.pdf

2. **checkboxName**:当 `checkboxToggle` 设置为 `true` 时,这个配置用于为 FieldSet 的复选框分配一个名称。默认值是 `[checkboxid]-checkbox`。 3. **labelWidth**:此属性用于设置 FieldSet 中标签的宽度,会...

基于STM32单片机的ThreadX GUIX教程_GUIX Studio Checkbox Event Callback软件源码.zip

基于STM32单片机的ThreadX GUIX教程_GUIX Studio Checkbox Event Callback软件源码.zip

本压缩包包含的文件“基于STM32单片机的ThreadX GUIX教程_GUIX Studio Checkbox Event Callback软件源码”,顾名思义,是关于如何在基于STM32单片机的平台上使用ThreadX作为操作系统内核,并利用GUIX Studio开发图形...

jsp中checkbox用法详解.docx

jsp中checkbox用法详解.docx

这段代码会根据数组`options`中的值动态生成多个Checkbox。 ##### 3.2 使用JSP标签库生成Checkbox 除了直接使用Java代码外,还可以使用JSP标签库来简化Checkbox的生成。比如,使用`logic:iterate`标签来循环遍历...

jquery.checkbox 单选框多选框美化插件.zip

jquery.checkbox 单选框多选框美化插件.zip

通常会有插件的主要脚本文件(如jquery.checkbox.js),以及可能的依赖库,如jQuery本身。通过阅读这些文件,开发者可以深入理解插件的工作原理,并进行自定义修改。 5. **style**:这个目录包含CSS文件,负责定义...

checkbox实现复选框

checkbox实现复选框

checkBox.addActionListener(e -&gt; System.out.println("Checkbox clicked")); ``` 3. **JavaFX**:在JavaFX中,`javafx.scene.control.CheckBox`类用于创建复选框。同样,我们可以添加`EventHandler`来响应点击事件...

jquery 对checkbox的操作

jquery 对checkbox的操作

$("#checkboxID").on("click", function() { if ($(this).is(":checked")) { // checkbox was checked } else { // checkbox was unchecked } }); ``` 2. 捕获change事件,当checkbox状态改变时执行: ```...

jquery 的checkbox样式

jquery 的checkbox样式

这包括在标签内添加对jQuery库的引用,如`&lt;script src="https://code.jquery.com/jquery-3.x.y.min.js"&gt;&lt;/script&gt;`,以及引入插件的JS和CSS文件,例如`&lt;link rel="stylesheet" href="jquery-checkbox.1.3.0.css"&gt;`和...

实现table表格checkbox复选框的全选 反选

实现table表格checkbox复选框的全选 反选

在上面的代码中,我们有一个全选复选框(`#selectAll`)和多个行内复选框(`.itemCheckbox`)。全选复选框用于控制所有行内复选框的状态。 接下来,我们使用JavaScript(通常配合jQuery库,但也可以使用原生JS)来...

checkbox组件.zip

checkbox组件.zip

总的来说,这个压缩包提供的资源涵盖了Vue.js与Element UI的Checkbox组件的使用,以及如何通过CSS实现特定布局,还有可能涉及到的数据管理和事件处理。这些都是前端开发中常见的技术点,对于构建用户友好的多选交互...

最新推荐最新推荐

recommend-type

吉普车3D模型 吉普车 吉普车

吉普车3D模型 吉普车 吉普车
recommend-type

PHP程序员如何克服swoole学习的难关

资源摘要信息:"本文是关于PHP程序员在学习和使用swoole扩展时遇到问题和挑战的经验分享。swoole是一个高性能的PHP异步编程框架,它在多线程环境下工作,提供了多线程、异步通信、网络编程等高级功能。本文通过实例讲解了在swoole环境下不能使用PHP全局变量的原因,异步编程和回调的概念,以及如何处理HTTP请求等核心概念。" 知识点详细说明: 1. swoole框架概述: - swoole是一个PHP语言编写的异步、并行和高性能的网络通信框架,它支持TCP/IP、HTTP、WebSocket等多种网络协议,以及多线程、协程等多种并发模式。 - 与传统PHP脚本运行在单一线程不同,swoole通过多线程来处理并发,以提升性能和响应速度。 2. 全局变量在swoole中使用的限制: - 由于swoole采用多线程模型,PHP的全局变量是进程级别的数据存储,不是线程安全的,因此不能在不同线程间共享。 - 在swoole的onRequest回调函数中不能直接使用全局变量。如文章中例子所示,尝试在onRequest中使用global定义的变量$i,结果导致每次请求的输出并不是预期中的递增数字。 - 解决方案是使用swoole_table提供的函数,swoole_table是swoole提供的线程安全的数据结构,可以用来在多线程间共享数据。 3. 异步和回调的理解与实践: - 对于习惯了同步编程的PHP开发者来说,异步和回调概念可能较难理解。异步意味着代码的执行不是顺序进行的,回调是异步操作完成后调用的一个函数,以处理结果。 - 在没有多线程编程经验的情况下,贸然使用swoole的异步特性可能会导致开发困难和bug,需要更多的时间来调试和修复问题。 4. 理解onReceive和数据接收: - 在swoole中,onReceive是WebSocket或者TCP服务器端接收到客户端数据后触发的回调函数。区别于HTTP的onRequest,onReceive能够一次性接收到客户端的多次请求数据。 - 这一点与HTTP请求不同,后者是基于请求-响应模型,每次客户端发送一个请求,服务端就会处理并返回一个响应。 5. 自制HTTP服务器: - 文中提到,可以通过编写自己的代码来实现HTTP服务器。这在swoole中是可行的,因为它提供了丰富的网络编程接口,可以让开发者自定义协议和行为。 - 构建HTTP服务器涉及的细节包括监听端口、解析HTTP请求、处理请求逻辑、发送HTTP响应等。 6. swoole官方文档: - 文中指出官方文档可能没有详细解释所有问题,这暗示了在学习和使用swoole时可能需要额外的研究和调试。 - 开发者在学习新技术时,除了阅读官方文档外,还需要参考社区讨论、博客文章、开源项目和示例代码,这有助于更好地理解和应用框架。 总结: swoole作为一个强大但复杂的PHP框架,给PHP程序员提供了更多面向服务端编程的可能。然而,学习和使用swoole并不是没有挑战的,程序员需要克服语言和框架之间的差异,理解和掌握多线程和异步编程的概念,以便有效地利用swoole提供的高级特性。通过实践和不断学习,PHP开发者可以更好地利用swoole扩展,提升应用性能和响应速度,实现更高效的网络通信和并发处理。
recommend-type

为什么patch navigator.webdriver = false仍被秒杀?——Akamai 3.0“环境一致性断言”底层逻辑首度拆解:7类跨API隐式关联校验 + 4种时间熵联动触发条件

以下是对您提供的技术博文《Akamai 3.0反自动化体系的范式跃迁》进行**深度润色与结构重构后的终稿**。全文严格遵循您提出的全部优化要求: ✅ **完全去除所有显性标题层级**(如“引言”“2.1”“3.2.1”等),代之以自然段落过渡与逻辑流引导; ✅ **彻底打乱“总-分-总”模板结构**,以真实攻防现场切入,穿插理论推演、逆向证据、数学建模与工程反思; ✅ **删除全部参考资料、引用链接、文献标注**,所有规范依据均内化为技术叙述的一部分; ✅ **开篇摒弃任何“本文将阐述……”式套话**,首句即锚定一个正在发生的、让一线工程师头皮发麻的真实场景; ✅ **语言高
recommend-type

用循环链表模拟约瑟夫问题时,为什么需要哨兵节点和闭环结构?

### 使用循环链表解决约瑟夫问题 #### 循环链表简介 循环链表是一种特殊的链表结构,在单向链表的基础上,其最后一个节点的指针不再为 `nullptr`,而是指向头节点,从而形成一个闭环[^2]。 #### 约瑟夫问题描述 约瑟夫问题是经典的数学问题之一,涉及一组编号的人围成一圈并按照一定规则淘汰直到剩下最后一个人。该问题可以通过多种方式求解,而使用循环链表则提供了一种基于数据结构的方法[^1]。 #### 实现细节 为了实现约瑟夫问题中的逻辑,需构建一个带有虚拟头节点(哨兵节点)的循环链表。此头节点并不存储实际的数据元素,仅用于简化操作流程。以下是具体实现的关键点: - **定义
recommend-type

移动社交APP软件公司2023组织架构及部门职能

资源摘要信息:"移动社交APP软件公司组织架构及部门分工职能" 一、组织架构与部门职能概述 移动社交APP软件公司组织架构由几个关键部门构成,每个部门都有其独特的职能和分工,以下是各部门的详细描述: 1. 总经理办公室 总经理办公室是公司的决策中心,由总经理及其助手组成。其主要职能包括制定公司的战略、计划和目标,监督和协调其他部门的工作,并为公司提供经营和管理方面的独立意见和建议。此外,总经理办公室还负责与投资人、合作伙伴、客户和行业相关方沟通和联系,以确保公司的长期成功。 2. 技术研发部 技术研发部是公司的核心部门,负责研发和设计产品的核心技术,确保软件的实现和发布。这个部门的工作范围还包括监督和管理产品质量、测试、部署和发布。技术研发部的职责还包括维护产品和提供技术支持。 3. 运营管理部 运营管理部负责制定公司的市场策略和营销计划,通过市场研究和分析,促进消费者对公司产品的需求。该部门还管理公司的客户服务和沟通,与用户保持联系,并致力于提高用户体验。 4. 财务管理部 财务管理部是公司的财务核心部门,由财务总监、会计经理和审计师组成。该部门负责公司的财务规划、预算和资本管理,并管理公司的所有会计和财务活动。财务管理部还处理公司的财务报告、税务申报和业务计划。 二、详细职能分工 1. 总经理办公室的职能和分工 - 制定公司战略:总经理办公室需要对公司的长期和短期目标进行规划,确保公司的战略方向与市场和业务目标一致。 - 监督和协调:总经理办公室需要监督各部门的日常工作,确保各部门间协调合作,公司运作高效。 - 独立意见和建议:办公室为公司提供战略性和执行性的建议,帮助公司面对各种挑战和机遇。 - 沟通与联系:办公室代表公司与外部利益相关者进行沟通,包括但不限于投资者、合作伙伴、客户和行业组织。 2. 技术研发部的职能和分工 - 核心技术开发:技术研发部需要对移动社交APP的关键技术进行研发,保证产品的技术领先地位。 - 产品实现和发布:该部门要确保产品从设计到发布的每个环节都符合公司的技术标准和市场需求。 - 质量管理:技术研发部需要负责产品的质量控制,确保产品在上市前经过严格的测试。 - 技术支持和维护:对于已上线的产品,技术研发部需要提供持续的技术支持和产品维护服务。 3. 运营管理部的职能和分工 - 市场策略和营销计划:运营管理部需根据市场研究制定有效的市场策略,增强产品在市场上的竞争力。 - 促进产品需求:通过营销活动和用户研究,运营管理部要推动消费者对产品的认知和需求。 - 客户服务和沟通:该部门要确保客户服务的质量,及时响应用户反馈,处理用户问题,以提高用户满意度和忠诚度。 - 提高用户体验:通过优化产品和服务,运营管理部要致力于提升用户的整体使用体验。 4. 财务管理部的职能和分工 - 财务规划和预算:财务管理部需制定公司的财务规划和年度预算,确保财务资源合理分配和有效利用。 - 资本管理:该部门负责管理公司的资本结构和投资决策,降低财务风险,提高资金使用效率。 - 会计和财务活动管理:财务管理部要处理所有会计事务,确保财务记录的准确性和合规性。 - 财务报告和税务申报:该部门要定期编制财务报告和处理税务申报工作,为公司提供决策依据,并满足税务法规的要求。 通过上述对移动社交APP软件公司组织架构和部门职能的详尽描述,可以看出每个部门在公司运营中的重要性以及它们之间的相互依赖关系。合理的组织架构和明确的部门职能分工,是确保公司高效运作并实现业务目标的关键。
recommend-type

【Akamai 3.0反爬攻防终极手册(2024实战验证版)】:17个高危环境熵源精准修复 + 9大TLS_WebGL_Canvas伪造红线 + DHL全链路绕过成功率从12%→98.6%的5步闭环方案

以下是对您提供的技术博文《Akamai 3.0反爬机制演进与熵防御范式重构》的**深度润色与结构重构稿**。全文严格遵循您提出的全部优化要求: ✅ **完全去除所有显性标题层级**(如“引言”“总结”“2.1 熵源识别理论”等),代之以自然段落过渡与逻辑流引导; ✅ **打破“总-分-总”机械结构**,从真实攻防现场切入,以问题驱动叙事,穿插工程洞察、失败复盘与设计权衡; ✅ **彻底删除参考资料、参考文献、章节编号、标题行(含第一行#标题)**; ✅ **开篇摒弃模板化表达**,以一句具象化挑战起笔,迅速建立技术语境; ✅ **语言高度人性化**:混合长短句、插入工程师口语
recommend-type

TextInputLayout 怎么加眼睛图标来切换密码显示?

### 如何使用 `TextInputLayout` 实现密码输入功能 #### 创建 XML 布局文件 为了实现带有密码显示切换按钮的输入框,可以在XML布局文件中定义如下结构: ```xml <com.google.android.material.textfield.TextInputLayout android:id="@+id/password_input_layout" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" android:layout_width="ma
recommend-type

移动互联网应用的发展趋势及其对社会的深远影响

资源摘要信息: 移动互联网应用自智能手机和平板电脑普及以来,已经成为人们日常生活不可或缺的一部分。随着移动设备和无线网络技术的进步,移动应用软件的应用率不断增长,渗透至在线购物、社交、游戏、音乐、视频、新闻等多个领域。此外,移动互联网应用也影响了人们的消费方式,使得获取信息和进行消费变得更加便捷。同时,移动应用软件的发展促进了智能手机市场、新兴产业和商业模式如共享经济、O2O的快速崛起。然而,移动应用市场也面临恶意软件、用户隐私泄露和广告骚扰等问题。未来,移动互联网应用的发展趋势将更多地关注个性化需求和用户体验,利用人工智能、大数据、物联网等技术进一步提升应用质量和性能。移动应用开发成为热门职业,需更多专业人才加入以满足市场需求。 知识点详细说明: 1. 移动互联网应用的普及与增长:智能手机和平板电脑的普及,以及无线网络技术的提升,是移动互联网应用广泛使用的直接原因。移动设备的便携性和无线网络的覆盖,使得用户可以在任何时间、任何地点访问各种服务和内容。 2. 移动互联网应用的多元化领域:移动互联网应用已经涵盖购物、社交、游戏、音乐、视频、新闻等多个领域,用户可以通过移动设备完成购物、交流、娱乐等活动,极大地丰富了人们的日常生活中。 3. 移动互联网应用对传统行业的影响:移动互联网应用的出现不仅改变了人们的沟通和信息获取方式,还改变了消费习惯。用户可以随时随地通过应用软件完成购买和支付,带动了在线支付业务和电子商务的发展。 4. 移动应用市场的新商业模式:移动互联网应用的普及推动了共享经济、O2O等新兴商业模式的兴起。这些模式利用移动互联网的特点,为用户提供更加便捷的服务和消费体验。 5. 移动互联网应用带来的问题与挑战:随着移动应用市场的扩大,用户隐私泄露、恶意软件、广告骚扰等问题日益凸显,这要求企业和相关部门采取更有效的措施来保护用户信息安全和提升用户体验。 6. 移动互联网应用的个性化和精准服务:未来的发展趋势将更重视用户的个性化需求和体验,应用将基于用户的行为习惯、地理位置等数据提供定制化的服务和内容。 7. 技术进步对移动互联网应用的影响:人工智能、大数据、物联网等技术的应用将使移动互联网应用的功能和性能得到进一步提升,为用户提供更加智能和高效的服务。 8. 移动应用开发职业与市场需求:移动互联网应用的发展催生了对移动应用开发、运维、测试、设计、安全等专业人才的需求。移动应用开发成为了一个热门的职业领域,吸引了众多专业人才的加入。 总结而言,移动互联网应用的发展和影响是深远和广泛的,它不仅改变了人们的生活习惯,也促进了相关技术和商业模式的革新。面对未来挑战,应重视技术进步和人才培养,以构建更加安全、便捷和个性化的移动应用市场。
recommend-type

热电偶冷端补偿(CJC)失效黑箱揭秘:93%工程师踩中的3个底层陷阱——从NI MAX固件版本漏洞到RTD引线电阻耦合干扰(附LabVIEW FPGA级补偿验证代码)

# 热电偶冷端补偿:一场被忽视的物理战场 在某半导体晶圆厂的洁净车间里,一台价值数百万美元的刻蚀机突然报告“腔体温度异常”,PLC触发紧急停机。工程师调出历史曲线,发现过去72小时热电偶读数整体下移了1.8℃——但所有传感器自检、校准日志、供电电压均显示“正常”。最终排查耗时3天,根源竟是:MAX界面中那个不起眼的“Enable Cold-Junction Compensation”复选框,在一次远程固件升级后被悄然取消勾选;而FPGA寄存器中的`cjctemp_source`仍锁死在旧值`0x00`,系统持续用23.5℃固定偏置进行补偿。真实冷端温度早已升至39.2℃,误差达15.7℃——
recommend-type

Qt程序里中文提示显示乱码,该怎么彻底解决?

### 解决 Qt 中文显示乱码问题 为了确保在 Qt 应用程序中正确显示和使用中文提示,可以采取多种措施来处理可能出现的乱码问题。 #### 检查源文件编码格式 确认源文件采用 UTF-8 编码非常重要。如果当前使用的不是这种标准字符集,则应该考虑将其转换为 UTF-8 并重新编译项目以测试汉字是否能正常呈现[^1]。 #### 设置全局文本编码器 通过设置应用程序启动时所使用的默认文本编码方式也可以有效防止乱码现象的发生。具体做法是在 `main()` 函数或者应用初始化阶段加入如下代码: ```cpp #include <QApplication> #include <QText