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

ساخته شدن یک شی وابسته به اجرا شدن تابع connect در کیوت

0 امتیاز

سلام

من در qt یک کلاس دارم به اسم login  که یه dialog باز میکنه برای گرفتن نام کاربری و پسورد. و یک کلاس دیگه دارم به اسم MainWindow .

تابع main به این صورت است:

QApplication a(argc, argv);
    Login d;
    d.show();
    MainWindow m;
    m.show();
    return a.exec();

در کلاس login یک دکمه است به اسم "ورود" و برای این دکمه یک slot نوشتم که یک سری کار انجام میدهد و یک if داخلش است که اگر درست باشه اون dialog رو close میکنه به این شکل:

connect(ui->pushButton , SIGNAL(clicked()) , SLOT(close()) );

حالا میخوام فقط در صورتی شی m در تابع main ساخته بشه  که تابع connect بالا اجرا شده باشه و اگر نه اون شی ایجاد نشه. یعنی ساخته شدن یا نشدن شی m در تابع main وابسته باشه به اجرا شدن یا نشدن تابع connect

چطوری میتونم این کار را انجام دهم؟

مرسی

 

سوال شده اردیبهشت 11, 1394  بوسیله ی moh3en (امتیاز 209)   15 28 40
ویرایش شده اردیبهشت 11, 1394 بوسیله ی moh3en
خب چرا این شی را داخل همون if نمیسازی ؟
چون میخوام اول شی d مخربش فراخوانی بشه بعد شی m ساخته بشه . نمیخوام داخل شی d شی m رو بسازم

1 پاسخ

+3 امتیاز
 
بهترین پاسخ
connect(ui->pushButton , SIGNAL(clicked()) , SLOT(accept()) );

-------------------------------

QApplication a(argc, argv);
Login d;
d.exec();

if(d.result() == QDialog::Accepted){
	MainWindow m;
	m.show();
	return a.exec();
}else{
	return 0;
}

 

 

نکته: کلاس login باید از QDialogمشتق شده باشه (و نهQMainApplication)

برای اطلاعات بیشتر اینجا را ببینید.

پاسخ داده شده اردیبهشت 12, 1394 بوسیله ی حامد مصافى (امتیاز 1,104)   2 3 12
انتخاب شد اردیبهشت 12, 1394 بوسیله ی moh3en
فقط یک سوال: فرق بین accept با close در تابع connect چیه؟
حدس میزدم این مسأله برات سوال باشه. به همین دلیل در پایان پست برات لینک جایی که علت به‌کارگیری accept رو بخونی، رو نوشتم.
...