1. 程式人生 > >QFileSystemModel和ColumnView 製作簡單的檔案資訊

QFileSystemModel和ColumnView 製作簡單的檔案資訊

QFileSystemModel能返回本地的檔案資訊系統,QColumnView是一個多個QListView的組合,通過把他們結合能製作一個簡單的檔案資訊系統。

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    connect(ui->columnView, &QColumnView::clicked, this, &MainWindow::clicked);

    model_.setRootPath(QDir::currentPath());

    ui->columnView->setModel(&model_);
    ui->columnView->setResizeGripsVisible(false);

    view_ = new ViewForm();
    // 兩種使用方法 ?
    //QLayout *layout = new QVBoxLayout(ui->columnView->previewWidget());
    //layout->addWidget(view_);

    ui->columnView->setPreviewWidget(view_); //設定預覽小部件
}


void MainWindow::clicked(const QModelIndex &index)
{
    QString name = model_.fileName(index);
    QFileInfo fileInfo = model.fileInfo(index);
    qint64 size = info.size()/1024;
    
    QMimeDatabase database; //一個維護mime型別的資料庫
    QMimeType type = database.mimeTypeForFile(model_.fileInfo(index));//返回檔案的MIME型別
    //QMimeType類描述由MIME型別字串表示的檔案或資料型別。
    //例如一個名為“readme”的檔案。“txt”具有MIME型別“text/plain”

    QString strType = type.name();
    QString modified = info.lastModified().toString();
    
    view->setName();
    view->setSize(size);
    view->setType(strType);
    view->setModified(modified);
    view_->setPath(model_.filePath(index));
}

void ViewForm::setName(const QString &name)
{
    ui->label_2->setText(name);
}

void ViewForm::setSize(int size)
{
    ui->label_3->setText(QString::number(size) + "KB");
}

void ViewForm::setType(const QString &type)
{
    ui->label_5->setText(type);
}

void ViewForm::setModified(const QString &modified)
{
    ui->label_8->setText(modified);
}

void ViewForm::setPath(const QString &path)
{
    ui->label_9->setPixmap(QPixmap(path));
}

相關推薦

QFileSystemModelColumnView 製作簡單檔案資訊

QFileSystemModel能返回本地的檔案資訊系統,QColumnView是一個多個QListView的組合,通過把他們結合能製作一個簡單的檔案資訊系統。 MainWindow::MainWindow(QWidget *parent) : QMainWindo

利用css3中的aftercontent製作簡單的tooltip

> 主要使用css中的:after偽類,以及content屬性 程式碼塊 程式碼塊語法如下: .tooltip-block:hover:after{ border: 1p

JavaI/O:簡單的使用ReaderWriter來操作檔案

Writer類與Reader類是以字元流傳輸資料,一個字元是兩個位元組 字元流除了是以字元方式(兩個位元組)傳輸資料外,另外一點與位元組流不同的是字元流使用緩衝區,通過緩衝區再對檔案進行操作。位元組流位元組對檔案進行操作。使用字元流類時關閉字元流會強制將字元流緩衝區的類容輸出,如果不想關閉也將字元流進行輸出

fastDFS+LibreOffice多檔案上傳(二)後端部分:檔案資訊轉json字串儲存資料庫(Gsonorg.json兩種方式)

需要注意的地方: 1)如果你複製我的程式碼到你的程式上報錯,可以看看我第一篇文章實體類跟配置檔案的設定:https://blog.csdn.net/qq_36688143/article/details/84162924 第二篇檔案上傳前端頁面的程式碼: https://blog.c

簡單應用 - 在unity使用ScriptableObject製作配置檔案

一般在做遊戲開發的時候經常有需要製作配置檔案的需求,這樣可以給策劃或者程式提供一個檔案,他們只需要修改上面的值接可以達到修改遊戲一些設定的目的,這樣不用不斷地去修改程式碼了。     很多人都會用到一些儲存資料的檔案,例如json,xml。這是一個辦法,但卻比較麻煩,有事

百度網盤下載神器Pan DownloadSpeedPan,簡單幾步讓電腦滿速下載百度雲網盤檔案

大家都知道,百度網盤如果不是超級會員的話,下載速度會非常慢,慢到你懷疑人生,幾十M的檔案都要下載好久。不過說實話,對於經常使用百度網盤下載東西的人來說,一個月30塊錢的超級會員費用並不貴,畢竟現在頻寬這麼貴,百度又不是慈善家,肯定要考慮收回成本和盈利的問題。 可是對於我們這些一個月只用幾次百

