国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

做網(wǎng)站的崗位有什么好的推廣平臺

做網(wǎng)站的崗位,有什么好的推廣平臺,WordPress推薦中文插件,做美股的數(shù)據(jù)網(wǎng)站1. QLineEdit QLineEdit 用來表示單行輸入框.可以輸入一段文本,但是不能換行 核心屬性 屬性說明text輸入框中的文本inputMask輸入內(nèi)容格式約束maxLength最大長度frame是否添加邊框echoMode顯示方式. QLineEdit::Normal :這是默認(rèn)值,文本框會顯示輸入的文本。QLineE…

1. QLineEdit

QLineEdit 用來表示單行輸入框.可以輸入一段文本,但是不能換行

核心屬性

屬性說明
text輸入框中的文本
inputMask輸入內(nèi)容格式約束
maxLength最大長度
frame是否添加邊框
echoMode顯示方式.
QLineEdit::Normal :這是默認(rèn)值,文本框會顯示輸入的文本。
QLineEdit::Password:在這種模式下,輸入的字符會被隱藏,通常用星號(*)或等號(=)代替。
QLineEdit::NoEcho:在這種模式下,文本框不會顯示任何輸入的字符。
cursorPosition光標(biāo)所在位置
alignment文字對齊方式,設(shè)置水平和垂直方向的對齊
dragEnabled是否允許拖拽
readOnly是否是只讀的(不允許修改)
placeHolderText當(dāng)輸入框內(nèi)容為空的時候,顯示什么樣的提示信息
clearButtonEnabled是否會自動顯示出“清除按鈕"

核心信號

屬性說明
void cursorPositionChanged(intold, int new)當(dāng)鼠標(biāo)移動時發(fā)出此信號,old為先前的位置,new為新位置。
void editingFinished()當(dāng)按返回或者回車鍵時,或者行編輯失去焦點時,發(fā)出此信號。
void returnPressed()當(dāng)返回或回車鍵按下時發(fā)出此信號
如果設(shè)置了驗證器,必須要驗證通過,才能觸發(fā)
void selectionchanged()當(dāng)選中的文本改變時,發(fā)出此信號。
void textChanged(constQString &text)當(dāng)QLineEdit中的文本改變時,發(fā)出此信號,text是新的文本。
代碼對文本的修改能夠觸發(fā)這個信號.
void textEdited(const Qstring&text))當(dāng)QLineEdit中的文本改變時,發(fā)出此信號,text是新的文本。代碼對文本的修改不能觸發(fā)這個信號,

代碼示例:錄入個人信息

  1. 在界面上創(chuàng)建三個輸入框和兩個單選按鈕,一個普通按鈕
    三個輸入框的 objectName 為lineEdit_name,lineEdit_passwordlineEdit_phone
    兩個單選按鈕的 objectName 為 radioButton_male,radioButton_female
    按鈕的 objectName 為 pushButton
    在這里插入圖片描述
  2. 編寫 widget.cpp,在構(gòu)造函數(shù)中編寫初始化代碼
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 讓用戶輸入個人信息ui->lineEdit_name->setPlaceholderText("請輸入你的名字");ui->lineEdit_name->setClearButtonEnabled(true);// 輸入密碼ui->lineEdit_password->setPlaceholderText("請輸入你的密碼");ui->lineEdit_password->setClearButtonEnabled(true);// 顯示密碼的模式ui->lineEdit_password->setEchoMode(QLineEdit::Password);// 輸入電話ui->lineEdit_phone->setPlaceholderText("請輸入你的電話");ui->lineEdit_phone->setClearButtonEnabled(true);// 顯示電話號碼的格式ui->lineEdit_phone->setInputMask("000-0000-0000");}
  1. 繼續(xù)修改 widget.cpp,給按鈕添加 slot 函數(shù)
