59

我的应用程序中有一个QLabel向用户显示错误消息。我想让标签的文本可选择,以便用户可以在需要时复制和粘贴错误消息。

但是,当我使用鼠标单击并拖动文本时,什么也没有发生 - 文本没有被选中。

如何使QLabel鼠标可选中的文本?

4

2 回答 2

95

代码

QLabel可以通过鼠标选择a 的文本,如下所示:

label->setTextInteractionFlags(Qt::TextSelectableByMouse);

这可以在QLabel 文档中找到。

您可以使用相同的功能使链接可以通过键盘选择、突出显示 URL 链接以及使文本可编辑。请参阅Qt::TextInteractionFlag

设计师

textInteractionFlagsQLabel菜单下搜索并设置标志TextSelectableByMouse

于 2013-07-30T21:29:09.627 回答
5

这是另一种方法,供参考...您可以创建一个 QLineEdit 子类,在构造函数中进行调整以使其看起来和行为像 QLabel:

 setReadOnly(true);
 setFrame(false);
 QPalette palette = this->palette();
 palette.setColor(QPalette::Base, palette.color(QPalette::Background));
 setPalette(palette);

我认为接受的答案比这个更简单,更可取。

于 2014-04-24T01:18:28.287 回答