1. 程式人生 > >【Qt】Qt之設定QWidget背景色【轉】

【Qt】Qt之設定QWidget背景色【轉】

簡述

QWidget是所有使用者介面物件的基類,這意味著可以用同樣的方法為其它子類控制元件改變背景顏色。

Qt中視窗背景的設定,下面介紹三種方法。

  1. 使用QPalette
  2. 使用Style Sheet
  3. 繪圖事件

一般我不用QSS設定視窗背景,也不建議使用。(這裡是對於視窗而,如果是子部件當然可以)。因為視窗使用QSS設定背景之後,若子部件不使用同樣的方式來設定,預設則會繼承父視窗的樣式。

使用QPalette

使用QPalette來設定背景色

m_pWidget = new QWidget(this);
m_pWidget->setGeometry(0, 0, 300, 100
); QPalette pal(m_pWidget->palette()); //設定背景黑色 pal.setColor(QPalette::Background, Qt::black); m_pWidget->setAutoFillBackground(true); m_pWidget->setPalette(pal); m_pWidget->show();

使用Style Sheet

m_pWidget = new QWidget(this);
m_pWidget->setGeometry(0, 0, 300, 100);
m_pWidget->
setStyleSheet("background-color:black;"); m_pWidget->show();

如果從QWidget子類化一個Widget,為了能夠使用樣式表則需要為自定義Widget提供paintEvent事件。

void CustomWidget::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);

    QStyleOption opt;
    opt.init(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle
::PE_Widget, &opt, &p, this); }

繪圖事件

重寫paintEvent,使用QPainter來繪製背景。

void Widget::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);

    QPainter p(this);
    p.setPen(Qt::NoPen);
    p.setBrush(Qt::black);
    p.drawRect(rect());
}

相關推薦

QtQt設定QWidget景色

