문제

QMainWindow를 열기 위해 여러 번 전화하고 있습니다.내 응용 프로그램에서 열린 창 수를 어떻게 알 수 있습니까?

void mywindow :: keyPressEvent (QKeyEvent *event)
{ 

    switch(event->key())
    {
       case Qt::Key_Enter:
           popUpWindow();
    }
}

void mywindow :: popUpWindow()
{

    win = new QMainWindow();
    win->show();
}

나는 이 창문을 닫고 있어요 deleteWindow().그런데 이미 열려 있는 창의 개수를 알고 싶습니다.

도움이 되었습니까?

해결책

당신이 사용할 수있는 정적 방법 QWidgetList QApplication::topLevelWidgets () [static] 열린 모든 창을 얻으려면.

다른 팁

추가한 mywindow 클래스 내부 :

unsigned count;
.

0로 초기화 된 멤버 객체 (또는 처음에 표시하는 창의 수에 따라 1).그런 다음 popUpWindow 멤버 함수에서 count++;deleteWindow 멤버 함수에서 count--;를 수행합니다.

여기에 수업의 해골이 있습니다 :

class mywindow {
private:
    unsigned windowCount;
public:
    mywindow() : windowCount(0) {}

    void popUpWindow() {
        // ...
        windowCount++;
    }

    void deleteWindow() {
        // ...
        windowCount--;
    }
};
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top