gpt4 book ai didi

c++ - 单击另一个小部件时将小部件标记为未选中

转载 作者:行者123 更新时间:2023-11-30 02:01:44 25 4
gpt4 key购买 nike

我有一个 flowlayout显示电影缩略图(子类 qwidgets)。当我单击缩略图时,通过为其设置样式表(css 边框)将其标记为已选中。我想要做的是,如果我 1) 单击另一个缩略图,或 2) 单击包含流程布局的小部件,它应该被标记为未选中。

我目前已经实现了 mousePressEvent(QMouseEvent *) 方法来在单击缩略图时绘制边框。我不确定如何继续将其标记为未选中。谢谢。

最佳答案

您可以在某处存储指向当前所选小部件的链接,并在选择其他小部件时取消选择它。像这样:

someClass::someClass():
activeWidget(0)
{
for(......)
{
subclassedQWidget *w = new subclassedQWidget(this);
// ......
// ......
QObject::connect(w, SIGNAL(iAmClicked()), this, SLOT(someoneClicked()))
}

}

someClass::someoneClicked()
{
subclassedQWidget *caller = (subclassedQWidget*)QObject::sender();
if (caller == activeWidget) {return;} //Do nothing when active widget clicked
if (activeWidget) activeWidget->unSelect();
if (caller)
{
caller->select();
activeWidget = caller;
}
}

mousePressEvent 在你的 subclassedQWidget 你只需 emit iAmClicked()

关于c++ - 单击另一个小部件时将小部件标记为未选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13806470/

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