使QLabel文本可选

Make QLabel text selectable?

本文关键字:文本 QLabel      更新时间:2023-10-16

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

但是,当我用鼠标点击并拖动文本时,不会发生任何事情——文本没有被选中。

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

代码

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

label->setTextInteractionFlags(Qt::TextSelectableByMouse);

这可以在QLabel文档中找到。

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

设计器

QLabel菜单下搜索textInteractionFlags,并设置标志TextSelectableByMouse

这里有另一个方法,供参考。。。您可以创建一个QLineEdit子类,将其调整为类似QLabel的外观和行为,在构造函数中:

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

不过,我认为公认的答案比这个更简单、更可取。