我需要Qt的富文本编辑器。我一直在考虑使用QTextEdit,因为它是一个富文本编辑,但我需要两个在该小部件中不存在的东西:
用户应该能够更改文本颜色,文本字体,下划线,粗体,斜体文本,所以我需要像文本编辑器工具栏这样的控件(我需要自己编写代码)吗? ?)
用户应该可以通过搜索图像来拖动或添加。现在,如果我尝试将图像复制并粘贴到我的QTextEdit上,我只看到这个
我应该如何满足每一项需求?
答案 0 :(得分:3)
1)看看这个官方示例,它应该为您提供一个能够使用工具栏更改文本的富文本编辑器:
http://doc.qt.io/qt-5/qtwidgets-richtext-textedit-textedit-cpp.html
要拖放图像,我担心你必须继承文本编辑(QTextEdit或QTextBrowser)并实现这两种方法:
Sub test_CairoCoder()
Dim wS As Worksheet, _
LastRow As Long, _
ColorChg As Boolean, _
OrderNb As String
Set wS = ActiveSheet
ColorChg = False
With wS
LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
OrderNb = wS.Cells(2, 1)
For i = 2 To LastRow
If .Cells(i, 1) <> .Cells(i + 1, 1) And .Cells(i, 1) <> .Cells(i - 1, 1) Then
ColorChg = Not ColorChg
If ColorChg Then
.Range(.Cells(i, "A"), .Cells(i + 1, "A")).Interior.Color = vbRed
Else
.Range(.Cells(i, "A"), .Cells(i + 1, "A")).Interior.Color = vbYellow
End If
Else
If .Cells(i, 1) <> .Cells(i + 1, 1) Then
Else
If OrderNb <> .Cells(i, 1) Then
OrderNb = .Cells(i, 1)
ColorChg = Not ColorChg
Else
End If
If ColorChg Then
.Range(.Cells(i, "A"), .Cells(i + 1, "A")).Interior.Color = vbRed
Else
.Range(.Cells(i, "A"), .Cells(i + 1, "A")).Interior.Color = vbYellow
End If
End If
End If
Next i
End With
MsgBox "All done!", vbInformation + vbOKOnly
End Sub
2)这是一个GitHub项目,可以实现您所需要的一切,甚至更多:
https://github.com/Anchakor/MRichTextEditor
最后,如果您想了解富文本编辑器的工作原理,请参阅以下文档:
答案 1 :(得分:1)
您可以使用从Deko CRM中提取的此编辑器: http://www.hobrasoft.cz/en/blog/bravenec/qt-rich-text-editor
答案 2 :(得分:0)
另一个想法可能是使用WebKit制作这个小部件。请参阅:http://blog.qt.digia.com/blog/2009/03/12/wysiwyg-html-editor/
请注意,此处链接的git存储库已移至此网址:https://qt.gitorious.org/qt-labs/graphics-dojo/source/8000ca3b229344ed2ba2ae81ed5ebaee86e9d63a:
答案 3 :(得分:-1)
wwWidgets有RichTextEditor - &gt; http://www.wysota.eu.org/wwwidgets/doc/html/qwwrichtextedit.html