PDA

View Full Version : تعیین parent پنجره



kitten
پنج شنبه 12 اسفند 1389, 10:46 صبح
سلام دوستان امیدوارم حالتون خوب باشه
من تو برنامه ام یه کلاس دارم که از کلاس mainwindow به ارث بردم و پنجره اصلی برنامه را برام تولید می کنه حالا می خوام وقتی روی یه pushbutton خاص کلیک کرد از یه کلاس دیگه یه شی ایجاد کنم تا یه پنجره دیگه هم باز بشه ولی وقتی پنجره اصلی را بستم همه پنجره ها بسته بشند فکر کنم باید تو سازنده کلاس پنجره دومم یه this بنویسم تا کلاس اولیه پدر پنجره جدیدم بشه ولی وقتی این کار را می کنم بازم هیچ فرقی نمی کنه ؟
می شه دقیق بگید چی کار باید بکنم؟
امیدوارم سوالم مفهوم باشه
ممنون
در ضمن هر دو کلاسم از mainwindow به ارث می برند.

حامد مصافی
پنج شنبه 12 اسفند 1389, 11:10 صبح
کلاس دوم را از نوع QDialog مشتق کنید، یک دیالوگ وابسته به والد خود خواهد بود مگر اینکه هدف دیگری داشته باشید.

.:saeed:.
جمعه 13 اسفند 1389, 21:12 عصر
سلام
از کد زیر شاید کمکتون کنه

int main(intargc,char*argv[])
{
QApplication a(argc,argv);
QMainWindow parent;
parent.setWindowTitle("Parent");
QMainWindow child(&parent);
child.setWindowTitle("Child");
QLabel Lbl(&child);
Lbl.setText("ChildText");
parent.show();
child.show();
return a.exec();
}
در این صورت با بسته شدن parent ( یعنی زدن دکمه close ) بچه نیز (child) بسته میشه . راه دیگه reimplement کردن closeEvent پدر است .

kitten
شنبه 14 اسفند 1389, 23:13 عصر
سلام دوست عزیز کدی که برام نوشتید اصلا مشخص نیست که چیه؟ می شه تو یه فایل برای اپلود کنید ممنون

حامد مصافی
شنبه 14 اسفند 1389, 23:24 عصر
با اجازه سعید خان کدی رو که درست نمایش داده نمیشد تصحیح کردم

kitten
شنبه 14 اسفند 1389, 23:38 عصر
سلام دوباره ولی در هر صورت برای من همون طوری نشون می ده !!!

http://950559.20upload.net/files/1389/bahman/error012912.jpg (http://950559.20upload.net/files/1389/bahman/error012912.jpg)

.:saeed:.
یک شنبه 15 اسفند 1389, 00:12 صبح
سلام
ممنون حامد جان ولی بازم به هم ریخته



int main(intargc,char*argv[])

{

QApplication a(argc,argv);

QMainWindow parent;

parent.setWindowTitle("Parent");

QMainWindow child(&parent);

child.setWindowTitle("Child");

QLabel Lbl(&child);

Lbl.setText("ChildText");

parent.show();

child.show();

return a.exec();

}