單件模式使用小技巧
為了使QT應用程式介面自適應螢幕的解析度,要使QT介面上的所有控制元件根據一定的比例進行變大或者縮小。為了避免介面放大時圖片失真,針對QT介面上的所有控制元件的背景圖設計了兩套。為了縮短程式碼量可以將兩套圖片的名稱設定為一模一樣。然後存放在兩個資料夾中,這兩個資料夾分別命名為1024和1366。這時可以定義一個系統引數QString dpi,在開始獲取螢幕解析度的時候進行判斷,如果螢幕解析度為4:3,則Parameter::getInstance()->dpi=1024;如果螢幕解析度為16:9,則Parameter::getInstance()->dpi=1366。給每個控制元件新增背景圖寫在一個函式中。例如:
void photo()
{
ui.frame->setStyleSheet("#frame{border- image:url(:/"+Parameter::getInstance()>dpi+"/image/"+Parameter::getInstance()->dpi+"/background.png);}");
}
Parameter.cpp
#include "Parameter.h"
Parameter * Parameter::m_Parameter = NULL;
Parameter::Parameter()
{
}
Parameter::~Parameter()
{
}
Parameter *Parameter::getInstance()
{
if (m_Parameter == NULL)
{
m_Parameter = new Parameter();
}
return m_Parameter;
}
void Parameter::initParameter(){
dpi ="";
}
Parameter.h
#pragma once
#include <QString>
class Parameter
{
public:
static Parameter* getInstance();
QString dpi; //螢幕解析度
static Parameter *m_Parameter;
void initParameter();
Parameter();
~Parameter();
};
此時Parameter::getInstance()->dpi必須用/+ +/進行隔開,不然程式會以為Parameter::getInstance()->dpi為路徑名。這樣就不用寫兩個函式來設定控制元件的背景圖片。這裡面使用了一個單件模式。
相關文章
- 《Head First 設計模式》:單件模式設計模式
- IDEA小技巧:Debug條件斷點Idea斷點
- photoshop使用小技巧
- Windows使用小技巧Windows
- Android studio使用小技巧Android
- Postman 使用小技巧/指南Postman
- VS Code 使用小技巧
- PyCharm使用技巧(四):Scientific模式PyCharm模式
- 部落格園使用小技巧
- 8條github使用小技巧Github
- 使用 GNU Screen 的小技巧
- Vue 使用中的小技巧Vue
- [20181219]script使用小技巧.txt
- Excel 使用小妙招之快速求和小技巧Excel
- 5個Word簡單實用小技巧,但真正會使用的人很少
- [C++]括號使用小技巧C++
- 小技巧:如何使用預覽將多個影像轉換為單個PDF
- TypeScript Partial 使用的一個小技巧TypeScript
- Android Studio|IntelliJ IDEA Git使用小技巧AndroidIntelliJIdeaGit
- Pytorch Optimizer類使用小技巧總結PyTorch
- 提高MWeb使用體驗的小技巧Web
- ItemDecoration的一些使用小技巧
- PbootCMS導航選單標籤的小技巧boot
- Vivado使用技巧(11):設定FPGA配置模式FPGA模式
- 小學生學習設計模式之單例模式設計模式單例
- laravel singleton 單例模式使用Laravel單例模式
- 小技巧
- 在C#中使用RabbitMQ做個簡單的傳送郵件小專案C#MQ
- 五個小技巧讓你寫出更好的 JavaScript 條件語句JavaScript
- Mybatis使用小技巧-自定義結果集MyBatis
- vue js 部分使用小技巧(持續更新)VueJS
- [譯] 五個小技巧讓你寫出更好的 JavaScript 條件語句JavaScript
- PostgreSQL的單使用者模式SQL模式
- linux的單使用者模式Linux模式
- Finder簡單人性化的隱藏小技巧分享~
- 韓語學習小技巧:怎樣快速記單詞
- [C++] template+struct 組合使用小技巧C++Struct
- Git使用小技巧之多個遠端倉庫Git
- MySQL使用小技巧(information_schema表空間)MySqlORM