首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果使用QToolTip::showText,则QToolTip样式表不起作用

如果使用QToolTip::showText,则QToolTip样式表不起作用
EN

Stack Overflow用户
提问于 2018-07-06 04:46:02
回答 1查看 802关注 0票数 0

我正在尝试使用QSS自定义工具提示的外观,它是有效的。但是,如果我尝试使用QToolTip::showText函数显示工具提示,它不会按预期工作,这意味着QToolTip样式表可能不适用于它?

我的目的:当更改滑块值时,我想在滑块附近显示一个矩形,所以我认为工具提示是最简单的方法?如果你不明白我的意思,我正在尝试让Qt中的滑块感觉像Windows10UWP,所以如果你想理解我的意思,请看一下Windows中的任何滑块,比如去“设置”->“系统”->“声音”看看它们的滑块是如何工作的。我已经做了他们所做的一切,除了那个矩形,当值发生变化时它会显示出来。

我想要做的是:

在样式表中

代码语言:javascript
复制
QToolTip
{
color: red;
}

在我的自定义Slider类中(继承自QSlider)

代码语言:javascript
复制
class FSlider : public QSlider
{
    Q_OBJECT
public:
    FSlider(QWidget *parent = 0) : QSlider(parent) { connect(this, SIGNAL(valueChanged(int)), this, SLOT(notifyValueChanged(int))); }
protected:
    void mousePressEvent(QMouseEvent* event);
    void mouseReleaseEvent(QMouseEvent* event);
    bool event(QEvent* event);

private slots:
    void notifyValueChanged(int Value);
};

void FSlider::notifyValueChanged(int Value)
{
    QStyleOptionSlider opt;
    initStyleOption(&opt);
    QRect sliderHandle = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle);
    QToolTip::setFont(QFont("Segoe UI", 13, 400));
    QToolTip::showText(mapToGlobal(QPoint(sliderHandle.x() - sliderHandle.width() - 2, sliderHandle.y() - sliderHandle.height() - 30)), QString::asprintf("%i", Value));
}

感谢您的阅读!

EN

回答 1

Stack Overflow用户

发布于 2020-08-20 23:33:40

我一开始在Qt 5.12.2上也遇到了同样的问题。我错过了QToolTip::showText的第三个参数。我必须添加父窗口小部件。在这种情况下,我在mainwindow.ui中应用于工具提示的CSS应用于QToolTip。如果没有父级,它将是一个单独的窗口,显示在指定的位置上,并且不知道css。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51199636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档