4 QT自定義模型

2021-09-10 02:37:26 字數 2144 閱讀 1099

在聊學習之前,想說一下將近乙個星期的時間我都幹了些什麼,為什麼沒有學習,總結起來乙個字——玩,11號朋友遠道而來,說是在家閒得慌,過來找我一起浪,直到昨天才將他送走,既然朋友來了,自然不能怠慢,請他吃飯,帶他閒逛,一起去爬山,還吃了一天的自製火鍋,回想起來這味道有點反胃。獨處的時候適合學習和思考,玩耍的時候就該和朋友一起。

自定義編輯模型

#ifndef currencymodel_h

#define currencymodel_h

#include #include #include class currencymodel:public qabstracttablemodel

;#endif // currencymodel_h

#include "currencymodel.h"

currencymodel::currencymodel(qobject *parent):qabstracttablemodel(parent)

//返回行數目

int currencymodel::rowcount(const qmodelindex &parent) const

//返回列數目

int currencymodel::columncount(const qmodelindex &parent) const

//返回列名

//qvariant類將大部分型別(int,string)的資料封裝起來,呼叫時使用to函式取出,例如:int型別包裝成qvariant,用qvariant::toint()取出

qvariant currencymodel::headerdata(int section, qt::orientation, int role) const

return currencyat(section);

}qstring currencymodel::currencyat(int offset) const

//設定底層的實際資料,由於不可能將資料硬編碼,所以必須為模型提供乙個用於設定的函式

void currencymodel::setcurrencymap(const qmap&map)

//返回單元格資料(唯讀模型)

//qvariant currencymodel::data(const qmodelindex &index,int role) const

//// if(role==qt::textalignmentrole)else if(role==qt::displayrole)

// double amount=currencymap.value(columncurrency)/currencymap.value(rowcurrency);

// return qstring("%1").arg(amount,0,'f',4);

// }

// return qvariant();

//}//(可編輯模型)

qvariant currencymodel::data(const qmodelindex &index,int role) const

if(role==qt::textalignmentrole)else if(role==qt::displayrole || role==qt::editrole)

double amount=currencymap.value(columncurrency)/currencymap.value(rowcurrency);

return qstring("%1").arg(amount,0,'f',4);

}return qvariant();

}//可編輯模型函式實現

qt::itemflags currencymodel::flags(const qmodelindex &index) const

return flags;

}//更新資料

bool currencymodel::setdata(const qmodelindex &index, const qvariant &value, int role)

return false;

}

備註:當類裡面有乙個成員函式沒有實現的時候,無法編譯通過的。

自定義Qt部件 盒狀模型

原文 盒狀模型 使用style sheets時,所有的部件都被視為有四個同心矩形的盒子 box 邊緣矩形 margin rectangle 邊框矩形 border rectangle 填充矩形 padding rectangle 和內容矩形 content rectangle 盒狀模型對四個矩形有詳...

4 QT功能模組

選中乙個檔案 str path為檔案路徑 qstring str path qfiledialog getopenfilename this,tr 選擇轉碼檔案 tr home tr 選中多個檔案 qstring strs qstringlist file list,output name qstr...

Qt 自定義事件

最近做的專案,是用qt的完成的,在用到事件派發的時候,要用自己自定義的事件型別來滿足需要。具體就是按照qt的官方文件說明,做了乙個簡單的例子,以免忘記,就先寫下來儲存。首先有個customevent 類,繼承自qevent ifndef customevent h define customeven...