gpt4 book ai didi

c++ - Qt GUI Design - 是否有适合标签文本的不可见字符?

转载 作者:行者123 更新时间:2023-11-28 07:32:53 25 4
gpt4 key购买 nike

好的,我正在使用适用于 C++ 的 Qt Designer 开发 GUI,并且我设置了一堆标签以在加载文件后显示文件中的一些内容。

在用于显示加载内容的标签上,我目前将它们设置为“稍后设置”,并且在初始 GUI 配置中,我调用了 ui->label_id.setText (""); 在每个标签上,然后才能看到它们。我真的只是希望它们有一些文本,以便我可以在设计器中直观地看到它们,但在加载内容之前程序运行时没有任何文本。

所以我的问题是:这是处理这个问题的最佳方式吗?或者有没有我可以在设计器中将文本设置为不会在运行时出现的字符?

随着我的 gui 扩展越来越多的标签,我不想将每个标签的文本设置为“”而拖慢程序的加载时间,所以这就是我来这里的原因。

最佳答案

一种可能的解决方案是使用透明颜色(0 alpha 值)为该标签设置颜色。这可以通过小部件构造函数中的样式表来处理:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

setStyleSheet("QLabel { color: qrgba(255, 255, 255, 0); }");
}

如果您想有选择地将样式表应用于标签,您可以使用各种 Qt Style Sheet Selector Types .例如,您可以使用 ID 选择器。如果您在 QtDesigner 中将标签的 objectName 属性设置为 label_1,则可以通过设置此样式表来选择性地隐藏此标签:

setStyleSheet("#label_1 { color: qrgba(255, 255, 255, 0); }");

更高级的解决方案是返回对象名称样式表的方法:

QString MainWindow::styleSheetForHiddenLabels(const QStringList &labelObjectNames)
{
QString styleSheet;

foreach (QString labelName, labelObjectNames) {
QString style("#");
style.append(labelName);
style.append(" { color: qrgba(255, 255, 255, 0); }");
styleSheet.append(style);
}

return styleSheet;
}

这个方法可以这样使用:

QStringList labelNames;
labelNames << "label1" << "label2" << "label3";

QString stylesheet = styleSheetForHiddenLabels(labelNames);
setStyleSheet(stylesheet);

关于c++ - Qt GUI Design - 是否有适合标签文本的不可见字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17321993/

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