【QT】QT樣式設計

QT樣式設計

  • 一、QT工程中添加資源文件
    • 1.資源文件:
    • 2. 添加步驟:
    • 3. 新增資源文件以及刪除現有的資源文件
    • 4. 使用資源文件
  • 二、QT中的qss語句(樣式設計語句)
    • 1. 樣式設計
    • 2.常見的qss語句
    • 示例代碼:

一、QT工程中添加資源文件

1.資源文件:

指的是QT程序中需要用到的素材(比如:圖片,音頻,視頻)

2. 添加步驟:

  • 在QT工程中新建一個文件夾,把需要的資源(圖片)全部存放到該文件夾中
    在這里插入圖片描述
  • 右鍵點擊工程名,選擇添加add new–》選擇QT–》QT resource file(資源文件)
    在這里插入圖片描述
  • 點擊添加–》添加前綴(add prefix),然后再次點擊添加–》添加文件(add files),把之前你準備好的資源添加進來并保存即可在左邊欄生成資源文件
    在這里插入圖片描述
    在這里插入圖片描述

3. 新增資源文件以及刪除現有的資源文件

  • 新增資源文件:右鍵點擊資源文件最頂層的目錄名,選擇添加現有文件即可
    在這里插入圖片描述
  • 刪除現有的資源文件:右鍵點擊資源文件名,選擇刪除文件即可
    在這里插入圖片描述

4. 使用資源文件

  • 右鍵點擊組件–》選擇改變樣式表–》選擇添加資源(三種不同的圖片樣式背景圖片、邊框圖片,圖片)
    在這里插入圖片描述

二、QT中的qss語句(樣式設計語句)

1. 樣式設計

\quad 指的是讓界面設計得更加好看(比如:文字顏色,背景圖片,改變倒角,文字對齊…)
QT中的樣式設計,就跟計算機前端(css)中設計網頁的樣式類似
右鍵改變樣式表–》打開QT的樣式編輯器(有局限性,只能讓你設置四種樣式)–》添加資源,添加漸變色,添加顏色,添加字體
如果你要設置其它樣式,需要程序員自己寫代碼(把所知道的qss語句寫在樣式表的下面)
在這里插入圖片描述

2.常見的qss語句

                     紅  綠   藍
background-color: rgb(85, 255, 255);   //設置背景顏色(按鈕,標簽的背景顏色)
color: rgb(85, 255, 255);             //設置前景色(文字的顏色)
background-image: url(:/new/prefix1/pic/3.jpg);  //設置背景圖片(不會拉伸圖片)background-image: url(你需要的圖片的絕對路徑);background-image: url(:你的資源文件的路徑名);區別:如果使用絕對路徑,就不需要加冒號如果使用資源文件的路徑就需要加冒號
border-image: url(:/new/prefix1/pic/2.jpg);      //設置邊框圖片(邊框圖片跟組件的大小保持一致)border-image: url(你需要的圖片的絕對路徑); 
border-radius:15px;    //把倒角設置為15個像素倒角的大小不能超過組件高度的一半
border:2px solid#ff0000;  //把邊框的寬度設置為2個像素,顏色設置成ff0000
QPushButton:pressed{  設置按鈕按下的時候背景圖片,主界面的樣式中使用background-image: url(:/button_down.png);
}
QPushButton:pressed#regBt{ 設置指定按鈕regBt按鈕按下時候背景圖片,主界面的樣式中使用background-image: url(:/button_down.png);
}
QPushButton:hover{  主界面的樣式中使用background-color:#ff00ff;  鼠標進入控件設置背景顏色
}
QMainWindow{border-image: url(:/new/prefix1/pic/3.jpg);}  //讓圖片只作用于主窗口

注意:

  • QT中路徑的寫法跟window不一樣
    比如:window路徑 C:\Users\PC\Desktop\share
    QT中要求改寫成: C:/Users/PC/Desktop/share
    QT工程存儲的路徑不可以使用中文路徑,但是QT的代碼中可以使用中文路徑
  • 資源文件路徑名跟非資源文件路徑名寫法的區別
    資源文件路徑名: 冒號/new/prefix1/image/某張圖片
    比如: :/new/prefix1/image/3.jpg
    非資源文件路徑名: C:/Users/Administrator/Desktop/share/1jpeg

示例代碼:

