使QLabel文本可选?

时间:2013-07-30 21:29:10

标签: c++ qt

我的应用程序中有一个QLabel,它向用户显示错误消息。我想使标签的文本可选,以便用户可以根据需要复制并粘贴错误消息。

但是,当我使用鼠标单击并拖动文本时,没有任何反应 - 文本未被选中。

如何通过鼠标选择QLabel内的文本?

2 个答案:

答案 0 :(得分:60)

<强>代码

QLabel的文字可以通过鼠标选择:

label->setTextInteractionFlags(Qt::TextSelectableByMouse);

这可以在QLabel documentation

中找到

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

<强>设计

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

答案 1 :(得分:3)

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

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

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