void Widget::on_pushButton_submit_clicked()
{QString ate=ui->radioButton_man->isChecked() ? "男" : "女";qDebug()<<"姓名:"<< ui->lineEdit_name->text();qDebug()<<"密碼:"<< ui->lineEdit_password->text();qDebug()<<"性別:"<< ate;qDebug()<<"電話:"<< ui->lineEdit_phone->text();
}
  1. 執(zhí)行程序,可以看到,隨著用戶輸入內(nèi)容之后,點擊按鈕,就能打印到輸入的信息
    在這里插入圖片描述

inputMask 只能進(jìn)行簡單的輸入格式校驗,實際開發(fā)中,基于正則表達(dá)式的方式是更核心的方法

正則表達(dá)式,本質(zhì)上就是一個帶有特殊字符的字符串,特殊字符用來表示另一個字符串的特征此時就可以借助正則表達(dá)式來描述出一些具有一定特點的字符串.

代碼示例:使用正則表達(dá)式驗證輸入框的數(shù)據(jù)此處要求在輸入框中輸入一個合法的電話號碼(1 開頭,11 位,全都是數(shù)字).如果驗證不通過,則確定按鈕無法點擊.

  1. 在界面上創(chuàng)建輸入框和一個按鈕
    在這里插入圖片描述
  2. 編寫 widget.cpp,把按鈕初始 enabled 設(shè)為 false.給輸入框添加驗證器,
    使用 QRegExp 創(chuàng)建一個正則表達(dá)式對象。“^1\d{10}$”表示"以1開頭,后面跟上任意的10個十進(jìn)制數(shù)字”.
    使用 QRegExpValidator 創(chuàng)建一個驗證器對象.Qt 中內(nèi)置了四個主要的驗證器對象
    在這里插入圖片描述
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 驗證正則表達(dá)式// 需要給單行輸入框設(shè)置驗證器,基于正則表達(dá)式完成驗證QRegExp regexp("^1\\d{10}$");// 設(shè)置驗證器ui->lineEdit->setValidator(new QRegExpValidator(regexp));}

在這里插入圖片描述

  1. 編寫 widget.cpp,給 lineEdit 添加 textEdited 信號的 slot 函數(shù)
    on_lineEdit_textEdited 的參數(shù)是當(dāng)前輸入框的內(nèi)容
    通過 lineEdit->validator()獲取到內(nèi)置的驗證器
    通過 validate 方法驗證文本是否符合要求,
    第一個參數(shù)填寫的是要驗證的字符串,由于參數(shù)要求是 QString&而不是 const。QString&,需要把這個變量復(fù)制一下,
    第二個參數(shù)是一個int&,是輸出型參數(shù),當(dāng)驗證的字符串不匹配時,返回這個字符串的長度.(沒有。啥實質(zhì)作用).
    返回值是一個枚舉,QValidator::Acceptable 表示驗證通過QValidator::Invalid 表示驗證不通過
