超碰91资源站-超碰97豆花-超碰97人妻-超碰97人人干-超碰97人人香蕉-超碰97天天操-超碰97在线资源站-超碰97资源站共享-超碰97资源站总站-超碰aa在线91-超碰av操-超碰爱爱

半岛外围网上直营

「Qt Widget中文示例指南」如何創建一個計算器?(二)

翻譯|使用教程|編輯:龔雪|2023-11-29 10:39:35.137|閱讀 165 次

概述:本文將為大家介紹Qt Widget的模擬計算器的示例,歡迎下載最新版組件體驗~

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

相關鏈接:

Qt 是目前最先進、最完整的跨平臺C++開發工具。它不僅完全實現了一次編寫,所有平臺無差別運行,更提供了幾乎所有開發過程中需要用到的工具。如今,Qt已被運用于超過70個行業、數千家企業,支持數百萬設備及應用。

本文將展示如何使用信號和槽來實現計算器小部件的功能,以及如何使用QGridLayout在網格中放置子小部件。在上文中(點擊這里回顧>>)為大家介紹了實現計算器的Calculator類定義,本文將主要介紹Calculator類是如何實現的,持續關注我們哦~

Qt技術交流群:166830288      歡迎一起進群討論

Qt Widget中文示例指南圖集
計算器示例的屏幕截圖

這個例子由兩個類組成:

  • Calculator是計算器小部件,具有計算器的所有功能。
  • Button是用于每個計算器按鈕的小部件,它派生自QToolButton。

我們將從回顧計算器開始,然后再看看按鈕。

Calculator類實現
Calculator::Calculator(QWidget *parent)
: QWidget(parent), sumInMemory(0.0), sumSoFar(0.0)
, factorSoFar(0.0), waitingForOperand(true)
{

在構造函數中,初始化計算器的狀態。pendingAdditiveOperator和pendingMultiplicativeOperator變量不需要顯式初始化,因為構造函數將它們初始化為空字符串。也可以直接在header文件中初始化這些變量,這稱為成員初始化,避免了長初始化列表。

display = new QLineEdit("0");
display->setReadOnly(true);
display->setAlignment(Qt::AlignRight);
display->setMaxLength(15);

QFont font = display->font();
font.setPointSize(font.pointSize() + 8);
display->setFont(font);

我們創建了表示計算器顯示的 ,并設置了它的一些屬性,特別地我們將其設置為只讀。

我們還將顯示器的字體放大了8個點。

for (int i = 0; i < NumDigitButtons; ++i)
digitButtons[i] = createButton(QString::number(i), &Calculator::digitClicked);

Button *pointButton = createButton(tr("."), &Calculator::pointClicked);
Button *changeSignButton = createButton(tr("\302\261"), &Calculator::changeSignClicked);

Button *backspaceButton = createButton(tr("Backspace"), &Calculator::backspaceClicked);
Button *clearButton = createButton(tr("Clear"), &Calculator::clear);
Button *clearAllButton = createButton(tr("Clear All"), &Calculator::clearAll);

Button *clearMemoryButton = createButton(tr("MC"), &Calculator::clearMemory);
Button *readMemoryButton = createButton(tr("MR"), &Calculator::readMemory);
Button *setMemoryButton = createButton(tr("MS"), &Calculator::setMemory);
Button *addToMemoryButton = createButton(tr("M+"), &Calculator::addToMemory);

Button *divisionButton = createButton(tr("\303\267"), &Calculator::multiplicativeOperatorClicked);
Button *timesButton = createButton(tr("\303\227"), &Calculator::multiplicativeOperatorClicked);
Button *minusButton = createButton(tr("-"), &Calculator::additiveOperatorClicked);
Button *plusButton = createButton(tr("+"), &Calculator::additiveOperatorClicked);

Button *squareRootButton = createButton(tr("Sqrt"), &Calculator::unaryOperatorClicked);
Button *powerButton = createButton(tr("x\302\262"), &Calculator::unaryOperatorClicked);
Button *reciprocalButton = createButton(tr("1/x"), &Calculator::unaryOperatorClicked);
Button *equalButton = createButton(tr("="), &Calculator::equalClicked);

對于每個按鈕,我們使用適當的文本標簽和連接到按鈕的插槽調用私有createButton()函數。

QGridLayout *mainLayout = new QGridLayout;
mainLayout->setSizeConstraint(QLayout::SetFixedSize);
mainLayout->addWidget(display, 0, 0, 1, 6);
mainLayout->addWidget(backspaceButton, 1, 0, 1, 2);
mainLayout->addWidget(clearButton, 1, 2, 1, 2);
mainLayout->addWidget(clearAllButton, 1, 4, 1, 2);

mainLayout->addWidget(clearMemoryButton, 2, 0);
mainLayout->addWidget(readMemoryButton, 3, 0);
mainLayout->addWidget(setMemoryButton, 4, 0);
mainLayout->addWidget(addToMemoryButton, 5, 0);

for (int i = 1; i < NumDigitButtons; ++i) {
int row = ((9 - i) / 3) + 2;
int column = ((i - 1) % 3) + 1;
mainLayout->addWidget(digitButtons[i], row, column);
}

mainLayout->addWidget(digitButtons[0], 5, 1);
mainLayout->addWidget(pointButton, 5, 2);
mainLayout->addWidget(changeSignButton, 5, 3);

mainLayout->addWidget(divisionButton, 2, 4);
mainLayout->addWidget(timesButton, 3, 4);
mainLayout->addWidget(minusButton, 4, 4);
mainLayout->addWidget(plusButton, 5, 4);

mainLayout->addWidget(squareRootButton, 2, 5);
mainLayout->addWidget(powerButton, 3, 5);
mainLayout->addWidget(reciprocalButton, 4, 5);
mainLayout->addWidget(equalButton, 5, 5);
setLayout(mainLayout);

setWindowTitle(tr("Calculator"));
}

布局由單個處理,()調用確保Calculator小部件始終顯示為其最佳大小(其大小提示),從而防止用戶調整計算器的大小,大小提示由子小部件的大小和大小策略決定。

