Qt文档阅读笔记-对Style Plugin Example实例的解析
目錄
?
前言
Style Plugin Example
SimpleStylePlugin Class 定義
SimpleStylePlugin Class 實現
main()函數
The Simple Style Plugin Profile
?
前言
文檔中給的現象圖是這樣的:
但在本人Qt5.8 Windows 7端 MinGW編譯器中?沒有官方實例的現象,這里修改成如下的現象:
詳情請看這個連接:
https://blog.csdn.net/qq78442761/article/details/86577171
?
?
Style Plugin Example
插件是Qt存儲在類中的共享庫,這個能夠在運行的時候被QPluginLoader加載。插件是對應用程序的擴展。
寫一個插件的邏輯:
1. 首先要繼承插件的一個基礎類(文檔查base classes);
2. 重寫函數,并且增加宏。
在Style Plugin Example這個例子中plugin為外觀,這屬于low-level,而high-level插件要看overview document。
plugin中,新風格繼承了QStylePlugin類,通過Qt進行加載,通過QStyleFactory確保其插件可用;通過實現SimpleStylePlugin類使得Button的風格改變。
這個新風格在某種意義上是和平臺無關的,使用QProxyStyle會改變當前應用程序的風格。
使用StyleWindow去測試插件。SimpleStyle和StyleWindow并不能加載所有類型的插件,他們的實現很簡單。
這里要注意,pro文件對plugin很重要(本人自己總結的,好像是廢話,pro對所有Qt程序都重要)
?
?
SimpleStylePlugin Class 定義
SimpleStylePlugin為QStylePlugin的子類,并且為一個接口類:
class SimpleStylePlugin : public QStylePlugin{Q_OBJECTQ_PLUGIN_METADATA(IID "org.qt-project.Qt.QStyleFactoryInterface" FILE "simplestyle.json")public:SimpleStylePlugin() {}QStringList keys() const;QStyle *create(const QString &key) override;};keys()函數返回這個style的名稱,create()函數的一個參數為string類型,返回QStyle的鍵值。這兩個函數都是QStylePlugin中繼承下來的純虛函數,當應用程序需要創建一個SimpleStyle風格的實例時,插件將會被創建。
?
SimpleStylePlugin Class 實現
keys()函數的實現:
QStringList SimpleStylePlugin::keys() const{return QStringList() << "SimpleStyle";}返回值為這個類的名稱SimpleStyle為QStringList類型。
下面是create()函數:
這里要注意大小寫問題,采用key.toLower()這種方式可以有效的解決大小寫。
?
main()函數
int main(int argv, char *args[]){QApplication app(argv, args);QApplication::setStyle(QStyleFactory::create("simplestyle"));StyleWindow window;window.resize(200, 50);window.show();return app.exec();}當QApplication對象被初始化后,Qt將加載style插件。QStyleFactory類能識別所有style并且能生成對象(所有與style有個的接口都可這么做)。
?
The Simple Style Plugin Profile
styleplugin的pro文件如下:
TEMPLATE = libCONFIG += pluginQT += widgetsHEADERS = simplestyle.h \simplestyleplugin.hSOURCES = simplestyle.cpp \simplestyleplugin.cppTARGET = simplestyleplugin這里要注意:
1. template要設置為lib而不是傳統的app;
2. config設置為plugin,這樣才能時dll中實現接口的給功能。
總結
以上是生活随笔為你收集整理的Qt文档阅读笔记-对Style Plugin Example实例的解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统架构师学习笔记-操作系统(三)
- 下一篇: Qt学习笔记-基于QGraphicsSc