[QT筆記]用圖片自定義QCheckBox樣式
阿新 • • 發佈:2019-01-22
https://blog.csdn.net/yueashuxia/article/details/52366355
記錄一下大致的過程,避免將來忘記。
實現環境:Qt Creator 3.2.1 Based on Qt5.3.2 (GCC 4.9.2, 32bit)
專案型別:Qt Widgets Application
1.首先在專案中新增Qt資原始檔,命名為resource.qrc。
2.然後在資原始檔中新增字首,預設是/new/prefix1,我將它改為/CheckBox。
3.然後向/CheckBox中新增檔案checked.png、uncheked.png、checkedDisabled.png。
新增檔案時,選中某個專案資料夾以外路徑下的圖片後,會提示“無效的檔案路徑,檔案/***/***/checked.png 沒有在資原始檔的子目錄中,您可以選擇此檔案到一個有效的路徑”。此時選擇“複製”,將圖片複製到專案資料夾下。可以在專案資料夾裡面建立資料夾res,進入該資料夾後,選擇“儲存”。之後也是將圖片儲存到res資料夾下。
4.在檔案管理器中開啟專案資料夾下的res資料夾,新建"myStyle.qss"檔案,用文字編輯器開啟,填寫以下內容然後儲存:
- QCheckBox{
- spacing: 5px;
- }
- QCheckBox::indicator{
- width: 15px;
- height: 15px;
- }
- QCheckBox::indicator:unchecked{
- image:url(:/CheckBox/res/unchecked.png);
- }
- QCheckBox::indicator:checked{
- image:url(:/CheckBox/res/checked.png);
- }
- QCheckBox::indicator:checked:disabled{
- image:url(:/CheckBox/res/checkedDisabled.png);
- }
5.在/CheckBox字首中新增myStyle.qss檔案,這一次不必複製到專案資料夾下,因為它已經在專案資料夾下了。
6.儲存資原始檔resource.qrc。
7.接著在main.cpp檔案中新增程式碼,讀取qss檔案並設定程式為自定義的樣式:
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- //獲取並設定程式為自定義樣式
- QFile styleSheet(":/CheckBox/res/myStyle.qss");
- styleSheet.open(QIODevice::ReadOnly);
- a.setStyleSheet(styleSheet.readAll());
- MainWindows w;
- w.show();
- return a.exec();
- }
8.然後可以在程式中新增CheckBox檢視效果:
9.QCheckBox可以支援自定義的效果還有很多,以下是Qt Style Sheets Examples當中關於QCheckBox樣式的示例:
- QCheckBox {
- spacing: 5px;
- }
- QCheckBox::indicator {
- width: 13px;
- height: 13px;
- }
- QCheckBox::indicator:unchecked {
- image: url(:/images/checkbox_unchecked.png);
- }
- QCheckBox::indicator:unchecked:hover {
- image: url(:/images/checkbox_unchecked_hover.png);
- }
- QCheckBox::indicator:unchecked:pressed {
- image: url(:/images/checkbox_unchecked_pressed.png);
- }
- QCheckBox::indicator:checked {
- image: url(:/images/checkbox_checked.png);
- }
- QCheckBox::indicator:checked:hover {
- image: url(:/images/checkbox_checked_hover.png);
- }
- QCheckBox::indicator:checked:pressed {
- image: url(:/images/checkbox_checked_pressed.png);
- }
- QCheckBox::indicator:indeterminate:hover {
- image: url(:/images/checkbox_indeterminate_hover.png);
- }
- QCheckBox::indicator:indeterminate:pressed {
- image: url(:/images/checkbox_indeterminate_pressed.png);
- }
擴充套件閱讀:Qt Style Sheet實踐(三):QCheckBox和QRadioButton