void Widget::on_lineEdit_textEdited(const QString &text)
{QString context=text;int pos=0;if (ui->lineEdit->validator()->validate(context,pos)==QValidator::Acceptable){// 驗證通過ui->pushButton->setEnabled(true);}else {// 驗證不通過ui->pushButton->setEnabled(false);}}
  1. 執(zhí)行程序,觀察效果,可以看到此時嘗試輸入字母是無法輸入的,并且只有當(dāng)輸入的內(nèi)容符合要求,確
    定按鈕才能被使用.
    在這里插入圖片描述

代碼示例:驗證兩次輸入的密碼一致

  1. 在界面上創(chuàng)建兩個輸入框和一個label
    在這里插入圖片描述
  2. 編寫代碼,設(shè)置兩個輸入框的 echoMode 為 Password
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 驗證兩次輸入的密碼一致// 設(shè)置密碼格式ui->lineEdit->setEchoMode(QLineEdit::Password);ui->lineEdit_2->setEchoMode(QLineEdit::Password);
}
  1. 給兩個輸入框設(shè)置 textEdited slot函數(shù)
void Widget::Compare()
{// 獲取輸入的密碼QString s1 = ui->lineEdit->text();QString s2 = ui->lineEdit_2->text();if(s1.isEmpty() && s2.isEmpty()){ui->label->setText("密碼為空");}else if(s1==s2){ui->label->setText("輸入的密碼一致");}else{ui->label->setText("輸入的密碼不一致");}
}void Widget::on_lineEdit_textEdited(const QString &arg1)
{Compare();
}void Widget::on_lineEdit_2_textEdited(const QString &arg1)
{Compare();
}
  1. 執(zhí)行程序,觀察效果,可以看到當(dāng)兩個輸入框內(nèi)的密碼相同時,就會提示密碼相同
    在這里插入圖片描述

代碼示例:切換顯示密碼

  1. 創(chuàng)建一個輸入框和一個復(fù)選按鈕
    在這里插入圖片描述
  2. 修改 widget.cpp,設(shè)置輸入框的 echoMode為 Password
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 用復(fù)選框點擊改變密碼的顯示模式// 默認(rèn)情況下ui->lineEdit->setEchoMode(QLineEdit::Password);}
  1. 修改widget.cpp,給 checkBox 添加 slot 函數(shù)
void Widget::on_checkBox_toggled(bool checked)
{if(checked){ui->lineEdit->setEchoMode(QLineEdit::Normal);}else{ui->lineEdit->setEchoMode(QLineEdit::Password);}
}
  1. 執(zhí)行程序,可以看到切換復(fù)選框的狀態(tài),就可以控制輸入框顯示密碼
    在這里插入圖片描述

2. QTextEdit

QTextEdit 表示多行輸入框,也是一個富文本&markdown 編輯器并且能在內(nèi)容超出編輯框范圍時自動提供滾動條

核心屬性

屬性說明
markdown輸入框內(nèi)持有的內(nèi)容.支持 markdown 格式.能夠自動的對markdown 文本進(jìn)行渲染成 html
html輸入框內(nèi)持有的內(nèi)容.可以支持大部分 html標(biāo)簽.包括 img和 table 等
placeHolderText輸入框為空時提示的內(nèi)容
readOnly是否是只讀的
undoRedoEnable是否開啟 undo/redo 功能
按下 ctrl+z觸發(fā) undo按下 ctrl+y觸發(fā) redo
autoFormating開啟自動格式化.
tabstopWidth按下縮進(jìn)占多少空間
overwriteMode是否開啟覆蓋寫模式
acceptRichText是否接收富文本內(nèi)容
verticalScrollBarPolicy垂直方向滾動條的出現(xiàn)策略
verticalScrollBarPolicy垂直方向滾動條的出現(xiàn)策略
Qt::ScrollBarAsNeeded:根據(jù)內(nèi)容自動決定是否需要滾動條。這是默認(rèn)值。
Qt::ScrollBarAlwaysOff:總是關(guān)閉滾動條。
Qt::ScrollBarAlwaysOn:總是顯示滾動條。
horizontalScrollBarPolicy水平方向滾動條的出現(xiàn)策略
Qt::ScrollBarAsNeeded:根據(jù)內(nèi)容自動決定是否需要滾動條。這是默認(rèn)值。
Qt::ScrollBarAlwaysOff:總是關(guān)閉滾動條。
Qt::ScrollBarAlwaysOn:總是顯示滾動條。

核心信號

信號說明
textChanged()文本內(nèi)容改變時觸發(fā)
selectionChanged()選中范圍改變時觸發(fā)
cursorPositionChanged()光標(biāo)移動時觸發(fā)
undoAvailable(bool)可以進(jìn)行 undo 操作時觸發(fā)
redoAvailable(bool)可以進(jìn)行 redo 操作時觸發(fā)
copyAvaiable(bool)文本被選中/取消選中時觸發(fā)

代碼示例: 獲取多行輸入框的內(nèi)容

  1. 創(chuàng)建一個多行輸入框和一個label
    在這里插入圖片描述
  2. 給多行輸入框添加 slot函數(shù).處理 textChanged 信號
    通過 toPlainText 方法獲取到內(nèi)部的文本.
    類似的,QTextEdit 還提供了 toMarkdown 和 toHtml.根據(jù)需要我們調(diào)整不同的獲取方式
void Widget::on_textEdit_textChanged()
{const QString& content = ui->textEdit->toPlainText();qDebug() << content;ui->label->setText(content);
}
  1. 執(zhí)行程序,可以看到當(dāng)輸入框中的內(nèi)容發(fā)生變化時,label 中的內(nèi)容同步發(fā)生改變
    在這里插入圖片描述

3. QComboBox

表示下拉框QComboBox

核心屬性

屬性說明
currentText當(dāng)前選中的文本
currentindex當(dāng)前選中的條目下標(biāo)
從 0開始計算.如果當(dāng)前沒有條目被選中,值為-1
editable是否允許修改
設(shè)為 true 時,QComboBox 的行為就非常接近 QLineEdit,也可以設(shè)置 validator
iconSize下拉框圖標(biāo)(小三角)的大小
maxCount最多允許有多少個條目

核心方法

方法說明
addltem(const QString&)添加一個條目
currentindex()獲取當(dāng)前條目的下標(biāo)
從 0開始計算.如果當(dāng)前沒有條目被選中,值為-1
currentText()獲取當(dāng)前條目的文本內(nèi)容

核心信號

方法說明
activated(int)
activated(const QString & text)
當(dāng)用戶選擇了一個選項時發(fā)出這個時候相當(dāng)于用戶點開下拉框,并且鼠標(biāo)劃過某個選項,此時還沒有確認(rèn)做出選擇,
currentindexChanged(int)
currentindexChanged(const QString& text)
當(dāng)前選項改變時發(fā)出.
此時用戶已經(jīng)明確的選擇了一個選項
用戶操作或者通過程序操作都會觸發(fā)這個信號
editTextChanged(const QString & text)當(dāng)編輯框中的文本改變時發(fā)出(editable 為 true 時有效)

代碼示例:使用下拉框模擬麥當(dāng)勞點餐

  1. 在界面上創(chuàng)建三個下拉框,和一個按鈕,
    在這里插入圖片描述
  2. 編寫 widget.cpp,初始化三個下拉框的內(nèi)容
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 模擬麥當(dāng)勞點餐// 給ComboBox添加ui->comboBox->addItem("雞腿堡");ui->comboBox->addItem("巨無霸");ui->comboBox->addItem("培根書崔雙層牛堡");ui->comboBox_2->addItem("中薯條");ui->comboBox_2->addItem("麥樂雞塊");ui->comboBox_2->addItem("麥辣雞翅");ui->comboBox_3->addItem("可樂");ui->comboBox_3->addItem("雪碧");ui->comboBox_3->addItem("芬達(dá)");
}
  1. 編寫 widget.cpp,給按鈕添加 slot 函數(shù)
