在QTextEdit中连接复制消息和主消息
Concatenate copy message and main message in QTextEdit
我正在尝试连接我的复制消息和前一个消息。换句话说,我想在QTextEdit中粘贴用户想要的新字符串。我可以把它插入到字符串的末尾。
下面是我的代码:
void MessageDialog::pasteMessage()
{
QClipboard *clipboard = QApplication::clipboard();
QString previousMessage = m_messageEdit->toPlainText();
m_messageEdit->setText(previousMessage+clipboard->text());
}
它只是粘贴到字符串的末尾。
我也读过了,我试着这样做:
void MessageDialog::pasteMessage()
{
QClipboard *clipboard = QApplication::clipboard();
QTextCursor cursor(m_messageEdit->textCursor());
m_messageEdit->moveCursor (QTextCursor::End);
m_messageEdit->insertPlainText (clipboard->text());
m_messageEdit->setTextCursor (cursor);
}
实际上它将它粘贴到新行,这不是我想要的。
任何建议吗?
如果您可以直接访问QTextEdit对象,那么QTextEdit::paste()就是您所需要的。它从剪贴板中检索文本,并尝试将其粘贴到当前光标位置。下面是一个小例子:
#include <QApplication>
#include <QMessageBox>
#include <QTextEdit>
#include <QShortcut>
int main( int argc, char ** argv )
{
QApplication app( argc, argv );
// create multiline edit
QTextEdit edit;
edit.setFixedSize( 200, 100 );
// create shortcut (different from Ctrl+V)
QShortcut shortcut( Qt::Key_F4, &edit );
// connect shortcut signal with text edit slot
QObject::connect( &shortcut, &QShortcut::activated,
&edit, &QTextEdit::paste );
// show edit
edit.show( );
app.exec( );
return 0;
}
如果你想从剪贴板粘贴一些东西,你只需要按F4。
试一试:
void MessageDialog::pasteMessage()
{
QString messageText = m_messageEdit->toPlainText();
int msg_lng = messageText.length();
QClipboard *clipboard = QApplication::clipboard();
int currentPos = m_messageEdit->textCursor().position();
int r_currentPos = msg_lng - currentPos;
QString subMessage_one = messageText.left(currentPos);
QString subMessage_two = messageText.right(r_currentPos);
m_messageEdit->setText(subMessage_one+clipboard->text()+subMessage_two);
m_messageEdit->moveCursor (QTextCursor::End);
}
相关文章:
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- boost::进程间消息队列引发错误
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 使用strcpy将char数组的元素复制到另一个数组
- 是否可以初始化不可复制类型的成员变量(或基类)
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 复制列表初始化的隐式转换的等级是多少
- 在线编译器中的分段C++没有打印消息
- C++错误消息*成员参考.**初学者*
- 当从函数参数中的临时值调用复制构造函数时
- 有可能在Armadillo中复制MATLAB circshift方法吗
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 复制几乎为空的数组的最快方法
- 以下示例中如何避免代码复制?C++/库达
- 错误消息:使用复制构造函数和重载赋值运算符
- 无法理解编译器在复制构造函数上引发的错误消息
- 如何在不复制内存的情况下复制Zeromq中的消息
- 在一条UDP消息中发送两个数据块,而不复制数据块
- 在QTextEdit中连接复制消息和主消息