Asp.net Core 類庫讀取配置檔案資訊

Asp.net Core 和類庫讀取配置檔案資訊 看乾貨請移步至.net core 讀取配置檔案公共類 首先開一個腦洞,Asp.net core 被使用這麼長時間了,但是關於配置檔案(json)的讀取,微軟官方似乎並沒有給出像.net framework讀取web.config那樣簡單且完美。嚴重懷

Python 製作簡單壓縮檔案指令碼

import os import time source=['/home/tudou/nihao'] target_dir='/home/tudou/nihao' today=target_dir+os.sep+\ time.strftime('%Y%m

用htmlcss製作一個簡單的頁面

原始碼:<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>簡單頁面</title> <meta name="v

利用busyboxmkfs.jffs2製作檔案系統

PC機系統:Ubuntu 12.04 LTS 目標板:海思3518C Flash型別:SPI Flash(16M) Busybox:BusyBox-1.16.1.tgz 嵌入式交叉編譯工具鏈:arm-hisiv100nptl-linux-gcc 目標

Qt總結之二:遍歷資料夾檔案目錄,並過濾獲取檔案資訊、字尾名、字首名(二)

前言 需要在特定目錄或磁碟下查詢特定檔案 一、篩選目錄 (一)單一目錄下遍歷,篩選特定檔案 QDir dir("./SaveFiles"); QFileInfoList list = dir.entryInfoList(); (二)裝置所有磁碟中遍歷 QF

使用CMake製作lib檔案以及Dlib機器學習庫的安裝使用-親測可行

第一步驟:使用CMake製作lib檔案 CMake是一個跨平臺的安裝(編譯)工具,可以用簡單的語句來描述所有平臺的安裝(編譯過程)。他能夠輸出各種各樣的makefile或者project檔案,能測試編譯器所支援的C++特性,類似UNIX下的automake。 這裡使用

asp.net簡單讀取xml檔案資訊

            //以下是迴圈讀取xml檔案中節點的值                 XmlDocument xmlDoc = new XmlDocument();                 xmlDoc.Load(Server.MapPath("Stude

解析用PHP讀寫音訊檔案資訊的詳解(支援WMAMP3)

<?php // AudioExif.class.php // 用PHP進行音訊檔案頭部資訊的讀取與寫入 // 目前只支援 WMA 和 MP3 兩種格式, 只支援常用的幾個頭部資訊 // // 寫入資訊支援: Title(名稱), Artist(藝術家), Copyright(版權), Descri

Qt總結之一:遍歷資料夾檔案目錄,並過濾獲取檔案資訊、字尾名、字首名(一)

一、採用遞迴和QDir實現資料夾下所有檔案遍歷的方法 #include <QDir> bool FindFile(const QString & path) {     QDir dir(path);   if (!dir.exists(

Qt總結之三:磁碟檔案操作、遍歷資料夾檔案目錄,並過濾獲取檔案資訊、字尾名、字首名(三)

前言 本節內容主要包括磁碟容量檢測、磁碟內指定或特定檔案的操作 話不多說,先上效果圖 共分為兩個部分,第一部分是檢測磁碟容量,第二部分是篩選磁碟內指定檔案(test.txt)或特定檔案(.txt / .png型別檔案) 獲取磁碟容量關鍵函式:【fileapi.h】 

訪問檔案資訊 fstatstat用法

#include <unistd.h> #include <fcntl.h> #include <sys/stat.h> #include <sys/types.h> #include <stdio.h> #inc

輕鬆實現windowslinux間的檔案互傳,簡單粗暴!

本人是個linux新手,將學習linux過程中遇到的問題,解決方法及收穫分享出來和大家一起討論交流,一起進步。如有不正確的地方,歡迎大家指正。 步驟: 1.      下載安裝FileZilla 客戶端(FileZill

c++ 列印簡單log資訊,輸出內容到某一檔案

#include<iostream> #include<sstream> #include<fstream> using

linux動態庫及靜態庫的製作 makefile 的簡單編寫

一.庫什麼是庫,簡單的可以說是可執行程式碼的二進位制形式,能夠被作業系統載入記憶體執行。作業系統的不同,二者的庫也是不相容的,如windows與linux.庫又分為靜態庫和動態庫,動態庫又稱為共享庫。linux下靜態庫(.a)檔案,動態庫(.so)檔案。主要存放函式庫的路徑有