假设我的模型具有Qt :: DisplayRole的以下字符串的项目
<span>blah-blah <b>some text</b> other blah</span>
Run Code Online (Sandbox Code Playgroud)
我想要QTreeView(实际上,任何项目视图)将其渲染为富文本.相反,项目视图默认情况下将其呈现为纯文本.如何实现所需的渲染?
实际上,这是一个搜索结果模型.用户输入文本,根据该文本搜索某些文档,并向用户显示搜索结果,其中搜索的单词应比周围文本更大胆.
我有一个用于创建备忘录的表单,为此我使用富文本编辑器来提供一些样式,这会创建html标签以便应用样式.当我发布该文本时,mvc会抛出错误以防止可能存在危险的脚本,因此我必须特别允许它.
我找到了两种方法,一种是用装饰控制器方法,另一种是用[ValidateInput(false)]它来装饰ViewModel属性[AllowHtml].对我来说,[AllowHtml]看起来更好,但我只发现这种方法使用了1次,[ValidateInput(false)]似乎是首选方式.
我应该使用哪种方法,两者之间有什么区别?
是否有免费的第三方或.NET类将HTML转换为RTF(用于启用富文本格式的Windows窗体控件)?
"免费"要求来自这样一个事实,即我只是在处理原型,只需加载BrowserControl,只需要呈现HTML(即使它很慢),并且Developer Express将发布自己的这样的控制很快.
我不想学习手工编写RTF,而且我已经知道HTML,所以我认为这是快速获得一些可证明代码的最快方法.
我想用Qt在我的应用程序中写一个单独的粗体红线.
据我所知,我会创建一个QLabel,将其textFormat设置为富文本并为其显示一个富文本字符串:
QLabel *warning = new QLabel;
warning->setTextFormat(Qt::RichText);
warning->setText("{\\rtf1\\ansi\\ansicpg1252 {\\fonttbl\\f0\\fswiss\\fcharset0 Helvetica;} {\\colortbl;\\red255\\green0\\blue0;} \\f0 \\cf0 this is bold red text}");
Run Code Online (Sandbox Code Playgroud)
我在富文本编辑器中测试了这个富文本字符串,它显示正常.
但Qt显示整个字符串,包括所有大括号,关键字和反斜杠,而不是"这是大胆的红色文本".我究竟做错了什么?
谢谢您的帮助.
有几个(非常好的)富文本Web编辑器用Javascript编写(例如FCKeditor,YUI Texteditor和许多其他人).
但是我找不到任何关于如何构建这样一个组件的教程.可以解释高级别考虑因素(架构)和/或低级"关键"点中的更多细节(即为什么大多数编辑器都使用iFrame,如何处理键盘输入,如Ctrl-B,Ctrl -C选择文本时以及不选择文本时等)
我的主要动机是好奇心; 如果我今天必须开发这样一个编辑器,我不知道从哪里开始.
有没有人知道任何涵盖上述问题的教程(理想情况下,解释如何从头开始构建一个wysiwyg编辑器)?
我一直在网上搜索试图找到Unix Bash脚本的例子,它可以处理基本的文本样式(粗体/下划线/斜体),但找不到任何东西?这样的事情可以吗?
例如:
我想通过Automator将其设置为服务; 所以使用/bin/bash和操作"选定的文本"(当然,在富文本兼容的文件中).
好吧我无法相信这在任何地方都找不到,所以我在问这个问题.
有没有办法在Sitecore中设置默认的Html编辑器配置文件,所以我没有覆盖每个单独的富文本字段上的源字段?
例如,我想将此作为Html编辑器的默认选项:
/sitecore/system/Settings/Html Editor Profiles/Rich Text Medium
Run Code Online (Sandbox Code Playgroud) 如果我将Chrome for Android中的文本复制/粘贴到我的EditText视图中,它会变得混乱,显然是由于富文本格式化.
字体大小完全混乱,而不是那么大http://erikmi.tk/WaeG/image.png
有没有办法告诉EditText视图忽略富文本格式?或者我可以捕获粘贴事件并在设置之前将其删除吗?我该怎么办?
更新:
所以我意识到,它editText.getText()给了我一个SpannableString包含一些格式.我可以通过召唤来摆脱.clearSpans();它.但我不能做那样的事情,editText.addTextChangedListener(new TextWatcher() { … }因为它变得非常缓慢,只有当我离开editText视图时UI才会更新.
我正在尝试"重置"我的RichTextBox格式(WinForms,而不是WPF).我以前用过
richTextBox.Text = richTextBox.Text;
Run Code Online (Sandbox Code Playgroud)
然而,这似乎突然让我失望了.现在无论我设置什么richTextBox.Text,它都保留了一些rtf格式.
我试过了
richTextBox.Rtf = richTextBox.Text;
Run Code Online (Sandbox Code Playgroud)
但是,抱怨格式不正确.必须有一个更好的方法来做到这一点.(当然,选择整个事物,然后重置背面颜色,前颜色和字体工作,但这会导致闪烁,因为选择整个事物然后取消选择,加上它更慢并且需要更多代码.)任何人都有任何的想法?
编辑:我已经得到了这个工作:
string tempTxt = richTextBox.Text;
richTextBox.Clear();
richTextBox.Text = tempTxt;
Run Code Online (Sandbox Code Playgroud)
但必须有更好的方法,对吗?
编辑2:要清楚,我希望在保留文本的同时删除所有格式.看起来第一次编辑中的代码将会发布,除非其他人有更高效/更好的编码方式.
编辑3:
richTextBox.Text = richTextBox.Text.ToString();
Run Code Online (Sandbox Code Playgroud)
似乎没有用,因为它仍然无法清除所有格式.我不喜欢上面第一个编辑中的方法的原因是,当文本框清除它然后重新输入文本时,它会使文本框"闪烁".看起来应该只是一个richTextBox.ResetFormatting()方法,或者某种方式来访问相同的功能,因为Clear()方法清楚(没有双关语)除了简单地清除所有文本之外还会进行某种格式化重置.
总结一下:
是否有一种方法(如果是这样,是什么)重置RichTextBox中文本的格式而不清除上面示例中的文本(因为这会产生不希望的闪烁)?
我无法弄清楚如何让图像像http://quilljs.com/上的示例一样工作.
我尝试添加<span title="Image" class="ql-format-button ql-image"></span>到工具栏,添加按钮,但点击按钮什么都不做,我在文档中找不到任何内容.有什么建议吗?