الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن ادخال العناصر في QTableWidget

بدأه alexsniper في 6 سبتمبر 2010 · 3 رد · 1,110 مشاهدة · في قسم Cross Platform GUI Libraries العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندي مجموعة من البيانات مثل الاسم والعنوان والعمر وهكذا اريد ادخال هذه العناصر في QTableWidget

ده الكود

void MainWindow::on_pushButton_clicked()
{
    QList<QString> list;
    list<<"Name"<<"Age"<<"Address";
    ui->tableWidget->setColumnCount(3);
    ui->tableWidget->setHorizontalHeaderLabels(list);
    ui->tableWidget->setRowCount(5);

    //for(int i=0;i<5;i++)
    //{
        QTableWidgetItem *item=new QTableWidgetItem;
        item->setText("Mahmoud");
        ui->tableWidget->setItem(0,0,item);
        item->setText("26");
        ui->tableWidget->setItem(0,1,item);
        item->setText("Alexandria");
        ui->tableWidget->setItem(0,2,item);
    //}

}

المشكلة انه دايما يدخل العنصر في الصف الاول العمود الاول فقط

لكن عندما اعرف متغير من نوع QTableWidgetItem لكل عنصر مثل الاسم وعنصر للعنوان يدخلهم بشكل صحيح

السؤال هل يمكن استخدام متغير واحد فقط من نوع QTableWidgetItem لادخال كل العناصر

تم تعديل هذه المشاركة بواسطة alexsniper في 6 سبتمبر 2010 في 14:36

#2
اقتباس
السؤال هل يمكن استخدام متغير واحد فقط من نوع QTableWidgetItem لادخال كل العناصر

باستخدام مؤشر واحد لا يمكن ، لأن كل عنصر يشير الى خانة واحدة فقط . ويمكن للاختصار أن تنفذ:

ui->tableWidget->setItem(0,1,new QTableWidgetItem("test"));

أو أن تجهز بياناتك في أي هيكلة بيانات ومن ثم تدخلها الى الجدول بحلقة واحدة.

    QList<QList<QString> > data_list;
    QList<QString> data;

    for (int i=0;i<3;++i) {
        for (int j=0;j<3;++j) {
            data << QString::number(qrand()%100);
        }
        data_list << data;
        data.clear();
    }

    QTableWidgetItem* item;

    for (int i=0;i<3;++i) {
        for (int j=0;j<3;++j) {
            item = new QTableWidgetItem;
            item->setText(data_list[j]);
            table->setItem(i,j,item);
        }
    }

و كحل آخر يمكن تجهيز data model (مثل QStandardItemModel أو أي model تراه مناسب) ومن ثم استخدام QTableView لعرض البيانات.

QStandardItemModel* model =new QStandardItemModel(5,3);

// add item to model
...

QTableView* view =new QTableView(model);

view->show();
#3

الف شكر يا استاذ احمد

كله شغل تمام دلوقتي

الطريقة الاولي والثانية اما الثالثة فانا لا اعرف شئ عن Model View Archecture حتي الان لكن هبدا اتعلمها بعد العيد ان شاء الله

كل سنة وانت طيب

اه في سؤال خارج الموضوع في بناء SQL Driver بما انك راجل كريم وانا راجل طماع

في اخر خطوة عند تنفيذ الامر make بيقولي

make is not recognized interna or external command

مع العلم ان انا اضفت مسار Qt\bin الي Path وكل الخطوات السابقة صحيحة

#4

وانت طيب أخي الكربم .

بخصوص make الذي يأتي مع نسخ ال sdk تم تسميته ب mingw32-make

واذا لم يعمل معك تأكد من أنه موجود على متغيرات النظام ، وذلك بتنفيذ الأمر التالي في شاشة الأوامر cmd

mingw32-make -v

or

make -v

واذا لم يكن موجود قم باضافته الى المتغير PATH ، وستجد مساره بداخل مجلد Qt بالاسم /mingw/bin

وبالتوفيق .

مواضيع مشابهة