一种可能的解决方案是使用透明颜色(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);