void Widget::on_pushButton_clicked()
{qDebug()<<ui->comboBox->currentText() <<", "<<ui->comboBox_2->currentText() <<", "<<ui->comboBox_3->currentText();
}
  1. 執(zhí)行程序,可以看到,在點擊確定按鈕時,就能獲取到當(dāng)前下拉框中選中的內(nèi)容
    在這里插入圖片描述

代碼示例2: 從文件中加載下拉框的選項很多時候下拉框的選項并非是固定的,而是通過讀取文件/讀取網(wǎng)絡(luò)獲取到的

  1. 在界面上創(chuàng)建一個下拉框
    在這里插入圖片描述
  2. 創(chuàng)建 E:/code/1.txt 文件
    在這里插入圖片描述
  3. 修改 widget.cpp,從文件中讀取選項
    使用 ifstream 打開文件
    使用 getline 讀取每一行
    使用 QString::fromstdstring 把 std::string 轉(zhuǎn)成 QString
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 需要讀取文件內(nèi)容,把文件的每一行都讀出來,作為一個ComboBox 的選項std::fstream file("E:/code/1.txt");// 判斷文件是否被打開if(!file.is_open()){qDebug()<<"文件打開失敗";return;}// 按行來讀取文本std::string line;while(std::getline(file,line)){// 取到的每一行的內(nèi)容,添加的下拉菜單中ui->comboBox->addItem(QString::fromStdString(line));}file.close();
}
  1. 執(zhí)?程序, 可以看到?件內(nèi)容已經(jīng)被加載到下拉框中
    在這里插入圖片描述

