استرجع عدد QMainWindows المفتوح في Qt
-
21-12-2019 - |
سؤال
أنا أتصل عدة مرات لفتح 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--;
}
};
لا تنتمي إلى StackOverflow