Qt-如何了解QDialog的可见性

Qt- How to know about visibility of QDialog?

本文关键字:QDialog 可见性 了解 何了解 Qt-      更新时间:2023-10-16

是否有任何方法可以检查特定QDialog的可见性?我试着检查了一下。这是我的代码:

MessageDialog::MessageDialog(QWidget *parent, int Id, QString Name, QPixmap *Photo)
: QDialog(parent),
  m_Id(Id),
  m_Name(Name)
{
    // ...
    if (MessageDialog.isVisible())
        qDebug()<<"visbile";
    else
        qDebug()<<"invisible";        
}

我收到一个错误:

错误:"之前应为主表达式token if(MessageDialog.isVisible(((

问题是您正试图在MessageDialog类上调用一个非静态函数。您应该在对话框对象上调用isVisible()函数,在这种情况下,您应该使用this或只调用isVisible()

if ( this->isVisible() ) // if ( isVisible() )
    qDebug()<<"visbile";
else
    qDebug()<<"invisible";

但我认为这也不好,因为在构造函数中,对话框还不可见。

尝试删除

MessageDialog. 

即只留下

isVisible();