ورود

View Full Version : ایجاد پنجره پویا با موجودیت های لاین ادیت مشخص!



2020s1371
یک شنبه 20 مهر 1393, 11:22 صبح
سلام
این ساده رو نگاه کنید







QWidget *window =new QWidget;
QLineEdit *le_1 =new QLineEdit;
QLineEdit *le_2 =new QLineEdit;
QLineEdit *le_3 =new QLineEdit;
QLineEdit *le_4 =new QLineEdit;

///******************


QVBoxLayout *V_L_1=new QVBoxLayout;
//start V layout
QHBoxLayout *H_L_1=new QHBoxLayout;
//start H layout

H_L_1->addWidget(le_1);
H_L_1->addWidget(le_2);



//end H layout
V_L_1->addLayout(H_L_1);
//end V layout
//******************************
window->setLayout(V_L_1);
window->show();




حالا میخام محدوده ای که با ستاره مشخص شده رو به صورت داینامیک تبدیل کنم
مثلا



for (int i = 1; i <3; ++i) {
H_L_1->addWidget(le_i);
}

همچین حالتی رو بتونه اجرا کنه


بهتر بگم: میخام به صورت داینامیک بتونم یه سری آبجکت مثله لاین ادیت رو با یه ترتیب اسمی خاص بوجود بیارم مثلا اسمشون باشه از LE_0 تا LE_20

حامد مصافی
دوشنبه 21 مهر 1393, 11:33 صبح
for (int i = 1; i <3; ++i) {
QLineEdit *edit = new QLineEdit(this);
edit->setObjectName("le_" + QString::number(i));
H_L_1->addWidget(edit);
}

2020s1371
دوشنبه 21 مهر 1393, 13:06 عصر
اینم استفاده ی تودرتویی که من نوشتم
اگه جاییش اشتباس بگید ممنون میشم



for(int j=1;j<=4;j++){
QHBoxLayout *H_L=new QHBoxLayout(this);
H_L->setObjectName("H_L_"+QString::number(j));
for (int i = 1; i <=3; ++i) {
QLineEdit *edit = new QLineEdit(this);
edit->setObjectName("le_" + QString::number(i));
H_L->addWidget(edit);
}
V_L_1->addLayout(H_L);
}