如何通过ctrl+将html从剪贴板插入QTextEdit;v

如何通过ctrl+将html从剪贴板插入QTextEdit;v,html,c++,qt,clipboard,Html,C++,Qt,Clipboard,我有一个计划: int main(int argc, char *argv[]){ QApplication app(argc, argv); QTextEdit te; te.setHtml("<!DOCTYPE html>" "<html>" "<body style = \"background-color:powderblue;\">" "<h1>M

我有一个计划:

int main(int argc, char *argv[]){   
    QApplication app(argc, argv);       
    QTextEdit te;
    te.setHtml("<!DOCTYPE html>"
        "<html>"
        "<body style = \"background-color:powderblue;\">"
        "<h1>My First Heading< / h1>"
        "<p>My first paragraph.< / p>"
        "< / body>"
        "< / html>");
    te.resize(500, 300);
    te.show();  
    return app.exec();  
}
但是如果我复制文本

<!DOCTYPE html>
<html>
<body style="background-color:powderblue;">
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
</body>
</html>

这是一段

这是另一段

通过按ctrl+V从剪贴板进入程序创建的窗口,我看到:


如何重写程序以显示第一幅图像中的html?

不能直接用缩进空格粘贴html代码。试着先在MS word上复制它,然后再从那里粘贴到其他任何地方

试试这个:

class TextEdit : public QTextEdit{
public:
    TextEdit(QWidget *parent = 0):
        QTextEdit(parent)
    {}
protected:
    void insertFromMimeData(const QMimeData *source){
        if(source->hasText()){
            setHtml(source->text());
        }
        else{
            QTextEdit::insertFromMimeData(source);
        }
    }
};

如果不显示代码,就很难说。当您键入文本而不是粘贴文本时,行为是否有所不同?从中阅读您可能也想阅读
class TextEdit : public QTextEdit{
public:
    TextEdit(QWidget *parent = 0):
        QTextEdit(parent)
    {}
protected:
    void insertFromMimeData(const QMimeData *source){
        if(source->hasText()){
            setHtml(source->text());
        }
        else{
            QTextEdit::insertFromMimeData(source);
        }
    }
};