Qt-如何了解QDialog的可见性?

时间:2015-07-05 14:04:11

标签: c++ qt

有没有检查特定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";        
}

我收到了一个错误:

  

错误:在'。'之前预期的primary-expression令牌if(MessageDialog.isVisible())

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

尝试删除

MessageDialog. 

即。只留下

isVisible();