日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt文档阅读笔记-对Style Plugin Example实例的解析

發布時間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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()函數:

QStyle *SimpleStylePlugin::create(const QString &key){if (key.toLower() == "simplestyle")return new SimpleStyle;return 0;}

這里要注意大小寫問題,采用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实例的解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。