مشکل connect در کیوت - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

مشکل connect در کیوت

+1 امتیاز

یک form دارم که از Qwidget ارثبری میکنه یک دکمه هم داره ..میخوام وقتی دکمه رو میزنم mainwindow رو نشون بده

myform::myslot()
{
    MainWindow w;
    w.show();
}

توی کانستراکتور myform هم اینو زدم:

QObject::connect(btn,SIGNAL(clicked()),&w,SLOT(myslot()));

 

سوال شده اردیبهشت 10, 1393  بوسیله ی programmer (امتیاز 139)   9 19 32

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

 w رو با اشاره گر و new بساز

myform::myslot()
{
    MainWindow *w=new MainWindow;
    w.setAttribute(Qt::WA_DeleteOnClose);
    w->show();
}

 

خط دوم برای اینه که وقتی که window بسته شد خودکار delete صدا زده شه .

پاسخ داده شده اردیبهشت 11, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد اردیبهشت 11, 1393 بوسیله ی programmer
QDesktopWidget رو هم inculde کن
اگه راست باشه جای centerبذارم right?ارور میده
   QRect screen= QApplication::desktop()->screen()->rect();
   QRect win=dialog.rect();

2 تا مستطیل میدن بهت اولی مستطیلیه که اندازه مانیتور هستش دومی اندازه پنجره برنامه بر اساس اینا یک QPoint میسازی میدی به move
مثلا
   QRect screen= QApplication::desktop()->screen()->rect();
   QRect win=w->rect();
   QPoint p;
   p.setX(screen.width()-win.width());
   p.setY(screen.height()-win.height());
   w->move(p);


لطفا اگر سوال دیگه ای داری توی 1  تاپیک دیگه بپرس .
اینو نفهمیدم
اها فهمیدم..واسه center دیگه نیاز بهx,y نداریم
...