WHAT'S NEW?
Loading...

Chrome擴充功能: 網頁去廣告Adblock Plus

當上司經過你的電腦,他對圖片印象比較深刻?還是網站內容?


如圖一所示,我想一般人都會從圖片來判斷你的瀏覽內容.另一方面,若你逛廣告很多的網站,尤其是線上漫畫或小說,這些網站通常讓電腦被惡意軟體(malmare)攻擊機會加大.因此,關掉JavaScript 和Plugin來擋掉能解決問題

然而,關掉JavaScript會使網站某些功能不能使用.如圖一的Cambridge英文字典為例,若你關掉此網站的JavaScript,你就無法使用發音功能.因此,若你想保留網站的JavaScript功能的話,你可以使用Adblock Plus封鎖掉廣告讓經過的人不會誤解你的瀏覽內容,而且也保護你的電腦.

圖一.Cambridge英文字典

去廣告網站

  • Facebook
  • YouTube
  • Cambridge Dictionary
  • 大陸線上漫畫
  • 其他包含廣告網頁

安裝

  1. 首先, 請到以下的網頁,點選『Install for Chrome』安裝套件.

  2. https://adblockplus.org/en/chrome
    

    圖二.安裝Adblock Plus


  3. 接著,,選擇『不允許任何網站使用我的攝影機或麥克風

  4. 圖三.確認安裝


  5. 最後,在右上角出現Adblock Plus的標誌和顯示封鎖廣告數,成功將Cambridge Dictionaries的廣告去掉.

  6. 圖四.成功遮蔽廣告

Qt物件導向:繼承

為什麼需要繼承其他類別?

圖一.繼承QComboBox

之前描述類別就如同產品設計圖可量產產品,程式設計者藉由宣告類別變數產生多個物件.然而,產品設計圖是會變動的,若直接在此設計圖塗改,就再也無法生產舊產品,因此我們通常會將舊的設計圖保存,新的設計圖將以此為範本來擴展產品功能.接下來,我將解釋繼承原理和實作.

如圖一所示,被繼承的類別QComboBox稱為『父類別』,而繼承的類別MyComboBox是『子類別』.
MyComboBox is a QComboBox= QComboBox is extended by MyComboBox

繼承在英文經常用『 is a』描述父子類別的關係.簡單來說,MyComboBox是一個QComboBox,而MyComoBox以QComboBox為基礎擴充.若不懂,請你思考父親與男人所代表的意義!父親是一個男人,然而父親多了照顧小孩的責任.也就是說,即使這個男人多了扮演父親角色,不會改變他是一個男人.總而言之,子類別將擁有父類別的所有特性,也能對父類別進行功能擴展和修改,最重要的是子類別的任何修改都不會影響父類別.

到目前為止,我想你應該充分了解什麼是繼承,接下來將教你如何實作圖一.MyComoBox主要擁有提示訊息功能,並且解決之前在QComboBox使用技巧一文中所提到使用者可編輯的問題.此範例根據GitHub-QtProject的範例修正QComboBox的功能.


程式碼

#ifndef MYCOMOBOX_H
#define MYCOMOBOX_H

#include <QComboBox>

class MyComoBox : public QComboBox
{
    Q_OBJECT

public:
    explicit MyComoBox(QWidget *parent) :
        QComboBox(parent)
    {
        placeholder=QStringLiteral("請選擇縣市");
     //this->insertItem(0,placeholder);
    }
private:
    QString placeholder;

protected:
    void focusOutEvent(QFocusEvent *e)
    {
        QComboBox::focusOutEvent(e);
        if(this->findText(placeholder)!=-1)
        {
            this->removeItem(this->findText(placeholder));
        }
    }

};

#endif // MYCOMOBOX_H



說明

  1. placeholder: 顯示QComoboBox的提示訊息.
  2. override focusOutEvent 成員函數:主要發生在當使用者打開下拉式選單,由於placeholder不提供使用者選擇,因此我們需要移除此項目.首先,我們利用findText尋找是否有此選項.若有,呼叫removeItem移除此項目.
  3. 宣告此類別變數時,依照你的需求請手動加以下指令或改寫以上的程式碼.
  4. if(MyComoBox->findText(placeholder))
      MyComoBox->insertItem(0,placeholder);
    MyComoBox->setCurrentIndex(0);
    

結果


Chrome隱私權(續): 防止網站竊聽和偷窺


你知道有網站會偷聽你麥克風內容嗎?


如下圖所示,Chrome在Omnibox提示使用者此網站正在存取麥克風內容.Chrome的語音搜尋帶來許多人方便,然而不當的使用將洩漏你的資料.

若你一旦允許網站存取你的攝影機和麥克風,你在任意時間進入此網站,它都可以知道你說了什麼.最糟的是,若網站具有木馬或病毒的話,它可以不經允許存取你的麥克風和內容,即使你離開此網站.PCWorld指出惡意網站可利用彈跳視窗和未顯示存取麥克風圖示下,它繼續存取你在電腦前說得任意內容.換句話說,如果惡意網站跳出廣告視窗,你卻忘記或關掉它繼續拜訪其他網站時,此網站在你沒有查覺到情況下繼續偷聽你的說話和竊取影像.

圖一.語音搜尋功能