4. QSpinBox

使用 QSpinBox 或者 QDoubleSpinBox 表示"微調(diào)框",它是帶有按鈕的輸入框.可以用來輸入整數(shù)/浮點數(shù).通過點擊按鈕來修改數(shù)值大小.
由于 SpinBox 和 QDoubleSpinBox 用法基本相同,就只介紹 SpinBox 的使用了
在這里插入圖片描述

QSpinBox 關(guān)鍵屬性

屬性說明
value存儲的數(shù)值.
singlestep每次調(diào)整的"步長".按下一次按鈕數(shù)據(jù)變化多少
displayInteger數(shù)字的進(jìn)制.例如 displayInteger 設(shè)為 10,則是按照 10 進(jìn)制表示. 設(shè)為 2 則為 2進(jìn)制表示.
minimum最小值
maximum最大值
suffix后綴
prefix前綴
wrapping是否允許換行
frame是否帶邊框
alignment文字對齊方式
readOnly是否允許修改
buttonSymbol按鈕上的圖標(biāo).
UpDownArrows 上下箭頭形式
PlusMinus 加減號形式
NoButtons 沒有按鈕
accelerated(加速的)按下按鈕時是否為快速調(diào)整模式
correctionMode輸入有誤時如何修正
1. QAbstractSpinBox::CorrectToPreviousValue:如果用戶輸入了一個無效的值(例如,在只能顯示正整數(shù)的SpinBox中輸入了負(fù)數(shù)),那么SpinBox會恢復(fù)為上一個有效值。例如,如果SpinBox的初始值是1,用戶輸入了-1(無效),然后SpinBox會恢復(fù)為1。
2. QAbstractSpinBox::CorrectToNearestValue:如果用戶輸入了一個無效的值,SpinBox會恢復(fù)為最接近的有效值。例如,如果SpinBox的初始值是1,用戶輸入了-1(無效),那么SpinBox會恢復(fù)為0。
keyboardTrack是否開啟鍵盤跟蹤.
設(shè)為 true,每次在輸入框輸入一個數(shù)字,都會觸發(fā)一次 valueChanged() 和textChanged()信號.
設(shè)為 false,只有在最終按下 enter 或者輸入框失去焦點,才會觸發(fā)valueChanged()和textChanged()信號

核心信號

信號說明
textChanged(QString)微調(diào)框的文本發(fā)生改變時會觸發(fā)參數(shù) QString 帶有 前綴 和 后綴
valueChanged(int)微調(diào)框的文本發(fā)生改變時會觸發(fā)參數(shù) int,表示當(dāng)前的數(shù)值,

代碼示例:調(diào)整麥當(dāng)勞購物車中的份數(shù)

  1. 在界面上創(chuàng)建下列內(nèi)容
    三個下拉框:objectName為comboBox到comboBox_3三個微調(diào)框:objectName為spinBox到spinBox_3-個按鈕:objectName為pushButton
    在這里插入圖片描述
  2. 編寫代碼,修改 widget.cpp,給下拉框設(shè)置初始值
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 模擬實現(xiàn)麥當(dāng)勞選餐,并且用微調(diào)框進(jìn)行需要選擇的個數(shù)// 先設(shè)置下拉框ui->comboBox->addItem("麥辣雞腿堡");ui->comboBox->addItem("巨無霸");ui->comboBox->addItem("培根書崔雙層牛堡");ui->comboBox_2->addItem("中薯條");ui->comboBox_2->addItem("麥樂雞塊");ui->comboBox_2->addItem("麥辣雞翅");ui->comboBox_3->addItem("可樂");ui->comboBox_3->addItem("雪碧");ui->comboBox_3->addItem("芬達(dá)");// 設(shè)置微調(diào)框的范圍ui->spinBox->setRange(1,5);ui->spinBox_2->setRange(1,5);ui->spinBox_3->setRange(1,5);// 設(shè)置初始值ui->spinBox->setValue(1);ui->spinBox_2->setValue(1);ui->spinBox_3->setValue(1);}
  1. 編寫代碼,給按鈕添加 slot 函數(shù)