大多數子部件只占用網格布局中的一個單元格,對于這些我們只需要將一行和一列傳遞給QGridLayout::addWidget()。display、backspaceButton、clearButton和clearAllButton小部件占用多于一列,對于這些我們還必須船體一個行空間和一個列空間。

void Calculator::digitClicked()
{
Button *clickedButton = qobject_cast<Button *>(sender());
int digitValue = clickedButton->text().toInt();
if (display->text() == "0" && digitValue == 0.0)
return;

if (waitingForOperand) {
display->clear();
waitingForOperand = false;
}
display->setText(display->text() + QString::number(digitValue));
}

按下計算器的數字按鈕時將發出按鈕的clicked()信號,該信號將觸發digitClicked()插槽。

首先我們先使用()找出哪個按鈕發送了信號,這個函數以QObject指針的形式返回發送方。因為我們知道發送方是一個Button對象,所以可以安全地強制轉換。本來可以使用C風格的強制轉換或c++ static_cast<>(),但作為一種防御性編程技術,我們使用()。這樣做的好處是,如果對象的類型錯誤,則返回空指針??罩羔槍е碌谋罎⒈炔话踩珡?制轉換導致的崩潰更容易診斷。有了按鈕后,我們使用QToolButton::text()提取操作符。

插槽需要特別考慮兩種情況,如果顯示包含“0”,而用戶點擊了“0”按鈕,那么顯示“00”將是愚蠢的。如果計算器處于等待新操作數的狀態,新數字就是新操作數的第一位;在這種情況下,必須首先清除先前計算的任何結果。

最后,我們將新數字附加到顯示的值后面。

void Calculator::unaryOperatorClicked()
{
Button *clickedButton = qobject_cast<Button *>(sender());
QString clickedOperator = clickedButton->text();
double operand = display->text().toDouble();
double result = 0.0;

if (clickedOperator == tr("Sqrt")) {
if (operand < 0.0) {
abortOperation();
return;
}
result = std::sqrt(operand);
} else if (clickedOperator == tr("x\302\262")) {
result = std::pow(operand, 2.0);
} else if (clickedOperator == tr("1/x")) {
if (operand == 0.0) {
abortOperation();
return;
}
result = 1.0 / operand;
}
display->setText(QString::number(result));
waitingForOperand = true;
}

每當單擊一個一元操作符按鈕時,就調用unaryOperatorClicked()插槽,再次使用QObject::sender()獲取指向被單擊按鈕的指針。操作符從按鈕的文本中提取并存儲在clickoperator中,操作數從display中獲得。

然后我們執行這個操作,如果Sqrt應用于負數或1/x到零,調用abortOperation()。如果一切順利,我們將在行編輯中顯示操作的結果,并將waitingForOperand設置為true。這確保了如果用戶鍵入一個新數字,該數字將被視為一個新的操作數,而不是附加到當前值。

void Calculator::additiveOperatorClicked()
{
Button *clickedButton = qobject_cast<Button *>(sender());
if (!clickedButton)
return;
QString clickedOperator = clickedButton->text();
double operand = display->text().toDouble();

當用戶單擊+或-按鈕時調用additiveOperatorClicked()槽。

在對單擊的操作符進行實際操作之前,我們必須處理所有掛起的操作。從乘法運算符開始,因為它們的優先級高于加法運算符:

if (!pendingMultiplicativeOperator.isEmpty()) {
if (!calculate(operand, pendingMultiplicativeOperator)) {
abortOperation();
return;
}
display->setText(QString::number(factorSoFar));
operand = factorSoFar;
factorSoFar = 0.0;
pendingMultiplicativeOperator.clear();
}

如果之前已經單擊了x或÷,而沒有隨后單擊=,則顯示中的當前值是x或÷操作符的右操作數,我們最終可以執行該操作并更新顯示。

if (!pendingAdditiveOperator.isEmpty()) {
if (!calculate(operand, pendingAdditiveOperator)) {
abortOperation();
return;
}
display->setText(QString::number(sumSoFar));
} else {
sumSoFar = operand;
}

如果前面已經單擊了+或-,則sumSoFar是左操作數,而顯示的當前值是操作符的右操作數。如果沒有掛起的加法運算符,則簡單地將sumSoFar設置為顯示中的文本。

pendingAdditiveOperator = clickedOperator;
waitingForOperand = true;
}

最后,我們可以處理剛剛點擊的操作符。由于還沒有右操作數,所以將單擊的操作符存儲在pendingAdditiveOperator變量中。稍后當有一個右操作數,而左操作數為sumSoFar時,將應用該操作。

void Calculator::multiplicativeOperatorClicked()
{
Button *clickedButton = qobject_cast<Button *>(sender());
if (!clickedButton)
return;
QString clickedOperator = clickedButton->text();
double operand = display->text().toDouble();

if (!pendingMultiplicativeOperator.isEmpty()) {
if (!calculate(operand, pendingMultiplicativeOperator)) {
abortOperation();
return;
}
display->setText(QString::number(factorSoFar));
} else {
factorSoFar = operand;
}

pendingMultiplicativeOperator = clickedOperator;
waitingForOperand = true;
}

multiplicativeOperatorClicked()插槽類似于additiveOperatorClicked(),不需要擔心掛起的加法運算符,因為乘法運算符優先于加法運算符。

void Calculator::equalClicked()
{
double operand = display->text().toDouble();

if (!pendingMultiplicativeOperator.isEmpty()) {
if (!calculate(operand, pendingMultiplicativeOperator)) {
abortOperation();
return;
}
operand = factorSoFar;
factorSoFar = 0.0;
pendingMultiplicativeOperator.clear();
}
if (!pendingAdditiveOperator.isEmpty()) {
if (!calculate(operand, pendingAdditiveOperator)) {
abortOperation();
return;
}
pendingAdditiveOperator.clear();
} else {
sumSoFar = operand;
}

display->setText(QString::number(sumSoFar));
sumSoFar = 0.0;
waitingForOperand = true;
}

與additiveOperatorClicked()一樣,我們首先處理任何掛起的乘法和加法操作符,然后顯示sumSoFar并將變量重置為零。必須將變量重置為零,以避免對值進行兩次計數。

