做網(wǎng)站軟件 手機(jī)seo搜索引擎優(yōu)化營(yíng)銷案例
我們?cè)谑褂肣t開發(fā)時(shí),經(jīng)常會(huì)遇到Windows上應(yīng)用正常,但到Linux嵌入式下就會(huì)出現(xiàn)莫名奇妙的問題。這篇文章就舉例分析下:
1.QPushButton按鈕外側(cè)虛線框問題
Windows下QPushButton按鈕設(shè)置樣式正常,但到了Linux下就會(huì)有一個(gè)虛線邊框。這就需要在QPushButton按鈕的樣式表里加上一句:“outline: none;”才能解決這個(gè)問題。
整個(gè)樣式表里這樣設(shè)置才能消除虛線邊框:
QPushButton{//前景色color: rgba(255, 255, 255, 1);//字體font: bold normal 20px "Source Han Sans CN";//背景色background-color: transparent;//邊框圖片border-image:url(:/image/Image/btm_btn_ok1_n.png);//設(shè)置輪廓為無(wú),避免出現(xiàn)虛線邊框outline: none;
}
QPushButton:hover, QPushButton:pressed, QPushButton:checked{
//按下選中的圖片border-image:url(:/image/Image/btm_btn_ok1_p.png);
}
2.鼠標(biāo)箭頭問題
Windows下,Qt開發(fā)的桌面應(yīng)用程序,沒有鼠標(biāo)箭頭(其實(shí)也有,只不過歸附到系統(tǒng)桌面上了),但移植到Linux開發(fā)板上,程序左上角就會(huì)出現(xiàn)鼠標(biāo)箭頭。
這是由于Linux嵌入式開發(fā)板上本身沒有桌面,你的程序就被當(dāng)作系統(tǒng)桌面了。想要整個(gè)程序中都不出現(xiàn)鼠標(biāo),可以在main函數(shù)中,實(shí)例化了QApplication 后通過添加“app.setOverrideCursor(Qt::BlankCursor);”可以解決這個(gè)問題(當(dāng)然還有其它解決方式)。
整體代碼如下:
int main(int argc, char *argv[]) {QApplication app(argc, argv);QMainWindow window;window.show();// 這是將鼠標(biāo)設(shè)置為沙漏(等待)狀態(tài)//QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));//這是將鼠標(biāo)設(shè)置為不可見app.setOverrideCursor(Qt::BlankCursor);//這是恢復(fù)鼠標(biāo)為可見//app.setCursor(Qt::ArrowCursor); //顯示正常鼠標(biāo)return app.exec();
}
如果只希望在某個(gè)QWidget下不出現(xiàn)鼠標(biāo)光標(biāo),其他QWidget下正常,則要對(duì)這個(gè)widget調(diào)用
QWidget::setCursor(QCursor(Qt::BlankCursor));
這樣該頁(yè)面鼠標(biāo)就消失,其他頁(yè)面窗口仍將出現(xiàn)鼠標(biāo).