gpt4 book ai didi

c++ - 如何检查动态属性是否存在

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:14:59 26 4
gpt4 key购买 nike

我已经使用setProperty 函数将动态属性设置为对象。
但我想在其他地方检查创建的属性是否存在。

我做了什么:
设置属性时:

QString fileDlg = QFileDialog::getOpenFileName(this, "Open File", "F://","Text Files(*.txt)");
QWidget *widget = new QWidget(this);
QMdiSubWindow *mdiWindows = ui->mdiArea->addSubWindow(widget);
mdiWindows->setProperty("filePath", fileDlg);

当检查属性是否存在时:

QMdiSubWindow *activeWindow = ui->mdiArea->activeSubWindow();
if(activeWindow->property("filePath") == true){
// code here
}

最佳答案

如果属性不存在,QObject::property 方法返回一个无效的变体。这是 documented .

因此:

QVariant filePath = activeWindow->property("filePath");
if (filePath.isValid()) {
...
}

旁注:将任何内容与 true 进行比较要么是完全多余的,要么是某处设计损坏的标志。您不应该在代码中的任何地方使用 ... == true... == false

关于c++ - 如何检查动态属性是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24327111/

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