void Calculator::pointClicked()
{
if (waitingForOperand)
display->setText("0");
if (!display->text().contains('.'))
display->setText(display->text() + tr("."));
waitingForOperand = false;
}

pointClicked()槽向顯示的內容添加一個小數點。

void Calculator::changeSignClicked()
{
QString text = display->text();
double value = text.toDouble();

if (value > 0.0) {
text.prepend(tr("-"));
} else if (value < 0.0) {
text.remove(0, 1);
}
display->setText(text);
}

changeSignClicked()槽改變顯示值的符號,如果當前值為正,則在前面加一個負號;如果當前值為負,則從值中刪除第一個字符(負號)。

void Calculator::backspaceClicked()
{
if (waitingForOperand)
return;

QString text = display->text();
text.chop(1);
if (text.isEmpty()) {
text = "0";
waitingForOperand = true;
}
display->setText(text);
}

backspaceclick()將刪除顯示中最右邊的字符,如果得到一個空字符串,則顯示“0”并將waitingForOperand設置為true。

void Calculator::clear()
{
if (waitingForOperand)
return;

display->setText("0");
waitingForOperand = true;
}

clear()槽將當前操作數重置為零,這相當于按退格鍵多次擦除整個操作數。

void Calculator::clearAll()
{
sumSoFar = 0.0;
factorSoFar = 0.0;
pendingAdditiveOperator.clear();
pendingMultiplicativeOperator.clear();
display->setText("0");
waitingForOperand = true;
}

clearAll()槽將計算器重置為初始狀態。

void Calculator::clearMemory()
{
sumInMemory = 0.0;
}

void Calculator::readMemory()
{
display->setText(QString::number(sumInMemory));
waitingForOperand = true;
}

void Calculator::setMemory()
{
equalClicked();
sumInMemory = display->text().toDouble();
}

void Calculator::addToMemory()
{
equalClicked();
sumInMemory += display->text().toDouble();
}

clearMemory()插槽擦除保存在內存中的總和,readMemory()將總和顯示為操作數,setMemory()將內存中的總和替換為當前的總和,addtommemory()將當前值添加到內存中的值。對于setMemory()和addtommemory(),我們首先調用equalClicked()來更新sumSoFar和顯示中的值。

template<typename PointerToMemberFunction>
Button *Calculator::createButton(const QString &text, const PointerToMemberFunction &member)
{
Button *button = new Button(text);
connect(button, &Button::clicked, this, member);
return button;
}

私有的createButton()函數從構造函數中被調用來創建計算器按鈕。

void Calculator::abortOperation()
{
clearAll();
display->setText(tr("####"));
}

私有的abortOperation()函數在計算失敗時被調用,重置計算器狀態,顯示“####”。

bool Calculator::calculate(double rightOperand, const QString &pendingOperator)
{
if (pendingOperator == tr("+")) {
sumSoFar += rightOperand;
} else if (pendingOperator == tr("-")) {
sumSoFar -= rightOperand;
} else if (pendingOperator == tr("\303\227")) {
factorSoFar *= rightOperand;
} else if (pendingOperator == tr("\303\267")) {
if (rightOperand == 0.0)
return false;
factorSoFar /= rightOperand;
}
return true;
}

私有的calculate()函數執行一個二進制操作,右操作數由rightOperand給出。對于加法操作符,左操作數為sumSoFar;對于乘法運算符,左操作數是factorSoFar。如果發生除零,函數返回false。

Qt Widget組件推薦
  • QtitanRibbon - Ribbon UI組件:是一款遵循Microsoft Ribbon UI Paradigm for Qt技術的Ribbon UI組件,QtitanRibbon致力于為Windows、Linux和Mac OS X提供功能完整的Ribbon組件。
  • QtitanChart - Qt類圖表組件:是一個C ++庫,代表一組控件,這些控件使您可以快速地為應用程序提供漂亮而豐富的圖表。
  • QtitanDataGrid - Qt網格組件:提供了一套完整的標準 QTableView 函數和傳統組件無法實現的獨特功能。使您能夠將不同來源的各類數據加載到一個快速、靈活且功能強大的可編輯網格中,支持排序、分組、報告、創建帶狀列、拖放按鈕和許多其他方便的功能。
  • QtitanDocking:允許您像 Visual Studio 一樣為您的偉大應用程序配備可??棵姘搴涂赏?抗ぞ邫凇:谏咨?、藍色調色板完全支持 Visual Studio 2019 主題!

DevExpress企業定制服務

標簽:

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn

文章轉載自:慧都網

