Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt CKEditor:从javascript执行工具栏按钮_Qt_Ckeditor - Fatal编程技术网

Qt CKEditor:从javascript执行工具栏按钮

Qt CKEditor:从javascript执行工具栏按钮,qt,ckeditor,Qt,Ckeditor,这是我的问题:我正在QT程序中集成CKEditor。我想在我的程序中创建一些函数来执行CKEditor工具栏中的一些命令。例如,我需要一个函数“bold()”将该样式应用于所选文本。这就是我迄今为止为实现这一目标所做的工作: void On_ActionBold_Triggered() { this->page()->mainFrame()->evaluateJavaScript("var editor = CKEDITOR.currentInstanc

这是我的问题:我正在QT程序中集成CKEditor。我想在我的程序中创建一些函数来执行CKEditor工具栏中的一些命令。例如,我需要一个函数“bold()”将该样式应用于所选文本。这就是我迄今为止为实现这一目标所做的工作:

    void On_ActionBold_Triggered()
{
        this->page()->mainFrame()->evaluateJavaScript("var editor = CKEDITOR.currentInstance;"
                                                      "var style = new CKEDITOR.style( { element: 'strong', overrides: 'b' } );"
                                                      "if ( style.checkActive(editor.elementPath(), editor ) )"
                                                        "editor.removeStyle( style );"
                                                      "else if ( !style.checkActive(editor.elementPath(), editor ) )"
                                                        "editor.applyStyle( style );");
}
这将使用CKEditor中的函数“applyStyle()。但是我必须实现一些条件来检查所选文本是否已经具有样式,以便根据情况应用或删除样式。使用“粗体”按钮,这非常简单。但是对于其他一些按钮,它将不会如此简单,我试图避免重新实现所有按钮功能的麻烦。我想知道是否有更直接的方法来构造这个函数。大概是这样的:

     void On_ActionBold_Triggered()
{
        this->page()->mainFrame()->evaluateJavaScript("var editor = CKEDITOR.currentInstance;"
                                                        "editor.executeWhateverCommandIsAssociattedWithTheBoldButtonInToolbar();");
}
有没有办法做到这一点?我想另一种选择是查看CKEditor的源代码,简单地复制并粘贴不同按钮的函数实现。但是我仍然没有找到源代码中不同按钮的功能实现。。。如有任何建议,将不胜感激

更新

我最终找到了问题的解决办法。我现在是这样做的:

void CKEditor_Bold(){this->page()->mainFrame()->evaluateJavaScript("CKEDITOR.currentInstance.execCommand('bold');");}