void Widget::on_pushButton_clicked()
{qDebug()<<"當(dāng)前下單的內(nèi)容"<<ui->comboBox->currentText()<<","<<ui->spinBox->value()<<ui->comboBox_2->currentText()<<","<<ui->spinBox_2->value()<< ui->comboBox_3->currentText()<<","<<ui->spinBox_3->value();
}
  1. 執(zhí)行程序,可以看到當(dāng)用戶選擇不同的內(nèi)容時,點擊按鈕就能獲取到對應(yīng)的結(jié)果,同時我們也無法輸入一些超出范圍的非法值.
    在這里插入圖片描述

5. QDateTimeEdit

使? QDateEdit 作為?期的微調(diào)框
在這里插入圖片描述

使用 QTimeEdit 作為時間的微調(diào)框
在這里插入圖片描述

使用 ODateTimeEdit 作為時間日期的微調(diào)框
在這里插入圖片描述
這幾個控件用法非常相似,我們以 QDateTimeEdit 為例進(jìn)行介紹

QDateTimeEdit 核?屬性

屬性說明
dateTime時間日期的值.形如 2000/1/1 0:00:00
date單純?nèi)掌诘闹?形如 2001/1/1
time單純時間的值.形如0:00:00
displayFormat時間日期格式.形如 yyyy/M/d H:mm
  • y 表示年份
  • M 表示月份
  • d 表示日期
  • H 表示小時
  • m 表示分鐘
  • s 表示秒
    注意:這里的格式化符號的含義,不要記憶,不同語言/庫的設(shè)定規(guī)則是存在差異的.一定是用的時候再去查,
minimumDateTime最小時間日期
maximumDateTime最大時間日期
timeSpec
  • Qt::LocalTime :顯示本地時間。
  • Qt::UTC:顯示協(xié)調(diào)世界時(UTC)。
  • Qt::0ffsetFromUTc:顯示相對于UTC的偏移量(時差)

核?信號

信號說明
dateChanged(QDate)?期改變時觸發(fā).
timeChanged(QTime)時間改變時觸發(fā).
dateTimeChanged(QDateTime)時間?期任意?個改變時觸發(fā).

代碼示例: 實現(xiàn)日期計算器

  1. 在界面上創(chuàng)建兩個 QDateTimeEdit 和一個按鈕,一個label
    ODateTimeEdit的objectName 為dateTimedit old 和 dateTimeEdit new
    在這里插入圖片描述
    2)編寫計算按鈕的 slot 函數(shù)
  • 使用 daysTo 函數(shù)可以計算兩個日期的天數(shù)
  • 使用 secsTo
  • 函數(shù)可以計算兩個時間的秒數(shù)
  • 通過(秒數(shù) /3600)換算成小時數(shù),再余上 24 得到零幾個小時使用 Qstring::number 把整數(shù)轉(zhuǎn)成 QString 進(jìn)行拼接
void Widget::on_pushButton_clicked()
{// 首先獲取兩個日期的當(dāng)前日期QDateTime dateOld = ui->dateTimeEdit->dateTime();QDateTime dateNew = ui->dateTimeEdit_2->dateTime();qDebug()<<dateOld<<dateNew;// 計算兩個日期的差值天數(shù)//int days=dateOld.daysTo(dateNew);// 會有缺陷,如果差值小于24小時,會多算一天// 計算兩個日期的差值秒數(shù)int seconds=dateOld.secsTo(dateNew);// 計算多余的小時int hours=(seconds/3600)%24;int days=(seconds/3600)/24;// 把計算結(jié)果輸出到label中ui->label->setText(QString("持續(xù)愛你已經(jīng)")+ QString(days)+QString("天")+QString(hours)+ QString("小時"));
}
  1. 執(zhí)?程序, 觀察結(jié)果
    在這里插入圖片描述

