سؤال

أنا أتصل عدة مرات لفتح 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