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

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۱۵۹ نفر آنلاین
۰ عضو و ۱۵۹ مهمان در سایت حاضرند

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

0 امتیاز
71 بازدید

سلام

من در 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 (امتیاز 282)   1 2 34
خب چرا این شی را داخل همون 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,190)   1 2 12
فقط یک سوال: فرق بین accept با close در تابع connect چیه؟
حدس میزدم این مسأله برات سوال باشه. به همین دلیل در پایان پست برات لینک جایی که علت به‌کارگیری accept رو بخونی، رو نوشتم.
...