自學QT之QWidget設定setstylesheet無效的問題
這個問題在mainwindow裡是沒有的哦,但是單獨widget時候問題就出現了。當然,QT也提供瞭解決辦法的呢。
之前搜尋了一下,發現追蹤溯源還是來自QT的幫助手冊。
先上程式碼吧:
重寫paintevent事件以後就好了。void Widget::paintEvent(QPaintEvent *e) { QStyleOption opt; opt.initFrom(this); QPainter p(this); style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); QWidget::paintEvent(e); }
官方解釋:
我這裡使用了initFrom函式,和官方給的程式碼不一致,這個是因為幫助文件還沒有及時更新。在幫助文件的其他地方已經提示用這個新函式來替換了。
相關推薦
自學QT之QWidget設定setstylesheet無效的問題
這個問題在mainwindow裡是沒有的哦,但是單獨widget時候問題就出現了。當然,QT也提供瞭解決辦法的呢。 之前搜尋了一下,發現追蹤溯源還是來自QT的幫助手冊。 先上程式碼吧: void Widget::paintEvent(QPaintEvent *e) {
QT-繼承QWidget 設定樣式無效解決
在繼承QWidget時,我們在設定樣式表時,不會有效果。原因在於 QWidget的paintEvent函式實現為空。 此時,需要讓樣式表生效,有兩種方法: 不繼承QWidget,繼承QFrame。因
[Qt筆記]:QWidget設定背景圖片
QWidget - 設定背景圖片: //設定背景圖片 this->setAutoFillBackground(true); // 這句要加上, 否則可能顯示不出背景圖.
自學QT之實現QMessageBox的按鈕中文顯示
QT的資訊框彈出來以後,往往按鈕都是英文的,而這個體驗不是很好。我們需要實現的狀態如圖: 那麼如何實現呢? 看到網上說用setbuttontext()方法,這個是不可行的,因為官方文件有這麼一句話: Sets the text of the message box bu
自學QT之選單按鈕(按鈕選單)即帶有選單的按鈕
這個看起來很高大上呀,其實就是簡單的幾行程式碼而已。 只要把選單給按鈕就行了,要知道按鈕是有setmenu()方法的哦。 程式碼如下: QPushButton *mybtn=new QPushButton("這是一個按鈕"); QMenu *mymenu=new Q
自學QT之qss教程
這篇文章來自於QT的幫助文件,你要是看了最新版的,會發現講解得更棒。如果你的英文不是那麼好,或者說看著頭疼,那還是來看此篇吧。 在此之前說一個幫助文件的特別用法,絕不僅僅是搜單詞,QT的文件非常強大的,比如你要搜尋怎麼使用qss,可以這樣搜尋:how to use styl
自學QT之傳遞控制元件指標判斷是哪個控制元件被操作
假設你有一百個按鈕,需要知道是哪一個按鈕被單擊了。 如果採用一百個槽函式,那可真是坑爹了。所以我們必須把他們都連線到同一個槽,這在QT中是可以的。 那麼問題來了,我怎麼判斷是哪一個按鈕被單擊了呢? 很簡單哦,有個sender()函式。 嘗試搜尋,網上的說法就一行程式碼: Q
自學QT之顏色選擇對話方塊
新建一個基於對話方塊的工程,取消介面選項。 標頭檔案如下: #ifndef DIALOG_H #define DIALOG_H #include <QDialog> #include
自學QT之QSS面板美化教程
借鑑css的靈感, Qt也聲援Qt自己的css, 簡稱qss。同css相仿,qss的首要效能與最目標都是能使介面的體現與介面的元素分手,即質與形的分開,就好像一一己可以在不同的時候穿上不同的衣服一樣,css機制的引入,使得設計一種面板與介面控制元件分別的軟體成為也許,利用
自學QT之實現一個使用者資訊視窗
使用者資訊視窗如果用設計師介面來做當然是非常簡單了,但是為了鍛鍊自己的開發能力和對QT以及C++的深入理解,有必要用程式碼來進行操作。其實,程式碼比設計師介面更加靈活。看到程式碼多,不要害怕,其實程式碼中的大部分單詞只需要輸入開頭就可以自動補全的。 新建一個專案,基於對話方
Qt之textedit設定字型顏色
QString str; if (type == 0) { str = ">> 傳送 :"; ui->txtMain->setTextColor(QColor(100, 184, 255)); } else if (type == 1) {
Qt控制元件設定樣式無效問題可能情況
Qt Widget框架下,經常遇到在qss檔案中設定控制元件樣式無效的情況,讓人煩躁又摸不到頭腦。現總結可能情況如下: 1)父控制元件或者父控制元件的父控制元件在程式碼中設定了stylesheet,導
【Qt】Qt之設定QWidget背景色【轉】
簡述 QWidget是所有使用者介面物件的基類,這意味著可以用同樣的方法為其它子類控制元件改變背景顏色。 Qt中視窗背景的設定,下面介紹三種方法。 使用QPalette 使用Style Sheet 繪圖事件 一般我不用QSS設定視窗背景,也不建議使用。(這裡是對於視窗而,如果是子部件當
Qt 之設定 QWidget 背景色
簡述 QWidget是所有使用者介面物件的基類,這意味著可以用同樣的方法為其它子類控制元件改變背景顏色。 Qt中視窗背景的設定,下面介紹三種方法。 使用QPalette 使用Style Sheet 繪圖事件 一般我不用QSS設定視窗背景,也不建議使
PyQt5圖形和特效之Qt樣式表設定
前言 由於Qt樣式表的引入,定製Qt部件的外觀樣式變得非常簡單。無論你是想僅僅修改一個現有部件的外觀,還是想從零開始設計一套全新的介面風格,現在都有了一種新的方法而不必再去繼承並實現一個QStyle的子類。 1. 何為Qt樣式表
QT樣式表設定背景色 background-color無效的原因
例如我們給一個按鈕設定背景色為紅色:QPushButton { background-color: red; }結果發現,按鈕的背景色並沒有被設定為紅色!問題的原因,QT的幫助文件裡講了,比較難找,開啟幫助文件,依次展開->style sheet->
Qt之QSlider樣式表設定
最近,做了一些的的Qt的關於QSlider的樣式表。簡單的舉下例子:樣式表中的內容:QSlider::groove:horizontal { border: 0px solid #bbb; } Q
Qt之QLineEdit之透明設定
QLineEdit透明設定使用樣式表進行設定。 透明設定只需設定背景顏色設定的第四位透明設定位:background:rgb(255,0,0,0);,通產為了便於讀程式碼使用background:rg
QT QWidget設定窗體透明度方法彙總
1、設定窗體的背景色 在建構函式裡新增程式碼,需要新增標頭檔案qpalette或qgui QPalette pal = palette(); pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)
Qt 之設定應用程式圖示
簡述 應用程式圖示,通常顯示在應用程式的頂層視窗的左上角,通過呼叫QWindow:setWindowIcon()函式來實現。 為了改變可執行程式檔案本身的圖示,因為它被呈現在桌面上,必須採用另一種依賴於平臺的技術。 | 在Windows上設定應用程式圖