qt背景色
A. qt中如何修改按鈕的背景顏色
QPushButton *but = new QPushButton;
but->setStyleSheet("background-color: rgb(175,238,238)");
but->show() ;
幫助文檔有對該函數有很好的介紹,樓主可以自己回去看哦答。
B. Qt5 QPlainTextEdit怎麼設置背景顏色和文字的顏色
查查manual,
比如說QPalette
利用QPalette設置前景色,就是文本顏色,或者額背景色,就是背景顏色,調用setPalette
C. QT動態改變控制項背景顏色:用QPalette得到一個顏色m_penColor,如何讓一個pushb
QT動態改變控制項背景顏色:用QPalette得到一個顏色m_penColor,如何讓一個pushbutton動態的顯示m_penColor的顏色,color->setStyleSheet("background-color:XXXX;"),這個只內能靜態地改變控制項容的顏色,如何利用m_penColor動態改變按鍵顏色
D. qt中怎麼獲取父類QWidget控制項的背景色,我是要把它設置到他的子類控制項中去的
QWidget *widget = (QWidget*)(ui->pushButton->parent());
QPalette pal = widget->palette();
QBrush brush = pal.background();
QColor col = brush.color();
qDebug()<<col;
這樣就可以。調試已通回過。答
E. qt4.7.2如何設置程序窗口背景色
QPalette p = 窗口對象->palette();
p.setColor(QPalette::Window,color);
窗口對象-> setPalette(p);
可以用stylesheet來實現
F. qt中主窗口背景設置
以前遇到的很多小知識,從今天開始都一點一點記錄下來。。。
窗口背景無非兩種:背景色、背景圖片。Qt中窗口背景如何設置?下面介紹三種方法:
一、QPalette設置背景
二、實現paintEvent,使用QPainter來繪制背景
三、使用QSS來設置背景
關於QSS的使用不想多說,一般我不用QSS設置窗口背景,也不建議使用。(注意:這里是對於窗口而言)。如果是子部件當然可以。因為窗口使用QSS設置背景之後,若子部件不使用同樣的方式來設置,默認則會繼承父窗口的樣式
子部件一般情況下也不需要設置背景圖片,即使需要使用QSS也完全可以滿足。設置較多的是背景色與圖標,QSS中使用background或者background-color的方式可以實現背景色的設置,圖標則可以使用setPixmap或者setIcon來設置!
下面介紹QPalette以及paintEvent
一、QPalette設置背景
構造函數中可以使用如下方式:
(1)設置背景色
QPalette palette(this->palette());
palette.setColor(QPalette::Background, Qt::black);
this->setPalette(palette);
或:
QPalette palette;
palette.setBrush(this->backgroundRole(), Qt::black);
this->setPalette(palette);
這里setColor和setBrush都可以使用!
(2)設置背景圖片
QPixmap pixmap = QPixmap(":/qm/safe").scaled(this->size());
QPalette palette(this->palette());
palette.setBrush(QPalette::Background, QBrush(pixmap));
this->setPalette(palette);
上面方式無論設置背景色還是背景圖片QPalette::Background與this->backgroundRole()是等價的!
二、paintEvent設置背景
(1)設置背景色
void IIIMark::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setBrush(Qt::black);
painter.drawRect(this->rect());
}
(2)設置背景圖片
void IIIMark::paintEvent(QPaintEvent *)
{
QPixmap pixmap = QPixmap(":/qm/safe").scaled(this->size());
QPainter painter(this);
painter.drawPixmap(this->rect(), pixmap);
}
注意:
(1)以上都是用scaled方式對圖片進行了適應窗口大小的設置,因為所給的圖片大小不一定滿足要求,所以採用此方式!當然圖片經過拉伸或者壓縮之後會變形(純色圖片除外),所以對圖片採用此方式時需要注意。
(2)設置背景范圍的時候如果需要充滿整個窗口最好使用this->rect(),因為我看到很多人在使用QRect(0, 0, 400, 400)之類的語句,那麼如果窗口大小改變了呢?此句是不是要跟著變呢?
(3)如果需要背景圖片或者背景色隨可以發生改變時,也就是所謂的換膚功能,則採用paintEvent的方式,在需要改變的時候使用update()來進行更新。
(4)this->setAutoFillBackground(true)又讓我想起了tr(),被很多人濫用。這句話在什麼時候使用呢?不妨採用QPalette設置背景的方式加上與去掉這句話對比一下(在有父窗口的情況下使用)。如果這個QWidget直接show,則有背景色,如果放到一個父窗口中,就沒有效果。添加該句即可!
G. qt中怎樣在stylesheet中設置按鈕的背景色
、利用style sheet給窗體設置背景
使用stylesheet設置背景圖片還是有一些要注意的,如果是在mainwindow和dialog中,直接右鍵change style sheet在add resource中選擇background-image或者border-image,選擇資源文件中的圖片就行了(前者是按像素顯示圖片,後者可根據窗體大小來自動縮放圖片,通常使用後者,前者如果界面與圖片大小不一樣,則背景的顯示可能就不是整張圖片了),
a、但在widget中就不行,你會發現,用同樣的方法,背景並沒有發生改變,而僅僅是它的子窗體背景圖片發生了改變。
那麼在widget中要如何做呢,我們在widget中放置一個frame,然後對frame通過stylesheet設置背景,後面窗體里所有的部件都放在這個frame里。
b、 我們知道,子窗體會繼承父窗體的屬性,也就是說,父窗體的背景,在子窗體中也會有,那如何讓子窗體不繼承父窗體的背景呢,同樣的,還是在Edit Style Sheet里,需要輸入如下代碼:(這樣就可以解決窗體中的按鍵、QLable等控制項與主窗體的一樣。)
#desktop {
border-image: url(:/images/desktop.jpg);
}
#desktop * {
border-image:url();
}
desktop是你的窗體名。
2、不過也可以通過如下代碼來實現:
QWidget *widget = new QWidget();
widget->setAutoFillBackground(true);
QPalette palette;
QPixmap pixmap(":/Resources/Penguins.jpg");
palette.setBrush(QPalette::Window, QBrush(pixmap));
widget->setPalette(palette);
widget->show();
一般我喜歡使用前面去設計,在ui中進行,方便簡單。
H. qt 中怎麼設置標簽的背景顏色
Qt5 QPlainTextEdit設置背景顏色代碼如下:
codeeditor->setStyleSheet("background-color:lightYellow;");
文字的顏色設置:
QPlainTextEdit edit;
QPalette p = edit.palette();
p.setColor(QPalette::Active, QPalette::Base, Qt::red);
p.setColor(QPalette::Inactive, QPalette::Base, Qt::red);
edit.setPalette(p);
Qt 是一個1991年由奇趣科技開發的跨平台C++圖形用戶界面應用程序開發框架。它既可以開發GUI程序,也可用於開發非GUI程序,比如控制台工具和伺服器。Qt是面向對象的框架,使用特殊的代碼生成擴展(稱為元對象編譯器(Meta Object Compiler, moc))以及一些宏,易於擴展,允許組件編程。2008年,奇趣科技被諾基亞公司收購,QT也因此成為諾基亞旗下的編程語言工具。2012年,Qt被Digia收購。2014年4月,跨平台集成開發環境Qt Creator 3.1.0正式發布,實現了對於iOS的完全支持,新增WinRT、Beautifier等插件,廢棄了無Python介面的GDB調試支持,集成了基於Clang的C/C++代碼模塊,並對Android支持做出了調整,至此實現了全面支持iOS、Android、WP。
I. QT背景色擋住畫線
直接在你畫線哪個paintEvent(QPaintEvent *),最前面先繼承你這個窗口的基類就好。回
void xxxx::paintEvent(QPaintEvent *e){
QWidget::paintEvent(e);
//////畫線。。答。
}