如何将 QLabel 放入切换按钮 Qt c++

Posted

技术标签:

【中文标题】如何将 QLabel 放入切换按钮 Qt c++【英文标题】:How to put a QLabel in a toggle button Qt c++ 【发布时间】:2018-07-06 13:41:16 【问题描述】:

对于我的项目,我希望有一个切换按钮。 经过大量研究,我找到了这篇文章。 toggle-switch-in-qt

我在上面的链接中实现了第三篇文章的代码。

此代码可以正常工作。通过缺点,我不明白我们如何为切换按钮的两种状态添加 QLabel? 有人有想法做这个操作吗?

【问题讨论】:

【参考方案1】:

您需要在Switch::paintEvent 中手动绘制标签,具体取决于isEnabled(),使用QPainter::drawText。由于您引用的控件的绘制事件被覆盖,QAbstractButton::paintEvent 中通常绘制按钮标签的默认行为不会被执行。

【讨论】:

我尝试在PaintEvent方法中做p-> drawText(QRect, Qt :: AlignCenter, "name); 但是什么都没有出现.... 你确定你没有在文本上绘图吗?文本是否在正确的坐标处绘制?尝试在绘制控件本身之后 绘制文本,并将其绘制在QRect(margin_, margin_)。还要确保使用通过设置正确的笔和画笔可以看到的颜色。 对不起,我没有看到你的消息。在 isEnabled () 我做: QRect rect(0,0,_margin, _margin); QPen penHText(Qt::black); p.setPen(penHText); p.drawText(rect, Qt::AlignHCenter, "myText");但它没有显示任何东西。然而,即使坐标不正确,我也应该看到我的文字出现......? 怎么样:drawText(QPointF(0, 10), "Some text")所有其他绘图调用之后?

以上是关于如何将 QLabel 放入切换按钮 Qt c++的主要内容,如果未能解决你的问题,请参考以下文章

Qt:将点击的信号映射到另一个按钮

Qt - 如何在 QLabel Image 上设置文本

如何更改图像对比度(窗口中心和宽度)并在 QLabel 中显示(Python3.5,Qt5.1)

Qt 5.7 - QWebEngineView - 将 HTML 按钮单击事件连接到 C++/Qt 插槽

如何将 qlabel 添加到 QDialogBu​​ttonBox UI 文件

Qt连接两个信号和一个插槽