loginwin::loginwin(QWidget *parent): QMainWindow(parent), ui(new Ui::loginwin)
{ui->setupUi(this);//通過寫代碼把登錄界面的ui做出來//第一步:標簽//父窗口:這個組件(控件)等一會在哪個窗口上顯示,這個窗口就是父窗口QLabel *lb1=new QLabel("學生管理系統",this);//設置按鈕的坐標,寬高/*規律:任何組件,屬性都有對應的設置方法,方法的名字統一叫做setxxx()比如:屬性geometry --》對應的方法setGeometry()*/lb1->setGeometry(200,10,400,100);QFont myfont("楷體",24);lb1->setFont(myfont);//設置樣式lb1->setStyleSheet("color:rgb(255,0,0);");//第二步:兩個單行輸入框QLineEdit *le1=new QLineEdit(this);QLineEdit *le2=new QLineEdit(this);//設置坐標,寬高le1->setGeometry(220,130,300,50);le2->setGeometry(220,220,300,50);//設置默認提示文字le1->setPlaceholderText("請輸入用戶名");le2->setPlaceholderText("請輸入密碼");//設置用戶名,密碼位數le1->setMaxLength(8);le2->setMaxLength(8);//設置密碼隱藏le2->setEchoMode(QLineEdit::Password);//設置樣式le1->setStyleSheet("border:2px solid#ff0000;");le2->setStyleSheet("border:2px solid#ff0000;");//設置字體le1->setFont(myfont);le2->setFont(myfont);//第三步:兩個按鈕QPushButton *bt1=new QPushButton("登錄",this);QPushButton *bt2=new QPushButton("注冊",this);bt1->setFont(myfont);bt2->setFont(myfont);//設置坐標,寬高bt1->setGeometry(200,300,100,50);bt2->setGeometry(450,300,100,50);//給主窗口設置邊框圖片this->setStyleSheet("QMainWindow{border-image: url(C:/Users/Administrator/Desktop/share/4.jpeg);}");
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/73853.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/73853.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/73853.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Megatron-LM中的deepseek-v3實現

Megatron-LM:https://github.com/NVIDIA/Megatron-LM/tree/main 使用此倉庫構建的著名的庫也有很多,如: Colossal-AI, HuggingFace Accelerate, and NVIDIA NeMo Framework.Pai-Megatron-Patch工具是阿里人工智能平臺PAI算法團隊研發,ai-Megatron-Patch…

[mlr3] Bootstrap與交叉驗證k-fold cross validation

五折交叉驗證因其無放回分層抽樣和重復驗證機制,成為超參數調優的首選; 而Bootstrap因有放回抽樣的重復性和驗證集的不穩定性,主要服務于參數估計(置信區間的計算)而非調優。 實際應用中,可結合兩者優勢&am…

某大麥手機端-搶票

引言 僅供學習研究,歡迎交流 搶票難,難于上青天!無論是演唱會、話劇還是體育賽事,大麥網的票總是秒光。作為一名技術愛好者,你是否想過用技術手段提高搶票成功率?本文將為你揭秘大麥手機端搶票的核心技術…

最常使用的現代C++新特性介紹

現代 C泛指的是從 C11 之后的 C標準. 從 C11 開始, C標準委員會實行班車制, 沒三年發布一個新版本, 如果一個功能在新版本發布之前已經準備好, 則可以加入該版本中, 否則延后到下一個版本. 語言核心 自 C11 開始, 語言語法層面加了許多語法糖, 還有增加了一些新語法.使得 C語…

SQL Server:當在刪除數據庫時因為存在觸發器而無法刪除

當在刪除數據庫時因為存在觸發器而無法刪除,你可以通過禁用觸發器來解決這個問題。下面為你介紹在 SQL Server 里禁用和啟用觸發器的方法。 禁用數據庫中所有表的觸發器 你可以使用系統視圖 sys.triggers 來查詢數據庫里所有的觸發器,然后生成禁用這些…

【Linux篇】進程入門指南:操作系統中的第一步

步入進程世界:初學者必懂的操作系統概念 一. 馮諾依曼體系結構1.1 背景與歷史1.2 組成部分1.3 意義 二. 進程2.1 進程概念2.1.1 PCB(進程控制塊) 2.2 查看進程2.2.1 使用系統文件查看2.2.2 使?top和ps這些??級?具來獲取2.2.3 通過系統調用…

銷售易vs紛享銷客:制造行業CRM選型深度解析

“以客戶為中心”,顧名思義就是指讓客戶貫穿企業市場、研發、生產、銷售、服務全流程,以客戶需求為導向進行經營。CRM作為企業數字化建設基礎設施,在企業高質量發展進程中扮演著重要角色。在眾多CRM解決方案中,騰訊旗下CRM銷售易憑…

【JavaScript】九、JS基礎練習

文章目錄 1、練習:對象數組的遍歷2、練習:猜數字3、練習:生成隨機顏色 1、練習:對象數組的遍歷 需求:定義多個對象,存數組,遍歷數據渲染生成表格 let students [{ name: 小明, age: 18, gend…

代碼隨想錄day31 貪心part05

56.合并區間 以數組 intervals 表示若干個區間的集合,其中單個區間為 intervals[i] [starti, endi] 。請你合并所有重疊的區間,并返回 一個不重疊的區間數組,該數組需恰好覆蓋輸入中的所有區間 。 示例 1: 輸入:in…

《C++11:通過thread類編寫C++多線程程序》

關于多線程的概念與理解,可以先了解Linux下的底層線程。當對底層線程有了一定程度理解以后,再學習語言級別的多線程編程就輕而易舉了。 【Linux】多線程 -> 從線程概念到線程控制 【Linux】多線程 -> 線程互斥與死鎖 語言級別的…

c++位運算總結

在C中,位運算是對二進制位進行操作的運算,主要有以下幾種: 1. 按位與( & ):兩個操作數對應位都為1時,結果位才為1,否則為0。例如 3 & 5 , 3 二進制是 0000 0011…

1.1 計算機網絡的概念

首先來看什么是計算機網絡,關于計算機網絡的定義并沒有一個統一的標準,不同的教材有 不同的說法(這是王道書對于計算機網絡的定義),我們可以結合自己的生活經驗去體會這個 定義。 可以用不同類型的設備去連接計算機網絡…

用LLama factory時報類似Process 2504721 got signal: 1的解決方法

之前用nohup來遠程跑LLama factory微調腳本,是沒有問題的,但今天發現運行類似下面這個命令時, nohup llamafactory-cli train examples/train_qlora/qwen_lora.yaml 只要一關閉ssh session,就會終止訓練,報類似&…

python常用內置時間函數+藍橋杯時間真題

1.time 1.1 time.time() 時間戳指:1970年1月1日開始到現在所經過的秒數 import time print(time.time()) # 輸出可得1970年1月1日開始到執行此代碼所經過的秒數 1.2 time.localtime() 返回一個當前時間的時間對象,具體信息,并且可以單獨…

一個用 C 語言打印出所有三位數水仙花數的程序

水仙花數(Narcissistic number)是指一個三位數,其各位數字的立方和等于該數本身。例如:153 是一個水仙花數,因為 (1^3 5^3 3^3 153)。 以下是一個用 C 語言打印出所有三位數水仙花數的程序: 代碼實現 …

利用 VSCode 配置提升 vibe coding 開發效率

利用 VSCode 配置提升 vibe coding 開發效率 Vibe Coding(氛圍編程)是一種基于AI的編程方法,其核心在于通過自然語言描述軟件需求,再由大規模語言模型(LLM)自動生成代碼,從而實現對傳統手寫編程…

練習題:110

目錄 Python題目 題目 題目分析 需求理解 關鍵知識點 實現思路分析 代碼實現 代碼解釋 函數定義: 計算值的總和: 測試函數: 運行思路 結束語 Python題目 題目 定義一個函數,接受一個字典作為參數,返回字…

處理 Linux 信號:進程控制與異常管理的核心

個人主頁:chian-ocean 文章專欄-Linux 前言: 在 Linux 操作系統中,信號是用于進程間通信的一種機制,能夠向進程發送通知,指示某些事件的發生。信號通常由操作系統內核、硬件中斷或其他進程發送。接收和處理信號是 Li…

通信協議之串口

文章目錄 簡介電平標準串口參數及時序USART與UART過程引腳配置 簡介 點對點,只能兩設備通信只需單向的數據傳輸時,可以只接一根通信線當電平標準不一致時,需要加電平轉換芯片(一般從控制器出來的是信號是TTL電平)地位…

Unity編輯器功能及拓展(1) —特殊的Editor文件夾

Unity中的Editor文件夾是一個具有特殊用途的目錄,主要用于存放與編輯器擴展功能相關的腳本和資源。 一.糾纏不清的UnityEditor 我們Unity中進行游戲構建時,我們經常遇到關于UnityEditor相關命名空間丟失的報錯,這時候,只得將報錯…