الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

how to show another window from mainwindow in qt4

بدأه Aboorh في 16 مايو 2010 · 6 رد · 852 مشاهدة · في قسم Cross Platform GUI Libraries العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ..

الأفاضل هنا لدي سؤال يتوقف عليه إكمال مشروعي ..

أنا مبتدئة جدًا في الكيوت ومضطرة لعمل مشروع متكامل في وقت قصير ..

لكنني لا أعرف كيف أقوم بصنع نافذة تخرج من النافذة الأساسية .. بحيث يكون لديها قوائم و وأزرار أي متكاملة ..

قمت أولا بعمل نافذة لا يوجد فيها سوى نص وزر ok

بعد أن أضغط هذا الزر يفترض أنه يغلق النافذة الحالية ويدخل على نافذة أخرى وهي نافذة البرنامج التي تحوي القوائم وكل شيء..

استطعت إغلاق النافذة وفتح dialog بمجرد أن تنغلق النافذة لكنني أريد window وليس dialog..

لذا رجاءًا من لديه فكرة فليخبرني بها مع العلم أنني بحثت كثيرًا لكنني لم أتوصل للحل.. والوقت يداهمني..

اعتذر إن كان سؤالي مكررًا ..

وشكرًا مقدمًا..

#3

الله يجزاك الجنة أخي SudaNix لسرعة تجاوبك

رأيت الرابط لكنه يشرح طريقة إنشاء dialog من النافذة الرئيسية وأنا اريد إنشاء نافذة أساسية أخرى عند الضغط على زر في النافذة الرئيسية الأولى ..

بحيث أن النافذة الرئيسية الجديدة تشمل القوائم وكل ما يتعلق بالبرنامج ومنها يبدأ العمل ..

بحثت عن أمثلة لكنني لم أجد ما يشبه ما اود القيام به..

أريد أن أعرف كيف أتعامل مع الكود لإنشائها بشكل عام ..بما أنني مبتدئة..

هل يجب أن أستخدم Designer؟ مع العلم أنني عندما أردت إنشاءdialog من النافذة الرئيسية لم أستخدم سوى QTCreator؟؟

هل أقوم بإضافة ملفات هيدر وسورس للنافذة الجديدة أضمنها داخل ملف النافذة الأصلية مثلاً؟؟

اعتذر على الإطالة وممتنة والله..

تم تعديل هذه المشاركة بواسطة Aboorh في 16 مايو 2010 في 16:38

#4

\

مرحبا اخي الكريم ..

وجدت في أحد المنتديات الأجنبية طريقة جيدة وأظنها تفي بالغرض ..

وهو أن تضيف هذا الكود في ملف المين :

#include <QtGui>
int main (int argc, char** argv) 
{    QApplication ap(argc, argv);
     QWidget *window1 = new QWidget(0);   
 QWidget *window2 = new QWidget(0);  
   QPushButton *button = new QPushButton("Open second Window", window1);    
 window1->show();   
  QObject::connect(button, SIGNAL(clicked()), window2, SLOT(show()));  
   return  ap.exec()
;}

وقد جربته وعمل جيدًا ..

لكنني الآن محتارة كيف بوسعي إضافة القوائم والأشياء الأخرى للنافذة الجديدة ..

#5

ما فهمته هو أن لديك نافذة رئيسية اولى ولتكن MainWinodw1 وعند الضغط على زر فيها تقوم بفتح نافذة رئيسية اخرى ولتكن MainWindow2 ، هل هكذا هو المطلوب ؟

اذا كان نعم ، فكل ما عليك هو :

1- انشاء MainWindow2 سواءا من Qt Designer او من عن طريق الكود مباشرة.

2-في النافذة MainWindow1 يجب ربط حدث الضغط على الزر بدالة ولتكن openMainWindow2

connect(button,SIGNAL(clicked()),this,SLOT(openMainWindow2()));

وتعريفها يكون على الشكل:

void MainWindow1::openMainWindow2()
{
    MainWindow2* w = new MainWindow2(this);
   w->show();

}

وهكذا عند الضغط على الزر ستفتح النافذة الرئيسية الثانية .

#6

^

أجل هذا ما أردته تمامًا جزاك المولى خير الجزاء..

سوف أجرب طريقتك إن شاء الله حالاً ..

ممتنة أخي الكريم لصبرك ..

#7

الحمدلله ..

شكرًا لك أخي SudaNix والله يجزاك عني خير الجزاء..

جربت الآن طريقتك واستطعت بحمد الله فتح نافذة جديدة من خلال ضغطي على الزر في النافذة الأولى ..

الآن تبقى لي إضافة القوائم وما يتعلق بها للنافذة الجديدة ..

أصدق الدعوات لك بالتوفيق..

مواضيع مشابهة