|
Syylc120317 发表于 2013-9-21 14:08
不用下载,直接访问剪贴板就行了。
访问剪贴板 是区分text跟image的吧 我只能让其中一个贴上qtextedit 怎么样能让图片按原顺序贴上qtextedit呢?
求指导..
我现在重载了eventFilter 的ctrl+v
QClipboard * clipboard = QApplication::clipboard();
if(target == ui->textEdit)
{
if (event->type() == QEvent::KeyPress)
{
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
if (keyEvent->matches(QKeySequence:aste))
{
// if (keyEvent->modifiers() == Qt::ControlModifier
// && keyEvent->key() == Qt::Key_V) {
qDebug() << "Ctrl + V";
ui->textEdit->setText(clipboard->text());
return true;
}
}
}
return QMainWindow::eventFilter(target, event);
另外有一个按钮能把粘贴板的图片贴上qtextedit
QClipboard * clipboard = QApplication::clipboard();
QTextEdit *edit = ui->textEdit;
QString text = ui->textEdit->toPlainText();
edit->setHtml(QString("<html>%1</html>").arg(text.replace("\n", "<br>")));
//QImage image;
//image.load("istone.jpg");
if (clipboard->image().isNull()) { return; }
// int width = edit->viewport()->width() - 7;
// if (image.size().width() > width || image.size().height() > width) {
// image = image.scaled(width, width, Qt::KeepAspectRatio, Qt::SmoothTransformation);
// }
QTextCursor cursor = edit->textCursor();
QTextDocument *document = edit->document();
// 下面的addResource代码非常重要, 内存增加很少
cursor.movePosition(QTextCursor::End);
document->addResource(QTextDocument::ImageResource, QUrl("image"), clipboard->image());
// edit->setAlignment(Qt::AlignCenter);
cursor.insertImage("image"); |
|