Qt 的一些心得

2021-08-25 18:20:57 字數 1309 閱讀 1312

一. 背景刷成黑色,前景色設為白色。

方法一、paltette方式,經測試,該方法不會影響到其他控制項,推薦使用 qpalette bgpal = palette(); bgpal.setcolor (qpalette::background, qcolor (0, 0 , 0, 255)); (qpalette::background, qt::transparent); bgpal.setcolor (qpalette::foreground, qcolor (255,255,255,255)); setpalette (bgpal);

方法二、stylesheet方式 影響子控制項的方法是: setstylesheet ("background-color: rgb(0,0,0);color: rgb(255,255,255);"); 不影響子控制項的方法是: setstylesheet ("venus--titlebar ");

二. 圓角控制項 用stylesheet方式 setstylesheet ("border:2px groove gray;border-radius:10px;padding:2px 4px;");

三. 圓角視窗 roundrectwin::roundrectwin() 注意:mask的圖多餘部分設為白色

四. 半透明視窗

1.視窗整體透明,但是窗體上的控制項不透明。 通過設定窗體的背景色來實現,將背景色設定為全透。 qpalette pal = palette(); pal.setcolor(qpalette::background, qcolor(0x00,0xff,0x00,0x00)); setpalette(pal); 試驗效果: 窗體標題欄不透明; 窗體客戶區上的控制項不透明,qlabel控制項只是字顯示,控制項背景色透明; 窗體客戶區完全透明。 另外從網上看到的方法: setattribute(qt::wa_translucentbackground, true); 試驗的結果是類似於上面的方法,但有時候窗體會被一些雜色斑點填充,未找到原因。

2.視窗及其上面的控制項都半透明: setwindowopacity(0.7) 試驗效果:視窗及控制項都半透明。注意不能夠setwindowflags(qt::framelesswindowhint);要不就不起作用 3.視窗整體不透明,區域性透明: 在paint事件中使用clear模式繪圖。 void testwindow::paintevent( qpaintevent* ) 試驗效果:繪製區域全透明。如果繪製區域有控制項不會影響控制項。 以上實驗均是基於directfb的qte測試。在linux下及windows下效果會略有不同。 比如在windows下第3個實驗,繪製區域就是乙個黑窟窿,如果window本身半透,則是window下面的內容加上半透效果,不是全透明效果。

Qt 的一些心得

一.背景刷成黑色,前景色設為白色。方法一 paltette方式,經測試,該方法不會影響到其他控制項,推薦使用 qpalette bgpal palette bgpal.setcolor qpalette background,qcolor 0,0 0,255 qpalette background,...

QT程式設計的一些心得

qfile類 需要使用標頭檔案qfile 是用來讀寫二進位制和文字檔案的輸入 輸出裝置 常見的使用 qfile file qstring filename 構造乙個以filename為檔名的qfile物件,或者可以使用setname 函式來設定檔名 資料通常可以使用qdatastream或者qtex...

IOCP的一些心得

iocp的工作執行緒的個數一般設定為processors 2 2,這是綜合考慮了工作執行緒可能是等待 掛起 正在執行的狀態。如果你測試出更好的結果,以你的為標準。iocp的工作執行緒由系統排程和優化,不要去干預執行緒的排程,除非你自信能超越系統的排程。在遇到奇怪的問題時,可以嘗試減少iocp工作執行...