為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
相關產品
軟件
  • 產品功能:UI界面
  • 源 碼:非開源
  • 產品編號:13579
  • 當前版本:v6.3 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: The Qt Company 正式授權
  • ">Qt

    一個跨平臺的C++圖形用戶界面應用程序開發框架。

    控件
  • 產品功能:UI界面
  • 源 碼:非開源
  • 產品編號:13495
  • 當前版本:v6.2.8 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: Developer Machines 正式授權
  • ">QtitanChart

    性能優異的跨平臺Qt類圖表組件

    控件
  • 產品功能:UI界面
  • 源 碼:非開源
  • 產品編號:13494
  • 當前版本:v7 beta [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: Developer Machines 正式授權
  • ">QtitanRibbon

    專業全面 & 實現Qt技術的跨平臺Ribbon UI組件

    控件
  • 產品功能:UI界面
  • 源 碼:非開源
  • 產品編號:13493
  • 當前版本:v9 beta [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: Developer Machines 正式授權
  • ">QtitanDataGrid

    一個獨特的Qt開發框架產品,吸收了Delphi、C++以及其他語言的優點

    title
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    利記足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 真人boyu·博魚滾球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 最大網上PM娛樂城盤口(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規雷火競技官方買球(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 雷火競技權威十大網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) boyu·博魚信譽足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 權威188BET足球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規188BET足球大全(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 国产黄色一级大片 | 国产精品熟女高潮视频 | 国产成人av综 | 18禁免费无码无遮挡不卡网站 | 国产成人综合久久av | 91精品国产99久久青草蜜桃 | 国产精品亚洲一区在现观看 | 变态的让你无法想象 | 国产免费内射又粗又爽密桃视频 | 国产美女一级做受在线观看 | 18禁午夜福利在线播放 | 成人无码区免费视频网站蜜臀 | av无码久久久久不卡免费网站 | 国产精品一区91 | a级毛片视频无码不卡 | 精品无人区一线二线三线区别 | 国产干美女| 国产精品偷伦视频观看 | 国产成人精品必看 | 国产自慰精品在线 | 国产成人精品亚洲一区91 | 91午夜精品亚洲一区二区三区 | 国产+sm+调教 | 国产按摩无码在 | 国产精品视频3p | 国产91长腿美女在线观看 | 91午夜国产在线观看 | 国产无码成本人电影 | 国产精品码一区二区 | 成人午夜福利在线观看 | 成人精品免费视频在线观看 | 国产高潮流白浆免费视频 | 2025国产精品无码视频 | 高清无码在线观看视频免费91 | 成人午夜福利a片在线观看 成人午夜福利电影 | 精品国产乱子伦一区 | 国产亚洲中文日本不卡二区 | 国产av无码日韩av无码av网站 | 东京热无码中文字幕av专区 | 国产无码诱惑视频 | 国产精品大片大片看大 | 韩日一区二区 | 国产三级aⅴ在线 | 变态另类一区二区sm | 国产精品无码无片在线观看3d | 精品无码久久久久国产一区二区 | 国产成人免费v片在线观看 国产成人免费不卡在线观看 | 国产精品白浆在线观 | 国产交换一区二区三区 | 国产一区玩具在线观看 | 国产激情一区二区三区无码 | 国产精品久久久久一区二区三区 | 国产一区二区三区h55555 | 国产成人牲交在线观看视频 | 成人av精品一区二区三区四区 | 成人日韩一区在线 | 国产三级在线播放 | 精品一区二区三区东京热 | 国产欧美久久久久久精品一区二区 | 国产精品高清全国免费观看 | 国产人妖视频一区在线观看 | 91亚洲影 | 成人综合色在线观看网站 | 高清久久久久极精品久久久 | 国产在线97公开视频 | 国产毛片高清一级国语 | 91麻精品| 91精品国产全国免费观看蜜桃 | 国精产品一二二线精东 | a人亚洲精v品无码樱花 | 成人va在线一区二区三区四区 | 国产精品无码一区二区av | 91午夜伦伦电影理论片 | 国产精品福利网址在线观看 | 91午夜福利国产 | 国产精品一区理论片 | 成人午夜一区二区三 | 2025国产精品福利在线观看 | 东京热一区二区三区精品无码 | 国产成人精选在线观看不卡 | 国产精品亚洲二区在线观看 | 国产成人精品亚洲 | 国产精品九九在线播放 | 国产精品亚洲综合免费观看 | 国产户外一区二区三区在线 | 国产丝袜久久 | 国产不卡三级在线播放 | 国产精品内射后入合集 | 2025国产亚洲日韩在线 | 国产精品无码一本 | 国产高潮流白浆喷水免费视频 | 国产av无码精品麻豆 | 国产精品熟女一区二区 | 国产精品无码aⅴ精品影院 国产精品无码aⅴ一区二区三区 | 国产高清一区视频在线播放 | 东京热亚洲精品中文一区 | 国产精品亚洲一区二区无码色 | 国产精品特级无码免费视频 | 精品久久久久久无码专区不久久 | 国产激情久久精品 | 精品无码三级在 | 国产一区二区在线亚洲中文在线 | av无码一区二区三区波多野 | 国产午夜福利白浆一区二区 | 国产午夜片无码区在线观看爱情 | 国产精品免费观看一区二区 | 成人熟女一区二区三区 | 国产精品国产国产aⅴ | 国产三级小视频在线播放完整 | av免费观看网站网址 | 91精彩视频在线观看 | 精品国产丝袜久久久久久无码 | 国产欧美日韩亚洲更新 | 成人h动漫精品一区二区无 成人h动漫精品一区二区无码 | 国产黑色丝袜在线观看下 | 激情欧美成人久久综合小说 | 国产成人欧美一区二区三区不卡 | 国产麻豆综合视频在线观看 | av网站| 成人无码区免费视频网站 | av无码久久一区二区 | 国产av美女激情 | 国产一级a大黄片毛片视频 国产一级a级毛片久久久久精品卡 | 2025热播电视剧电影动 | 国产成人久久久久精品 | 国产成a人亚洲精品v品无码 | 国产一级性爱免费片 | 国产精品一区久久人爽 | 国产av无遮挡喷水白浆网站 | 韩国美女性感跳舞视频 | 99精品国产自在现线10页 | 国产午夜福利在线91 | 国自产偷精品不卡在线 | 成人精品一区二 | av无码久久久久久不卡网站 | 国产精品午夜激爽毛 | 国产午夜理论片不卡 | 国产一区二区三区视频xxx | aⅴ另类 | 东京热加勒比天然素人无码 | av午夜片在线观看 | 成人av片无码免费天天看 | 国产猛烈高潮尖叫视频免费 | 国产福利片无码区在线观看 | 国产无码不卡在线观看 | 国产按摩推油一区二区 | 精品久久久久久免费看 | 国产区精品尤物柚木在线 | 国产欧美国产精品第二区 | 国产aⅴ一区二区 | 精品久久久久久亚洲偷窥一区 | 成人免费的性色视频 | 东京热无码人妻系列综合网站 | 国产av性爱亚洲 | 高清成人爽a毛片在线播放 高清成人一区二区三区 | 国产成人综合亚洲av小说 | 国产3p露脸| 精品福利一区二区视频 | 国产午夜福利在线观看视频 | 国产精品福利在线观看免费不卡 | 国产成人av一区二区三区 | 激情人妻偷乱在线视频 | 国产精品日日摸夜夜添夜夜添无 | 成人动漫免费看一区二区三区 | 国产av毛片网站 | 国产成人精品手机在线观看 | 国产自愉自愉免费精品七区 | 国产午夜视频在线 | 国产成年女人特黄特色大片 | 国产欧美日韩专区 | 97色综合 | 69久久夜色精品国产69小说 | 加勒比东京热无码av在线 | 国产肉丝袜一区二区 | 91啪国产福利在线 | 成年女人wwxx免费 | 国产av无码亚洲一区二区 | 风韵人妻丰满熟妇老熟女图片 | av天堂午夜精品一区 | 国产精品亚洲美女久久久 | 国产99爱在线视频免费观看 | 国产91在线免费观看 | 国产精品一区二区亚瑟不卡 | 成人精品午夜在线观看 | 2025久久最新国产精品 | 国产福利秒拍一区二区在线观看 | 国产日韩精品中文字无码樱花 | 91国自产精品 | 国产精品无码一区二区在线看 | 韩国精品无码一区二在线 | 国产欧美另类久久久精品91 | av无码一区二区三区鸳鸯影院 | 国产午夜av无码大片久久 | 精品国产高清不卡人妻片 | 91嫩草私人成人亚洲影院 | 高清无码一区二区 | 成人播放日韩在线播放视频视频 | 国产午夜免费视频片夜色 | 91精产国品一二三区在线 | 精品人妻av综合一区二区 | 国产三级电影 | 国产精品va无码一区二区三区 | 国产精品制服丝袜 | 国产精品高清一区二区三区不卡 | 国产成人av无码片在线影院 | 国产高清在线视频一区二区三区 | 国产午夜福利在线播放 | 国产白嫩在线 | 国模少妇一区二区三区咪咕 | 国产av一区二区三区 | 18禁动漫一区二区三区 | 国产成人片在线观看视频 | 精品亚洲欧美中文字幕在线看 | 成人国产综合 | 国产成人a在一区线观看高清 | a级毛片在线播放 | 国产综合精品久久久久成人影 | 国产精品高清一区二区不卡乱 | 国产精品高颜值 | 国产三级精品久久久久久久 | 国产精品激情综合久久 | 国产喷水自慰在线观看 | 国产精品日韩欧美在线第3页 | 成年午夜免费 | 国产精品女同一区二区久 | 2025国产精品一区二区在线 | 国产91精品久久久久久久 | 91久久精品日日躁夜夜躁欧美 | 国产精品理论在线观看 | 国产精品边做奶水狂喷 | 97无码精品人妻一区二区三区 | 国产1区2区3区国产精品 | 国产一区二区三区亚洲精品 | 国产丰满熟女综合浪潮av | 2025精品久久久久久久久久 | 国产美女冒白浆免费视频 | 91精品国产福利在线 | 国产精品一区二区麻豆亚洲 | 成人国产精品一级毛片久久 | 高清免费视频一区二区三区 | 国产成人的电影在线观看 | 波多野结衣高清一区二区三区 | 国产午夜无码精品免费看秒播 | 91精品国产91九九九福利 | 国产精品白浆无码流出免费看 | 国产丝袜在线精品丝袜不卡 | 国产成人永久免费播放视频 | 国产福利精品一区二区无码 | 国产片婬乱18一级毛片动态图 | 国产精品无码卡 | 成人区人妻精品一区二视频 | 国产精品日日摸夜夜添夜夜添1 | 国产激情视频一区二区三区 | 国产精品无码专区 | 成人av免费在线播放 | 91福利资源站 | 国产丝袜美女一区二区三区 | 国产亚洲欧美日韩久久图片 | 成年永久一区二区三区免费视频 | 91麻豆国产高清产精品第一页 | 99精品久久这里只有精品 | 国产午夜精品片一区二区三区 | 成人综合网站一区二区三区四区 | 国产精品伦一 | 国产成人精品一区二区免费 | 韩国三级a视频在线观看 | 91视频官网 | 国产一区二区在线观看涩爱 | 国产成人aⅴ综合在线影院 国产成人av | 国产电影一区二区三区 | 国产精品无码一区二区老黄瓜 | 91视频免费看平台安全吗 | 91福利在线精品国产 | 精品无码一区二区三区aⅴ 精品无码一区二区三区av | 高清视频一区二区 | 国产精品毛片在线大全 | 福利一区 | 2025国产麻豆剧传媒免费 | 国产不卡高清在 | 国产午夜理论不卡在线观看 | 国产午夜精品一区二区三区漫画 | 国产在线视欧美 | 国产精品国产三级传区网站 | 国产高潮大| 国产成本人片无码免费2025 | 国精品人妻无码一区二区三区蜜 | 国产激情二区三区 | 国产高清在线播放刘婷91 | 国产精品高清视亚洲一区二区 | 92午夜福利极品少妇久久一区 | 国产三级在线视频播放线 | 国产野战无套av毛片户外 | 国产熟睡乱子伦视频观看软件 | 国产欧美日韩在线综合网 | 91麻豆国产高清产精品第一页 | 高清精品一区二区三区一区 | 福利一区在线观看 | 国产亚洲欧美日韩在线观 | 精品国产午夜一区二区三区 | 国产精品日韩欧美亚洲另类 | 国产精品嫩草影院免费观看 | 精品无码久久久久久国产 | 国产大片中文字幕在线观看 | 精品一区二区三区波多野 | 国产女同女互慰 | 国产成人精品本亚洲 | 精品精品国产三级a∨在线 精品精品国产自在97香蕉 | 国产女同一区二区在线 | 国产极品美女高潮无套在线观看 | 国产成人久久精品一区二区三 | 成人国产精品区 | 国产午夜高清高清在线观看 | 精品日韩二区三区四区 | 国产在线永久视频香蕉 | 国产一区二区三区高清视频 | 国产午夜无码 | 国产精品一区二区在线观看麻 | 国产午夜免费啪视频观看视频 | 成人国产欧美日韩在线观看 | 国产一区在线播放网址 | 国产精品毛片在线更新 | 国产av老师黑色丝袜美女 | 国产主播一区二区三区在线观看 | 国产成人深夜福利短视频99 | 国产精品美脚玉足脚交 | 国产美女精品一区二区 | 91麻豆产精品久久久久久下载 | 91精品国产午夜福利在线观看 | 国产成人福利免费视频 | 国产精品无码免费专区午 | 国产精品自拍一区在线 | 国产成人牲交在线观看视频 | 99久久国产综合精品女同图片 | 国产精品白浆无码流出免费看 | 91大神最新国自产拍在线播放 | 2025亚洲天堂无码视屏手机版 | 国产裸体免费无遮挡香港特辑 | 国产精品一区二区三区在线观看 | 国产成人av免观看 | 成人午夜看片 | 成人亚洲性情网站在线观看 | 国产成人精品无人区一区 | 91亚洲中文天堂在线播放 | 国产高清在线精品一本大 | 国内自拍视频一区二区三 | 丰满爆乳肉感无码一区二区三区 | 99精品国产福久久久久久 | 成人无码区免费a∨直播 | 国产午夜精品一区二区三区四区 | 国产精品亚洲福利日韩欧美 | 99精品一区二区三区免费视频 | 国产成人久久精品二区三区 | 国产成人精品免费视频大 | 国产三级在线观看播放大学生 | 国产精品白丝av在线观看播放 | 国产亚洲精久久久久久无码色戒 | 操人人射 | 国产精品三级在线观看无码 | 99久久久精品免费 | 国产精品户露av在线户外直播 | 成人精品区天堂 | 国产成人激情五月 | 91在线无码精品秘入口果冻 | 国产精品欧美一区二区三区不卡 | 成人免费av片在线观看 | av小次郎收藏家 | 精品无码一区二区三区在线√观 | 精品无码成人片一区二区 | 高清在线一区二区三区 | 国产大爆乳大爆乳在线播放 | 91久久久久国产一区二区 | 国产午夜无码片在线观看 | 丰满的岳乱一区二区 | 99久久人妻精品免费一区 | 国产激情视频在线观看免费播放 | 91麻豆国产香蕉久久精品 | 99久久国产综合精品成人影院 | 国产精品白嫩极品久久久久 | 2025中文字幕日韩乱码欧美 | 91蜜芽尤物福利在线观看 | 国产成人精品日本亚洲第一区 | 精品人妻系列无码天堂 | 国产成人垃圾片一区二区三区 | 国产激情电影综合在线观看 | 国产69精品久久久久99尤物 | 精品国产丝袜自在线拍国语 | 国产精品精品自在 | 成人日韩在线 | 91精品国产九九九九九九亚洲 | 国产白嫩美女 | 国产成人青青久久大片 | 国产97最新在线视频 | 国产精品欧美亚洲韩国日本 | 国产精品日韩综合无码 | 91福利免费网站在线观看 | 国产91久久久久久 | 91成人爽a毛片一区二区动漫 | 国产成人av无码一二三区 | 成人黃色一級片91久久午夜 | 成人国产精品一级**片视频 | 后入内射无码人妻一区 | 国产99国产精偷 | 国产不卡理论片在线观看 | 国产午夜毛片黄色 | 黑巨人精品一区二区三区 | 91se在线看片国产 | 国产高潮流白浆视频在线观看 | 国内精品一区视频在线播放 | 91精品尤物| 国产一级a爱做片免费播放 国产一级a爱做片免费观看 | 国产精品白嫩在线观看 | 91大神福利在线 | 国产偷倩在线播放 | 99精品国产综合久久久久五月 | 国产精品高清一区二区三区不卡 | 成人无码h动漫在线网站免费y | 国产精品多p对白交换绿帽 国产精品多人p | 91精品国产亚洲爽啪在线观看 | 国产成人亚洲精品无码 | 国产美女一区三区在线观看 | 国产综合久久久久久 | 国产成人免费影片 | 国产精品va无码一区二区 | 国产一级av免费观看在线 | 国产中文欧美变态 | 国产一区二区三区在线观看精品 | 国产精品视频一区二区五区 | 国产成人无码a在线观 | 国产精品白丝久久av情趣网站 | 成人无码视频在线观看 | av无码成 | 成人午夜特黄aaaaa片 | 国产午夜福利电影免费在线观看 | 加勒比hezyo无码专区 | 国产精品青草综合久久久久99 | 成人三级精品视频在线观看 | 国产色老太色老太在线观看 | 国产精品无码久久人妻无码影院 | 国产成人亚洲精品电影在线观看 | 国产成人综合视频 | 国产主播大尺度精 | 国产精品美女www爽爽爽视频 | 国产av仑乱内谢 | 国产一区二区三区夜色 | 国产精品成人三级 | 国产麻豆91传媒入口 | 精品精品无码在线视频 | 精品人妻无码一区二区三区换脸 | 2025国产精品自拍视频 | 国产二区视频在线观看 | 国产亚洲高质量一路线二路线 | 国产精品成人久久久久久久 | 按摩师玩弄到潮喷在线播放 | 国产91精品看黄网站在线观看 | 国产无码在线视频高清无删减 | 精品国产品国语原创 | 国产亚洲欧洲乱码在线 | 99久久国产综合精品女同 | 国产999精品2卡3卡4卡 | 国产午夜精品一区二区不卡 | www中国黄色一级片 wwxx在线观看免费 | 91久久久精品人妻无码专区不卡 | 2025国产精品视频网站 | 国产精品白浆无码流出免费看 | 国产3p露脸福利在线视频 | 国产精品丝袜美女久久 | 国产一区视频在线观看 | 极品少妇爆乳无码av地味 | 国产精品免费久久久久久蜜桃 | 国产精品无码中 | 国产福利小视频在线免费观看 | 国产毛片一区二区三区精品 | 国产亚洲大尺度无码无码专线 | 成人无码中文字幕在线不卡 | 国产精品国产三级国产三级 | 成人午夜电影免费完整在线看 | 国产成a人亚洲精品无码樱花 | 国产成年女人特黄持色毛片免 | 国产专区日韩专区 | 国产人在线成免费视频 | 97人妻无码免费专区 | 国产aa片日韩一级观看 | 国产一区二区在线观看无码 | 91精品国自产拍在线观看 | 精品人妻一区二区三区声综 | 国产一区二区三精品久 | 国产成人久久精品二三区无码 | 动漫日韩无码一区 | 国产人一极精品视频 | 国产经典系列在线观看 | 91网站永久免费看nba视频 | 911亚洲精品青草衣衣 | 精品视频一区二区在线观看 | 91精品欧美一区二区综合在线 | 国产无套护士在线观看 | 激情欧美经典日韩 | 国产女人喷浆抽搐高潮视频 | 国产精品视频一区二区三区不 | 99久久九九爱精品69堂 | 精品午夜福利在线视在亚洲 | 国产日韩精品欧美在线ccc | av收藏夹国语剧情在线播放 | 国产午夜福利91天堂美女 | 国产精品国产宗合 | www.夜片内射视频日韩精品成人 | 国产毛a片久久久久久无码 国产毛多水多高潮高清 | 国产精品亚洲欧美—级久久精品 | 成人一区二区三区视频在线播放 | 99ri精品视频在线观看播放 | 国产一区中文字幕 | 成人无遮挡裸免费视频在线观看 | 国产探花 | 99精品国产福久久久久久 | 99精品国产高 | av制服丝袜白丝国产网站 | 国产精品入口麻豆午夜 | 国产av无码国产av毛片 | 91精品午夜福利在线观看入口 | 国产日韩久久久久精品影视 | 精品国产高清自在线一区二区 | 国精产品一二二线精东 | 国产精品每日更新在线观看 | 国产精品久久久精品 | 国产成人精品一区二区日出白浆 | 国产极品嫩模 | 国产自愉自愉免费精品七区 | 国产在线高清在线精品 | 国产精品国产三级国av | 国产aⅴ无码精品一区二区 国产aⅴ无码精品一区二区三区 | 成人午夜高 | 国产韩国视频一区二区三区 | 91精品无码国产在线观看 | 精品偷自拍另类在线观看 | 国产亚洲欧美在线观看一区二区 | 国产午夜福利三级 | 国产成人激情视频 | 精品无码一二三四区 | 91精品国产情侣高潮露脸 | 福利姬液液酱喷水网站在线观看 | 国产三级毛片在 | 国产91精品露脸国语 | 成人免费aa在线观看 | 91久久如何满足用户需求 | 韩国三级大全久久网站中文字幕 | 精品无码国模私拍视频 | 成年女人毛片免费观看不卡 | 99国产一区二区精品久久 | 国产一区二区视频久草 | 国产成人精品久久一区二区 | 国产喷水在线视频观看网站 | a级毛片免费观看在线播放 a级毛片免费看 | 精品人妻少妇系列人妻系列 | 国产综合精品久久久久成人影 | 国产盗摄女厕美女嘘嘘 | 国产精品欧美日韩一区二区 | 精品无码午夜福利 | 国产永久在线观看 | 国产成人无码aⅴ片在线观看视频 | a级片网站在线观看 | 2025国语电影免费在线观看 | 国产成人香港三级录像视频 | 国产精品无码一区二区三区毛 | 国产欧美另类久久久精品图片 | 国产精品无码久久久久免费av | 成人精品一区 | 国产成人精品亚洲午夜麻豆 | 国产一区二区在线日韩 | 国产精品碰碰 | 国产成年女人特黄特色毛片免 | 国产一区二三区好的精华液 | 国产精品视频网站丝袜 | 国产av午夜精品一 | 东京热一频道一区二区三区 | 国产精品成人va在 | 国产av一区二区三区传媒 | 国产精品无码一区二区三区免 | 国产精品亚洲日韩aⅴ在线观看 | 国自产精品手机视频 | 国产午夜无码视频免费网站 | 国产精品入口免费麻豆 | 国产精品日韩欧美久久综合 | 99久久精品久久久久婷婷 | 福利视频网站导航 | 国产精品原创巨作av在线 | 国产精品女a片爽爽波多洁 国产精品女a色欲av色欲老师 | 国产91丝袜在线观看 | 激情视频在线观看一区 | 国产成人无精品久久久久国语 | 国产成人无码aⅴ片 | 韩国日本亚洲欧洲一区二区三 | 精品国产av色一区二区 | 国产一区二区免费不卡在线播放 | 韩国三级大乳在线观看 | 国产亚洲欧美观看在线一区 | 国产精品无码久久久 | 国产一本高清在线欧美亚 | 国产成人午夜福利高清在线观看 | 精品亚洲一区二区三区在线播放 | 99国产精品高清一区二区二区 | 国产成人综合久久精品下载 | 99国产欧美精品久久久蜜芽 | 国产传媒欧美日韩黄色大片 | 国产午夜成一人免费看片 | 国产a级毛片久久久精品毛片 | 国产另类ts人妖一区二区 | 国产精品国产三级国产aⅴ 国产精品国产三级国产aⅴ9色 | 国产av高清一区二区三区 | 国产动漫一区二区三区无码 | 岛国无码av不 | 东京热aⅴ无码一区二区 | 国产精品偷伦视频免费观看了 | 国产一区私人高清影院 | 精品人妻中文一区二区中文 | 国产精品成人 | 国产真人无码作爱视频免费 | 国产av国片精品一区二区 | 91在线无码精品秘在线观看 | 91精品国产免費人成网站 | 国产视频在线一区二区三区 | 国产麻豆精品视频看片 | 国产成人午夜在线视频a站 国产成人午夜在线视频极速观看 | av无码中出一区二区三区 | 国产专辑免费在线不卡 | 国产麻豆剧果冻传媒浮生影视 | 国产高清无码不卡顿在线观看 | 国产频99热精品在线 | 国产美女精品一区二区三区 | 国产精品午夜爆乳美女视频免费 | 国产成人女人在线观看 | 18禁无遮挡无码网站免费 | 精品亚洲欧美视频在线观看 | 91高清国产经典在线观看 | 国偷自拍视频在线观看 | 国产成人亚洲精品无码av大片 | 国产精品日韩无码 | 成人午夜免费视频 | 国产超清无码一级内射视频 | 国产午夜不卡精品午夜电影 | 精品久久久久久无码人妻 | 国产精品主播在线三区 | 91精品久久香蕉国产线看观看 | 国产精品无码三级久久久天美传媒 | 2025无码国产 | 大桥未久亚洲一区二区 | 国产成人亚洲精品无码h在线 | 国产精品高清在线观看 | 国产另类无码专区 | 99久久精品午夜一区二区 | 国产精品制服丝袜 | 成人国产一区二 | 精品国模一区二 | 国产精品国产宗合 | 91精品国产一区二区无码 | 国产波霸爆乳一区二区黄色 | 99精品国产免费久久国语 | 99久久久国产精品免费软件 | 91精品福利视频 | 国产精品高清国产av | 18禁男女污污污午夜网站免费 | 99久久久无码国产精品6 | 91精品福利一区二区三区野战 | 国产精品观看在线播放 | 国产成a人片在线观看视频下 | 国产一区二区二区按摩精品啪视 | 国产a级一级淫片免费观看 国产a级综合区毛片久久国产精品 | av中文在线 | 国产精欧美一区二区三区久久久 | 国产对白91色拍 | 国产av巨作情欲放纵无码 | 国产午夜福利电影免费在线观看 | 国内精品一区二区三区蜜桃 | 国产在线精品一区二区夜色 | 精品亚洲欧美视频在线观看 | 国产美女福利视频一区二区 | 精品国产91无码大片在线观看 | 精品无码午夜福利理论片 | 韩国美女av一区二区三区四区 | 国产精品入口 | 精品不卡免费一区二区三区 | 国产产无码乱码精品 | 99精品国产高清一区二区麻豆 | 不卡一级毛片免费 | 99国产一区二区精品久久 | 国产高清久久无码视频 | 国产欧美一级纯黄色片 | 国产三级在线播放第一页 | 18禁免费av日韩av高清 | 国产在线精品国自产 | av无码人妻一区二区三区牛牛 | 国产成人手机在线播放 | 2025国产三级精品三级在专区 | 国产精品高潮呻吟av | 99久久精品免费精品国产 | 国产精品伦一 | 91午夜一区二区 | 国产裸体裸拍在线观看 | 激情内射亚洲一区二区三区爱妻 | 国产99re6热在线播放 | 国产天天看天天爽一区二区 | 国产一级a毛看免费视频区二三 | 国产原创剧情化妆师在线观看 | 911久久香蕉国产线看观看 | 91系列高清露脸对白 | 精品亚洲欧美视频在线观看 | 精品国产一区二区三区在线不卡 | av鲁丝一区二区三区 | 国产真人无码作爱视频免费 | 国产成人午夜福利影片 | 国产精品亚洲四区在线观看 | 91尤物在线一区二区三区 | 国产午夜福利精品一区二区三区 | 国产精品午夜一区二区 | 国产精品免费aⅴ片在线观看 | 国产在线制服丝袜国产 | 成人综合国产成人亚洲 | 国产精品亚洲午夜不卡 | 成人精品一区二区三区电影 | 国产福利一区二区麻豆 | 91在线国产一区二区 | av午夜久久 | 国产极品美女在线观看 | 91在线无码精品秘入口九推油 | 国产一级无码视频在线观看 | 丰满人妻一区二区三区视频 | 国产极品美女在线观看网站 | 2025精品国产综合久久 | 国产a级毛片色咪味 | 后入清纯学生妹 | 国产一区二区日韩一区二区 | 精品无人区一码二码三码四码 | 国产成人精品免费视频大全可播 | 国产精品一区二区三区剧情片 | 高清精品一区二区三区一区 | 91伊人久久 | 国产麻豆精品久久毛片 | 国产av丝袜美腿丝袜网站 | 国产亚洲人成无码网在线观看 | 国产小视频精品一区二区三区 | 国产高清在线视频伊甸园 | 国精产品一区二区三区糖心 | 国产一区二区三区免费 | 国产成年人免费在线观看 | 成人最新午夜 | 国产亚洲日韩av在线播放不卡 | 精品日韩欧美人妻少妇 | h无码精品动漫在线观看导航 | 国产av天堂亚洲国产av天堂 | 精品69视频一区二区三区 | 国产av无码专区亚洲a∨毛片 | 91福利国产在线观看网站 | 国产一区二区视频在线关看 | 国产精品午夜性色视频 | 国产av寂寞骚妇 | 99精品视频69v精品视频 | 国产精品爆乳在线播放第一人称 | 成人黄色网站·大全 | 国产日韩欧美女同一区二区 | 成年午夜免费 | 精品国产欧美日韩在卡在线 | 高清无码电影免费专区 | 国产大片b站免费观看推荐 国产大片大全免费看软件下 | 国产超碰人人爽人人做 | 99国产成人噼啪免费视频 | a级毛片视频免费观看不卡 a级毛片视频在线观看 | 国产精品高潮呻吟久久av旡码 | 99精品欧美一区二区蜜桃免费 | 爆乳国产中文在线观看 | 911精品国产一区二区在线 | 国产女同无遮 | 国产一区二区三区91 | 国产在线98福利播放视频免费 | 国产麻豆天美果冻无码视频 | 国产精品无码视频一区二区三区 | 国产日韩免费一区二区三区 | 国产99久久九九精品免费 | 国产av无码国产av毛片 | 国产无套粉嫩白浆在 | 成人啪精品视频网站午夜 | 白丝爆动漫羞羞动漫网站 | 成人午夜福利免费无码 | 国产91视频 | 国产精品亚洲综合第一页 | 精品久久久无码中文字幕 | 国产人妖在线观看 | 91精品尤物在线观看 | 国产成人免费无庶挡视频在线观看 | 国产成a人片在线观看网站 国产成a人亚洲精ⅴ品无码性色 | 国产亚洲日韩欧美自拍另类 | 精品久久久久久无码一区二区 | 国产精品成人观看视频国产奇米 | 精品一区二区高清在线 | 国产精品宅男在线观看 | 精品无码av毛片一区二区三区 | 国产精品人成在线播放 | 国产一区二区三区在线水蜜桃 | 国产午夜福利精品一区 | 国产精品无码无片在线观看 | 国产欧美另类久久精品91 | 成人国内精品久久久久一区 |