6. QDial

使用 QDial 表示一個 旋鈕
在這里插入圖片描述

核心屬性

屬性說明
value持有的數(shù)值,
minimum最小值
maximum最大值
singleStep按下方向鍵的時候改變的步長
pageStep按下 pageUp/pageDown 的時候改變的步長
sliderPosition界面上旋鈕顯示的 初始位置
tracking外觀是否會跟蹤數(shù)值變化
默認(rèn)值為 true.一般不需要修改
wrapping是否允許循環(huán)調(diào)整
即數(shù)值如果超過最大值,是否允許回到最小值,(調(diào)整過程能否"套圈")
notchesVisible是否顯示 刻度線
notchTarget刻度線之間的相對位置
數(shù)字越大,刻度線越稀疏

核心信號

屬性說明
valueChanged(int)數(shù)值改變時觸發(fā)
rangeChanged(int, int)范圍變化時觸發(fā)

代碼示例:調(diào)整窗口透明度

  1. 在界面上創(chuàng)建一個旋鈕和一個label
    在這里插入圖片描述
  2. 編寫 widget.cpp,對旋鈕初始化
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 設(shè)置可以循環(huán)旋轉(zhuǎn)ui->dial->setWrapping(true);// 設(shè)置刻度線可?ui->dial->setNotchesVisible(true);// 設(shè)置最?值為ui->dial->setMaximum(100);// 設(shè)置最?值為ui->dial->setMinimum(0);// 設(shè)置初始值為ui->dial->setValue(100);
}
  1. 編寫 widget.cpp,設(shè)置旋鈕的 valuechanged slot函數(shù)
void Widget::on_dial_valueChanged(int value)
{ui->label->setText(QString("當(dāng)前不透明度為: ") + QString::number(value));this->setWindowOpacity((double)value / 100);
}
  1. 運行程序,觀察效果,可以看到隨著拖動旋鈕旋轉(zhuǎn),不透明度發(fā)生明顯變化
    在這里插入圖片描述

7. QSlider

使? QSlider 表??個滑動條.
在這里插入圖片描述

QSlider 和 QDial 都是繼承自 QAbstractslider,因此用法上基本相同

核心屬性

屬性說明
value持有的數(shù)值.
minimum最小值
maximum最大值
singleStep按下方向鍵的時候改變的步長,
pageStep按下pageUp/pageDown 的時候改變的步長,
sliderPosition滑動條顯示的 初始位置
tracking外觀是否會跟蹤數(shù)值變化,
默認(rèn)值為 true.一般不需要修改.
orientation滑動條的方向是水平還是垂直
invertedAppearance是否要翻轉(zhuǎn)滑動條的方向
tickPosition刻度的位置.
tickinterval刻度的密集程度

核心信號

屬性說明
valueChanged(int)數(shù)值改變時觸發(fā)
rangeChanged(int, int)范圍變化時觸發(fā)