簡述 QWidget是所有使用者介面物件的基類,這意味著可以用同樣的方法為其它子類控制元件改變背景顏色。 Qt中視窗背景的設定,下面介紹三種方法。 使用QPalette 使用Style Sheet 繪圖事件 一般我不用QSS設定視窗背景,也不建議使用。(這裡是對於視窗而,如果是子部件當

Qt 設定 QWidget 景色

簡述 QWidget是所有使用者介面物件的基類,這意味著可以用同樣的方法為其它子類控制元件改變背景顏色。 Qt中視窗背景的設定,下面介紹三種方法。 使用QPalette 使用Style Sheet 繪圖事件 一般我不用QSS設定視窗背景,也不建議使

QT設計部件景色

ack 主界面 disable tracking avi blue line popu 基本 一、使用QT樣式表設計部件外觀 樣式表使用文本描寫敘述,能夠使用QApplication::setStyleSheet()函數將其設置到整個應用程序上。也能夠使用QWid

Mac-NO.161.Mac.1 -MacOS 中環境變數設定 zsh: command not found: xxx

Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of Mastery:5 Practical Level:5 Desired Goal:5 Arc

vue大師晉級路第一集:Vue基礎第6章——條件渲染

條件渲染 v-if 在字串模板中,比如 Handlebars,我們得像這樣寫一個條件塊: <!-- Handlebars 模板 --> {{#if ok}} <h1>Yes</h1> {{/if}} 在 Vue 中,我們使用 v-if

vue大師晉級路第一集:Vue基礎第5章——Class 與 Style 繫結

Class 與 Style 繫結 操作元素的 class 列表和內聯樣式是資料繫結的一個常見需求。因為它們都是屬性,所以我們可以用 v-bind 處理它們:只需要通過表示式計算出字串結果即可。不過,字串拼接麻煩且易錯。因此,在將 v-bind 用於 class 和 style 時,Vue

vue大師晉級路第一集:Vue基礎第4章——計算屬性和偵聽器

計算屬性 模板內的表示式非常便利,但是設計它們的初衷是用於簡單運算的。在模板中放入太多的邏輯會讓模板過重且難以維護。例如: <div id="example"> {{ message.split('').reverse().join('') }} </div&g

vue大師晉級路第一集:Vue基礎第3章——模版語法

模板語法 Vue.js 使用了基於 HTML 的模板語法,允許開發者宣告式地將 DOM 繫結至底層 Vue 例項的資料。所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循規範的瀏覽器和 HTML 解析器解析。 在底層的實現上,Vue 將模板編譯成虛擬 DOM 渲染函式。結

vue大師晉級路第一集:Vue基礎第2章——Vue 例項

建立一個 Vue 例項 每個 Vue 應用都是通過用 Vue 函式建立一個新的 Vue 例項開始的: var vm = new Vue({ // 選項 }) Vue 應用由一個通過 new Vue 建立的根 Vue 例項,以及可選的巢狀的、可複用的元件樹組成。

vue大師晉級路第一集:Vue基礎第1章——介紹

背景 Vue (讀音 /vjuː/,類似於 view) 是一套用於構建使用者介面的漸進式框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。Vue 的核心庫只關注檢視層,不僅易於上手,還便於與第三方庫或既有專案整合。另一方面,當與現代化的工具鏈以及各種支援類庫結合使用時,

vue大師晉級路第一集:Vue基礎第8章——事件處理

事件處理 監聽事件 可以用 v-on 指令監聽 DOM 事件,並在觸發時執行一些 JavaScript 程式碼。 <div id="example-1"> <button v-on:click="counter += 1">Add 1<

Bootstrap初體驗匯入模板完成第一個例項

首先在Bootstrap中文網中找到導航欄,點選元件 可以看到頁面右邊提供了很多元件 我們隨便選一個,點選導航條,下拉可以看到關於例項的程式碼 我們將程式碼複製到webstorm裡,直接新增到<body>標籤中,什麼都不用再加然後點選執行,發現效

myeclipse修改成舒服的景色

程式猿啊!眼睛傷不起啊!一天到晚盯著程式碼呀!眼睛要保護啊有木有!…… 收集了修改背景色的方法,不過我按照裡面的方法改myeclipse的字型顏色改不了,本來是打算改成黑底白字的,看到有大神的介面是那樣,但是因為字型顏色改不了只好把底色改成綠色了……要是有誰知道為什麼字型顏

Android Material適配 為控制元件設定指定景色和點選波紋效果

大部分時候,我們都需要為控制元件設定指定背景色和點選效果 4.x以下可以使用selector,5.0以上需要帶波紋效果,以下是實現該效果的方法。 比如實現Button的Material適配 <Button android:text

Android自定義TextView 自定義設定圓角景色

public class RoundTextView extends TextView {  private int mBgColor = 0;  private int mCornerSize = 18; public RoundTextView(Context cont

VC 設定靜態文字框的景色

填充靜態文字框的顏色: 1、在對話方塊中新增一個靜態文字框,設定其id為IDC_STATIC 2、獲得靜態文字框的控制代碼 HWND h_static = GetDlgItem(IDC_STATIC)->m_hWnd; 3、獲得靜態文字框的DC控制代碼 HDC hdc = ::GetDC(h_sta

CSS設定DIV景色漸變顯示

<style type="text/css"> .linear{ width:100%; height:600px; FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientTy

VS2013 舒服的字型設定景色

使用字型:Fixedsys Excelsior 3.01 2、安裝字型:控制面板 -> 字型,複製下載的檔案進去。 3、開啟VS2010,工具 -> 選項 -> 環境 -> 字型和顏色,選擇Fixedsys字型,選擇字型大小為12 4、設定背景色:色調=123,飽和度=19

Android TextView 設定文字景色或文字顏色

String str="這是設定TextView部分文字背景顏色和前景顏色的demo!"; int bstart=str.indexOf("背景"); int bend=bstart+"背景".length(); int fstart=str.indexOf("前景")

設定Eclipse配色方案--設定不同景色,有效護眼

經常用電腦的童鞋們長時間的看螢幕會導致眼睛發澀發酸,而且長時間看一種色調的背景會讓感覺太單調了,這樣也不利於保護眼睛。 現在我說一下自己的一些經驗,希望可以幫助那些曾經像我一樣“”求而不得“”的朋友。一般來說有三種方法: 一、大家常用的一種方法設定Eclipse的屬性:Wi