我不想使用传统的复选框,而是希望使用更易读的格式来显示我的选项。为了准确显示我想要的内容,我用我非常熟悉的语言实现了它。
是否可以使用Qt重新创建以下示例?如果是这样,我想了解如何做到这一点,我不明白如何以非黑客的方式做到这一点。
var $ = document.querySelector.bind(document);
var toggle = $('.toggle');
var first = toggle.firstChild;
var last = toggle.lastChild;
last.style.display = "none";
function hide(el) {
el.style.display = "none";
}
function show(el) {
el.style.display = "inherit";
}
var current = false;
toggle.addEventListener("click", function () {
current = !current;
if (!current) {
hide(last);
show(first);
} else {
show(last);
hide(first);
}
});
span.toggle {
border-bottom: 1px dashed;
}
span.toggle:hover {
cursor: pointer;
}
<p class="example">I will start <span class="toggle"><span>minimized</span><span>maximized</span></span>!</p>
答案 0 :(得分:1)
您可以通过连接linkActivated
的{{1}}信号来实现此目的。 QLabel
可以包含富文本,例如网址,点击后会发出QLabel
信号。下面列出了一个最小的例子。
在此示例中,我们创建了一个linkActivated
,其中包含一些富文本,其中包含可点击文本周围的锚点(我称之为锚QLabel
,但它可以是任何内容)。单击时,它会触发#toggle
方法,该方法会根据锚点更改文本。因此,我们在两个锚linkclicked
和#toggle
之间切换,同时也更改了文字。
#toggle2
这显然是一个极小的例子。您可以将当前状态存储在布尔变量中,并根据该状态切换文本(不需要多个锚名称)或其他所有内容!希望这能为您提供一个可以扩展的基本想法。