سؤال

لقد أنشأت النموذج التالي مع مصمم QT. أضفت زر إضافة ملفات يعمل مع QDIR و QFileDialog وتحميل الملفات إلى listwidget.

alt text

فيما يلي طرقاتي التي تملأ هذا النموذج بالملفات.

void RightDoneIt::changeDirectory()
{
/* select a directory using file dialog */
    QString path = QFileDialog::getExistingDirectory (this, tr("Directory"), directory.path());
    if ( path.isNull() == false )
    {
        directory.setPath(path);
        fillList();
    }
}


/*get list of file from given directory and the append it to listWidget */
void RightDoneIt::fillList()
{
    ui->listWidget->clear();
    ui->listWidget->addItems(directory.entryList());



}

أرغب في تعديل الكود الخاص بي حتى أتمكن من سرد موقع الملف وحجم الملف بجوار اسم الملف وأيضًا لجعل زر إزالة الملفات يعمل.

أريد فقط أن أكون قادرًا على اختيار الملفات باستخدام CTRL أو مفتاح الأوامر (لأجهزة Macs) والضغط على Delete لإزالة هذه الملفات من قائمتي.

هل يجب علي استخدام QtreewIdget بدلاً من ListWidget؟

ما هي أفضل الممارسات للقيام بذلك؟

أي اقتراحات رمز؟

شكرا لكم جميعا!

هل كانت مفيدة؟

المحلول

إذا كنت مجرد إدراج ملفات (لا توجد هيكل مجلد ومجلد فرعي) ، فلن تحتاج إلى ملف QTreeWidget.

ولكن نظرًا لأنك على استعداد لإظهار موقع الملف وحجم الملف ، أود استخدام ملف QTableWidget (أو QTableView).

ومع ذلك ، أود أن أقترح إلقاء نظرة على QFileSystemModel. اعتمادًا على ما تحاول القيام به مع تطبيقك ، قد يكون هذا الفصل مفيدًا: يمكنك استخدام هذا النموذج وعرضه في عرض عرض.

و QFileSystemModel يأتي مع طرق مثل إزالة() وسوف تتعامل مع إعادة تسمية الملف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top