gpt4 book ai didi

c++ - 自定义可检查/可切换 QFrame 小部件

转载 作者:行者123 更新时间:2023-11-30 02:42:39 27 4
gpt4 key购买 nike

如何使自定义小部件(派生自“QFrame”)包含可检查/可切换的支持?如何让 Qt 的样式表 (CSS) 知道我的小部件已被用户检查/切换?

是否需要在我的自定义小部件中使用某种信号或属性?

我不想使用(即)QPushButton,因为我需要我的按钮小部件才能使用 Qt 的 .ui 文件。

即使用 QPushButton 时 - 事情很简单:

QPushButton#btnName:focus:pressed { border-image: url(ThemesPathKey/menu-top-h.png);    }
QPushButton#btnName:checked { border-image: url(ThemesPathKey/menu-top-h.png); }
QPushButton#btnName:hover { border-image: url(ThemesPathKey/menu-top-h.png); }

我的自定义按钮小部件需要类似的东西。

谢谢。

最佳答案

您可以对自定义小部件使用hoverfocus,但只有按钮和复选框支持checked

要替换 checked,您可以使用自定义属性:

QPushButton#btnName[checked="true"] {   border-image: url(ThemesPathKey/menu-top-h.png);    }

当您的小部件被点击时切换 checked 属性,如下所示:

void mousePressEvent(QMouseEvent*) override
{
bool checked = property("checked").toBool();
setProperty("checked", !checked);
style()->polish(this);
}

关于c++ - 自定义可检查/可切换 QFrame 小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26910389/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com