代碼示例: 通過自定義快捷鍵調(diào)整滑動條位置設(shè)置 -減小 value,設(shè)置=增加 value.默認(rèn)情況下滑動條****可以通過 方向鍵 或者 pageUp/pageDown 調(diào)整大小.

  1. 在界面上創(chuàng)建滑動條和 label
    在這里插入圖片描述
  2. 編寫 Widget.cpp 代碼
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 使用快捷鍵,- 和 =(也就相當(dāng)于+),來調(diào)節(jié)滾動條// 1.設(shè)置快捷鍵QShortcut *st1=new QShortcut(this);st1->setKey(QKeySequence("-"));QShortcut *st2=new QShortcut(this);st2->setKey(QKeySequence("="));// 2.用connect函數(shù)進(jìn)行信號與槽的連接connect(st1,&QShortcut::activated,this,&Widget::mudValue);connect(st2,&QShortcut::activated,this,&Widget::addValue);}void Widget::addValue()
{// 獲取當(dāng)前的數(shù)值int value=ui->horizontalSlider->value();if(value>=ui->horizontalSlider->maximum()){return;}ui->horizontalSlider->setValue(value+5);
}void Widget::mudValue()
{// 獲取當(dāng)前的數(shù)值int value=ui->horizontalSlider->value();if(value<=ui->horizontalSlider->minimum()){return;}ui->horizontalSlider->setValue(value-5);}void Widget::on_horizontalSlider_valueChanged(int value)
{ui->label->setText("當(dāng)前的數(shù)值為:"+ QString::number(value));
}
http://aloenet.com.cn/news/41359.html

相關(guān)文章:

  • 如何做網(wǎng)站數(shù)據(jù)庫朝陽區(qū)搜索優(yōu)化seosem
  • 長春電商網(wǎng)站建設(shè)哪家好seo如何挖掘關(guān)鍵詞
  • 幾十元做網(wǎng)站營銷團(tuán)隊找產(chǎn)品合作
  • 如何做泛解析網(wǎng)站百度知道怎么賺錢
  • wordpress建站教程主題推廣手段
  • 醫(yī)療美容培訓(xùn)網(wǎng)站建設(shè)站長之家關(guān)鍵詞挖掘工具
  • 為某網(wǎng)站做網(wǎng)站推廣策劃方案制作網(wǎng)站的工具
  • 網(wǎng)站上名片如何做鄭州網(wǎng)站推廣報價
  • 廈門做網(wǎng)頁網(wǎng)站的公司企業(yè)官網(wǎng)建站
  • 老年大學(xué)網(wǎng)站建設(shè)網(wǎng)絡(luò)軟文
  • 手機兼職賺錢平臺飛豬關(guān)鍵詞排名優(yōu)化
  • 叢臺企業(yè)做網(wǎng)站推廣成人英語培訓(xùn)班哪個機構(gòu)好
  • 個人建網(wǎng)站教程seo工資多少
  • 做哪些網(wǎng)站不受法律保護(hù)廣告設(shè)計與制作
  • 畢業(yè)設(shè)計網(wǎng)站設(shè)計說明書寧波seo免費優(yōu)化軟件
  • 金川做網(wǎng)站公司網(wǎng)絡(luò)推廣代運營公司
  • 免費建站自己的網(wǎng)址域名注冊查詢官網(wǎng)
  • 網(wǎng)站建設(shè)好以后怎么管理百度關(guān)鍵詞搜索量統(tǒng)計
  • 數(shù)據(jù)庫網(wǎng)站制作北京seo推廣系統(tǒng)
  • 搜索引擎優(yōu)化大致包含哪些內(nèi)容或環(huán)節(jié)河北seo推廣公司
  • 建一個素材網(wǎng)站多少錢杭州網(wǎng)站制作排名
  • 廣州市荔灣區(qū)疫情最新消息重慶可靠的關(guān)鍵詞優(yōu)化研發(fā)
  • 可以做婚禮鮮花布置的網(wǎng)站外貿(mào)推廣平臺哪個好
  • 工業(yè)企業(yè)網(wǎng)站建設(shè)費教育培訓(xùn)網(wǎng)站官網(wǎng)
  • 寶安網(wǎng)站制作公司合肥網(wǎng)絡(luò)seo推廣服務(wù)
  • wordpress圖片站點網(wǎng)站制作網(wǎng)站推廣
  • it培訓(xùn)網(wǎng)站模板seo小白入門教學(xué)
  • 做棋牌網(wǎng)站建設(shè)哪家便宜免費數(shù)據(jù)查詢網(wǎng)站
  • 免費網(wǎng)站制作案例汽車宣傳軟文
  • 微擎如何做網(wǎng)站百度我的訂單app