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

半岛外围网上直营

跨平臺C++開發:10年Qt開發經驗覆蓋100多個Qt開發技巧!

轉帖|使用教程|編輯:鮑佳佳|2020-11-12 11:45:36.807|閱讀 1611 次

概述:本文主要介紹了100多個Qt開發經驗。比如qss的ANSI編碼、嵌套窗口中主窗口無法接收鼠標移動事件等,又比如我用qss設置窗口樣式,但是項目每次重新構建以后,樣式表就會不生效等問題,也花了自己不少時間去解決,所以在這里轉發大神的經驗,留作以后參考和逐條的研究,也分享給更多正在學習Qt或者正在使用Qt進行程序開發的朋友們。

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

Qt是一個跨平臺框架,通常用作圖形工具包,它不僅創建CLI應用程序中非常有用。而且它也可以在三種主要的臺式機操作系統以及移動操作系統(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式設備,Android(Necessitas)和iOS的端口上運行。現在我們為你提供了免費的試用版。趕快點擊下載Qt最新試用版>>

Qtitan組件集

  • QtitanRibbon| 下載試用: 遵循Microsoft Ribbon UI Paradigm for Qt技術的Ribbon UI組件,致力于為Windows、Linux和Mac OS X提供功能完整的Ribbon組件。
  • QtitanChart | 下載試用 : 是一個C ++庫,代表一組控件,這些控件使您可以快速地為應用程序提供漂亮而豐富的圖表。并且支持所有主要的桌面操作系統。
  • QtitanDataGrid| 下載試用 : 適用于Qt的商業化DataGrid 組件,使得表格數據可以直接面向終端用戶完全集成了QtDesigner,極易適應其他相似開發環境,保證100%兼容Qt GUI。

本文主要介紹了100多個Qt開發經驗。比如qss的ANSI編碼、嵌套窗口中主窗口無法接收鼠標移動事件等,又比如我用qss設置窗口樣式,但是項目每次重新構建以后,樣式表就會不生效等問題,也花了自己不少時間去解決,所以在這里轉發大神的經驗,留作以后參考和逐條的研究,也分享給更多正在學習Qt或者正在使用Qt進行程序開發的朋友們。


1. 當編譯發現大量錯誤的時候,從第一個看起,一個一個的解決,不要急著去看下一個錯誤,往往后面的錯誤都是由于前面的錯誤引起的,第一個解決后很可能都解決了。

2. 定時器是個好東西,學會好使用它,有時候用QTimer::singleShot可以解決意想不到的問題。

3. 打開creator,在構建套件的環境中增加MAKEFLAGS=-j8,可以不用每次設置多線程編譯。珍愛時間和生命。新版的QtCreator已經默認就是j8。

4. 如果你想順利用QtCreator部署安卓程序,首先你要在AndroidStudio 里面配置成功,把坑全部趟平。

5. 很多時候找到Qt對應封裝的方法后,記得多看看該函數的重載,多個參數的,你會發現不一樣的世界,有時候會恍然大悟,原來Qt已經幫我們封裝好了。

6. 可以在pro文件中寫上標記版本號+ico圖標(Qt5才支持)

  1. VERSION = 2020.10.25
  2. RC_ICONS = main0.ico


7. 管理員運行程序,限定在MSVC編譯器

  1. QMAKE_LFLAGS += /MANIFESTUAC:"level='requireAdministrator' uiAccess='false'" #以管理員運行
  2. QMAKE_LFLAGS += /SUBSYSTEM:WINDOWS,"5.01" #VS2013 在XP運行


8. 運行文件附帶調試輸出窗口

CONFIG += console pro

9. 繪制平鋪背景QPainter::drawTiledPixmap,繪制圓角矩形QPainter::drawRoundedRect(),而不是QPainter::drawRoundRect();

10. 移除舊的樣式


  1. //移除原有樣式

  2. style()->unpolish(ui->btn);

  3. //重新設置新的該控件的樣式。

  4. style()->polish(ui->btn);


11. 獲取類的屬性

const QMetaObject *metaobject = object->metaObject();

int count = metaobject->propertyCount();

for (int i = 0; i < count; ++i) {

QMetaProperty metaproperty = metaobject->property(i);

const char *name = metaproperty.name();

QVariant value = object->property(name);

qDebug() << name << value;

}


12. Qt內置圖標封裝在QStyle中,大概七十多個圖標,可以直接拿來用。

  1. SP_TitleBarMenuButton,
  2. SP_TitleBarMinButton,
  3. SP_TitleBarMaxButton,
  4. SP_TitleBarCloseButton,
  5. SP_MessageBoxInformation,
  6. SP_MessageBoxWarning,
  7. SP_MessageBoxCritical,
  8. SP_MessageBoxQuestion,

  9. ...


13. 根據操作系統位數判斷加載


  1. win32 {

  2. contains(DEFINES, WIN64) { DESTDIR = $${PWD}/../../bin64

  3. } else { DESTDIR = $${PWD}/../../bin32 }

  4. }


14. Qt5增強了很多安全性驗證,如果出現setGeometry: Unable to set geometry,請將該控件的可見移到加入布局之后。

15. 可以將控件A添加到布局,然后控件B設置該布局,這種靈活性大大提高了控件的組合度,比如可以在文本框左側右側增加一個搜索按鈕,按鈕設置圖標即可。

  1. QPushButton *btn = new QPushButton;
  2. btn->resize(30, ui->lineEdit->height());
  3. QHBoxLayout *layout = new QHBoxLayout(ui->lineEdit);
  4. layout->setMargin(0);
  5. layout->addStretch();
  6. layout->addWidget(btn);


16. 對QLCDNumber控件設置樣式,需要將QLCDNumber的segmentstyle設置為flat。

17. 巧妙的使用findChildren可以查找該控件下的所有子控件。findChild為查找單個。


  1. //查找指定類名objectName的控件

  2. QList<QWidget *> widgets = parentWidget.findChildren<QWidget *>("widgetname");

  3. //查找所有QPushButton

  4. QList<QPushButton *> allPButtons = parentWidget.findChildren<QPushButton *>();

  5. //查找一級子控件,不然會一直遍歷所有子控件

  6. QList<QPushButton *> childButtons = parentWidget.findChildren<QPushButton *>(QString(), Qt::FindDirectChildrenOnly);


18. 巧妙的使用inherits判斷是否屬于某種類。


  1. QTimer *timer = new QTimer; // QTimer inherits QObject

  2. timer->inherits("QTimer"); // returns true

  3. timer->inherits("QObject"); // returns true

  4. timer->inherits("QAbstractButton"); // returns false


19. 使用弱屬性機制,可以存儲臨時的值用于傳遞判斷。可以通過widget->dynamicPropertyNames()列出所有弱屬性名稱,然后通過widget-&gt;property("name")取出對應的弱屬性的值。

20. 在開發時, 無論是出于維護的便捷性, 還是節省內存資源的考慮, 都應該有一個 qss 文件來存放所有的樣式表, 而不應該將 setStyleSheet 寫的到處都是。如果是初學階段或者測試階段可以直接UI上右鍵設置樣式表,正式項目還是建議統一到一個qss樣式表文件比較好,統一管理。

21. 如果出現Z-order assignment: is not a valid widget.錯誤提示,用記事本打開對應的ui文件,找到<zorder></zorder>為空的地方,刪除即可。

22. 善于利用QComboBox的addItem的第二個參數設置用戶數據,可以實現很多效果,使用itemData取出來。

23. 如果用了webengine模塊,發布程序的時候帶上QtWebEngineProcess.exe+translations文件夾+resources文件夾。

24. 默認Qt是一個窗體一個句柄,如果要讓每個控件都擁有獨立的句柄,設置下 a.setAttribute(Qt::AA_NativeWindows);

25. Qt+Android防止程序被關閉。


  1. #if defined(Q_OS_ANDROID)

  2. QAndroidService a(argc, argv);

  3. return a.exec()

  4. #else

  5. QApplication a(argc, argv);

  6. return a.exec();

  7. #endif


26. 可以對整體的指示器設置樣式,例如 *::down-arrow,*::menu-indicator{} *::up-arrow:disabled,*::up-arrow:off{}。

27. 可以執行位置設置背景圖片。


  1. QMainWindow > .QWidget {

  2. background-color: gainsboro;

  3. background-image: url(:/images/pagefold.png);

  4. background-position: top right;

  5. background-repeat: no-repeat

  6. }


 28. 嵌入式linux運行Qt程序 Qt4寫法:./HelloQt -qws & Qt5寫法:./HelloQt --platform xcb

29. Qtcreator軟件的配置文件存放在:C:\Users\Administrator\AppData\Roaming\QtProject,有時候如果發現出問題了,將這個文件夾刪除后打開creator自動重新生成即可。

30. QMediaPlayer是個殼,依賴本地解碼器,視頻這塊默認基本上就播放個MP4,如果要支持其他格式需要下載k-lite或者LAV Filters安裝即可(WIN上,其他系統上自行搜索)。如果需要做功能強勁的播放器,初學者建議用vlc、mpv,終極大法用ffmpeg。

31. 判斷編譯器類型、編譯器版本、操作系統。


  1. //GCC編譯器

  2. #ifdef __GNUC__

  3. #if __GNUC__ >= 3 // GCC3.0以上


  4. //MSVC編譯器

  5. #ifdef _MSC_VER

  6. #if _MSC_VER >=1000 // VC++4.0以上

  7. #if _MSC_VER >=1100 // VC++5.0以上

  8. #if _MSC_VER >=1200 // VC++6.0以上

  9. #if _MSC_VER >=1300 // VC2003以上

  10. #if _MSC_VER >=1400 // VC2005以上

  11. #if _MSC_VER >=1500 // VC2008以上

  12. #if _MSC_VER >=1600 // VC2010以上

  13. #if _MSC_VER >=1700 // VC2012以上

  14. #if _MSC_VER >=1800 // VC2013以上

  15. #if _MSC_VER >=1900 // VC2015以上


  16. //Borland C++

  17. #ifdef __BORLANDC__


  18. //Cygwin


  19. #ifdef __CGWIN__


  20. #ifdef __CYGWIN32__


  21. //mingw


  22. #ifdef __MINGW32__


  23. //windows


  24. #ifdef _WIN32 //32bit


  25. #ifdef _WIN64 //64bit


  26. #ifdef _WINDOWS //圖形界面程序


  27. #ifdef _CONSOLE //控制臺程序


  28. //Windows(95/98/Me/NT/2000/XP/Vista)和Windows CE都定義了


  29. #if (WINVER >= 0x030a) // Windows 3.1以上


  30. #if (WINVER >= 0x0400) // Windows 95/NT4.0以上


  31. #if (WINVER >= 0x0410) // Windows 98以上


  32. #if (WINVER >= 0x0500) // Windows Me/2000以上


  33. #if (WINVER >= 0x0501) // Windows XP以上


  34. #if (WINVER >= 0x0600) // Windows Vista以上


  35. //_WIN32_WINNT 內核版本


  36. #if (_WIN32_WINNT >= 0x0500) // Windows 2000以上


  37. #if (_WIN32_WINNT >= 0x0501) // Windows XP以上


  38. #if (_WIN32_WINNT >= 0x0600) // Windows Vista以上


32. 在pro中判斷Qt版本及構建套件位數


  1. #打印版本信息

  2. message(qt version: $$QT_VERSION)


  3. #判斷當前qt版本號

  4. QT_VERSION = $$[QT_VERSION]

  5. QT_VERSION = $$split(QT_VERSION, ".")

  6. QT_VER_MAJ = $$member(QT_VERSION, 0)

  7. QT_VER_MIN = $$member(QT_VERSION, 1)


  8. #下面是表示 Qt5.5

  9. greaterThan(QT_VER_MAJ, 4) {

  10. greaterThan(QT_VER_MIN, 4) {

  11. #自己根據需要做一些處理

  12. }

  13. }


  14. #QT_ARCH是Qt5新增的,在Qt4上沒效果

  15. #打印當前Qt構建套件的信息

  16. message($$QT_ARCH)


  17. #表示arm平臺構建套件

  18. contains(QT_ARCH, arm) {}


  19. #表示32位的構建套件

  20. contains(QT_ARCH, i386) {}


  21. #表示64位的構建套件

  22. contains(QT_ARCH, x86_64) {}


33. Qt最小化后恢復界面假死凍結,加上代碼


  1. void showEvent(QShowEvent *e)

  2. {

  3. setAttribute(Qt::WA_Mapped);

  4. QWidget::showEvent(e);

  5. }


34. 獲取標題欄高度:style()->pixelMetric(QStyle::PM_TitleBarHeight); PM_TitleBarHeight點進去你會發現新大陸。

35. 設置高分屏屬性以便支持2K4K等高分辨率,尤其是手機app。必須寫在main函數的QApplication a(argc, argv);的前面。


  1. #if (QT_VERSION > QT_VERSION_CHECK(5,6,0))

  2. QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

  3. #endif


36. 如果運行程序出現 Fault tolerant heap shim applied to current process. This is usually due to previous crashes. 錯誤。

辦法:打開注冊表,找到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\,選中Layers鍵值,從右側列表中刪除自己的那個程序路徑即可。

37. Qt內置了QFormLayout表單布局用于自動生成標簽+輸入框的組合的表單界面。

38. qml播放視頻在linux需要安裝 sudo apt-get install libpulse-dev。

39. 可以直接繼承QSqlQueryModel實現自定義的QueryModel,比如某一列字體顏色,占位符,其他樣式等,重寫QVariant CustomSqlModel::data(const QModelIndex &index, int role) const。

40. Qt5以后提供了類QScroller直接將控件滾動。


  1. //禁用橫向滾動條

  2. ui->listWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);


  3. //禁用縱向滾動條

  4. ui->listWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);


  5. //設置橫向按照像素值為單位滾動

  6. ui->listWidget->setHorizontalScrollMode(QListWidget::ScrollPerPixel);


  7. //設置縱向按照像素值為單位滾動

  8. ui->listWidget->setVerticalScrollMode(QListWidget::ScrollPerPixel);


  9. //設置滾動對象以及滾動方式為鼠標左鍵拉動滾動

  10. QScroller::grabGesture(ui->listWidget, QScroller::LeftMouseButtonGesture);


  11. //還有個QScrollerProperties可以設置滾動的一些參數


41. 如果使用sqlite數據庫不想產生數據庫文件,可以創建內存數據庫。


  1. QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");

  2. db.setDatabaseName(":memory:");


42. 清空數據表并重置自增ID,sql = truncate table table_name。

43. Qtchart模塊從Qt5.7開始自帶,最低編譯要求Qt5.4。在安裝的時候記得勾選,默認不勾選。使用該模塊需要引入命名空間。


  1. #include <QChartView>

  2. QT_CHARTS_USE_NAMESPACE

  3. class CustomChart : public QChartView


44. QPushButton左對齊文字,需要設置樣式表QPushButton{text-align:left;}

45. QLabel有三種設置文本的方法,掌握好Qt的屬性系統,舉一反三,可以做出很多效果。


  1. ui->label->setStyleSheet("qproperty-text:hello;");

  2. ui->label->setProperty("text", "hello");

  3. ui->label->setText("hello");


46. 巧妙的用QEventLoop開啟事件循環,可以使得很多同步獲取返回結果而不阻塞界面。QEventLoop內部新建了線程執行。


  1. QEventLoop loop;

  2. connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));

  3. loop.exec();


47. 多種預定義變量 #if (defined webkit) || (defined webengine),去掉生成空的debug和release目錄 CONFIG -= debug_and_release。

48. 新版的Qtcreator增強了語法檢查,會彈出很多警告提示等,可以在插件列表中關閉clang打頭的幾個即可,Help》About Plugins。也可以設置代碼檢查級別,Tools》Options 》C++ 》Code Model。

49. QSqlTableModel的rowCount方法,默認最大返回256,如果超過256,可以將表格拉到底部,會自動加載剩余的,每次最大加載256條數據,如果需要打印或者導出數據,記得最好采用sql語句去查詢,而不是使用QSqlTableModel的rowCount方法。不然永遠最大只會導出256條數據。

如果數據量很小,也可以采用如下方法:


  1. //主動加載所有數據,不然獲取到的行數<=256

  2. while(model->canFetchMore()) {

  3. model->fetchMore();

  4. }


50. 如果需要指定無邊框窗體,但是又需要保留操作系統的邊框特性,可以自由拉伸邊框,可以使用

setWindowFlags(Qt::CustomizeWindowHint);

51. 在某些http post數據的時候,如果采用的是&字符串連接的數據發送,中文解析亂碼的話,需要將中文進行URL轉碼。


  1. QString content = "測試中文";

  2. QString note = content.toUtf8().toPercentEncoding();


52. Qt默認不支持大資源文件,比如添加了字體文件,需要pro文件開啟。

CONFIG += resources_big

53. Qt中繼承QWidget之后,樣式表不起作用,解決辦法有三個。強烈推薦方法一。

- 方法一:設置屬性 this->setAttribute(Qt::WA_StyledBackground, true);

- 方法二:改成繼承QFrame,因為QFrame自帶paintEvent函數已做了實現,在使用樣式表時會進行解析和繪制。

- 方法三:重新實現QWidget的paintEvent函數時,使用QStylePainter繪制。


  1. void Widget::paintEvent(QPaintEvent *)

  2. {

  3. QStyleOption option;

  4. option.initFrom(this);

  5. QPainter painter(this);

  6. style()->drawPrimitive(QStyle::PE_Widget, &option, &painter, this);

  7. }


 54. 有時候在界面上加了彈簧,需要動態改變彈簧對應的拉伸策略,對應方法為changeSize,很多人會選擇使用set開頭去找,找不到的。

55. 在使用QFile的過程中,不建議頻繁的打開文件寫入然后再關閉文件,比如間隔5ms輸出日志,IO性能瓶頸很大,這種情況建議先打開文件不要關閉,等待合適的時機比如析構函數中或者日期變了需要重新變換日志文件的時候關閉文件。不然短時間內大量的打開關閉文件會很卡,文件越大越卡。

56. 在很多網絡應用程序,需要自定義心跳包來保持連接,不然斷電或者非法關閉程序,對方識別不到,需要進行超時檢測,但是有些程序沒有提供心跳協議,此時需要啟用系統層的保活程序,此方法適用于TCP連接。


  1. int fd = tcpSocket->socketDescriptor();

  2. int keepAlive = 1; //開啟keepalive屬性,缺省值:0(關閉)

  3. int keepIdle = 5; //如果在5秒內沒有任何數據交互,則進行探測,缺省值:7200(s)

  4. int keepInterval = 2; //探測時發探測包的時間間隔為2秒,缺省值:75(s)

  5. int keepCount = 2; //探測重試的次數,全部超時則認定連接失效,缺省值:9(次)

  6. setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (void *)&keepAlive, sizeof(keepAlive));

  7. setsockopt(fd, SOL_TCP, TCP_KEEPIDLE, (void *)&keepIdle, sizeof(keepIdle));

  8. setsockopt(fd, SOL_TCP, TCP_KEEPINTVL, (void *)&keepInterval, sizeof(keepInterval));

  9. setsockopt(fd, SOL_TCP, TCP_KEEPCNT, (void *)&keepCount, sizeof(keepCount));


57. 如果程序打包好以后彈出提示 This application failed to start because it could not find or load the Qt platform plugin 一般都是因為platforms插件目錄未打包或者打包錯了的原因導致的。

58. 非常不建議tr中包含中文,盡管現在的新版Qt支持中文到其他語言的翻譯,但是很不規范,也不知道TMD是誰教的,tr的本意是包含英文,然后翻譯到其他語言比如中文,現在大量的初學者濫用tr,如果沒有翻譯的需求,禁用tr,tr需要開銷的,Qt默認會認為他需要翻譯,會額外進行特殊處理。

59. 很多人Qt和Qt Creator傻傻分不清楚,經常問Qt什么版本結果發一個Qt Creator的版本過來,Qt Creator是使用Qt編寫的集成開發環境IDE,和宇宙第一的Visual Studio一樣,他可以是msvc編譯器的(WIN對應的Qt集成安裝環境中自帶的Qt Cerator是msvc的),也可以是mingw編譯的,還可以是gcc的。如果是自定義控件插件,需要集成到Qt Creator中,必須保證該插件的動態庫文件(dll或者so等文件)對應的編譯器和Qt版本以及位數和Qt Creator的版本完全一致才行,否則基本不大可能集成進去。特別注意的是Qt集成環境安裝包中的Qt版本和Qt Creator版本未必完全一致,必須擦亮眼睛看清楚,有些是完全一致的。

60. 超過兩處相同處理的代碼,建議單獨寫成函數。代碼盡量規范精簡,比如 if(a == 123) 要寫成 if (123 == a),值在前面,再比如 if (ok == true) 要寫成 if (ok),if (ok == false) 要寫成 if (!ok)等。

61. 很多人問Qt嵌入式平臺用哪個好,這里統一回答(當前時間節點2018年):imx6+335x比較穩定,性能高就用RK3288 RK3399,便宜的話就用全志H3,玩一玩可以用樹莓派香橙派。

62. 對于大段的注釋代碼,建議用 #if 0 #endif 將代碼塊包含起來,而不是將該段代碼選中然后全部 // ,下次要打開這段代碼的話,又需要重新選中一次取消,如果采用的是 #if 0則只要把0改成1即可,效率大大提升。

63. Qt打包發布,有很多辦法,Qt5以后提供了打包工具windeployqt(linux上為linuxdeployqt,mac上為macdeployqt)可以很方便的將應用程序打包,使用下來發現也不是萬能的,有時候會多打包一些沒有依賴的文件,有時候又會忘記打包一些插件尤其是用了qml的情況下,而且不能識別第三方庫,比如程序依賴ffmpeg,則對應的庫需要自行拷貝,終極大法就是將你的可執行文件復制到Qt安裝目錄下的bin目錄,然后整個一起打包,挨個刪除不大可能依賴的組件,直到刪到正常運行為止。

64. Qt中的動畫,底層用的是QElapsedTimer定時器來完成處理,比如產生一些指定規則算法的數據,然后對屬性進行處理。

65. 在繪制無背景顏色只有邊框顏色的圓形時候,可以用繪制360度的圓弧替代,效果完全一致。


  1. QRect rect(-radius, -radius, radius * 2, radius * 2);

  2. //以下兩種方法二選一,其實繪制360度的圓弧=繪制無背景的圓形

  3. painter->drawArc(rect, 0, 360 * 16);

  4. painter->drawEllipse(rect);


66. 不要把d指針看的很玄乎,其實就是在類的實現文件定義了一個私有類,用來存放局部變量,個人建議在做一些小項目時,沒有太大必要引入這種機制,會降低代碼可讀性,增加復雜性,新手接受項目后會看的很懵逼。

67. 很多人在繪制的時候,設置畫筆以為就只可以設置個單調的顏色,其實QPen還可以設置brush,這樣靈活性就提高不知道多少倍,比如設置QPen的brush以后,可以使用各種漸變,比如繪制漸變顏色的進度條和文字等,而不再是單調的一種顏色。

68. 很多控件都帶有viewport,比如QTextEdit/QTableWidget/QScrollArea,有時候對這些控件直接處理的時候發現不起作用,需要對其viewport()設置才行,比如設置滾動條區域背景透明,需要使用scrollArea->viewport()->setStyleSheet("background-color:transparent;");而不是scrollArea->setStyleSheet("QScrollArea{background-color:transparent;}");

69. 有時候設置了鼠標跟蹤setMouseTracking為真,如果該窗體上面還有其他控件,當鼠標移到其他控件上面的時候,父類的鼠標移動事件MouseMove識別不到了,此時需要用到HoverMove事件,需要先設置 setAttribute(Qt::WA_Hover, true);

70. Qt封裝的QDateTime日期時間類非常強大,可以字符串和日期時間相互轉換,也可以毫秒數和日期時間相互轉換,還可以1970經過的秒數和日期時間相互轉換等。


  1. QDateTime dateTime;

  2. QString dateTime_str = dateTime.currentDateTime().toString("yyyy-MM-dd hh:mm:ss");

  3. //從字符串轉換為毫秒(需完整的年月日時分秒)

  4. datetime.fromString("2011-09-10 12:07:50:541", "yyyy-MM-dd hh:mm:ss:zzz").toMSecsSinceEpoch();

  5. //從字符串轉換為秒(需完整的年月日時分秒)

  6. datetime.fromString("2011-09-10 12:07:50:541", "yyyy-MM-dd hh:mm:ss:zzz").toTime_t();

  7. //從毫秒轉換到年月日時分秒

  8. datetime.fromMSecsSinceEpoch(1315193829218).toString("yyyy-MM-dd hh:mm:ss:zzz");

  9. //從秒轉換到年月日時分秒(若有zzz,則為000)

  10. datetime.fromTime_t(1315193829).toString("yyyy-MM-dd hh:mm:ss[:zzz]");


71. 在我們使用QList、QStringList、QByteArray等鏈表或者數組的過程中,如果只需要取值,而不是賦值,強烈建議使用 at() 取值而不是 [] 操作符,在官方書籍《C++ GUI Qt 4編程(第二版)》的書中有特別的強調說明,此教材的原作者據說是Qt開發的核心人員編寫的,所以還是比較權威,至于使用 at() 與使用 [] 操作符速度效率的比較,網上也有網友做過此類對比。原文在書的212頁,這樣描述的:Qt對所有的容器和許多其他類都使用隱含共享,隱含共享是Qt對不希望修改的數據決不進行復制的保證,為了使隱含共享的作用發揮得最好,可以采用兩個新的編程習慣。第一種習慣是對于一個(非常量的)向量或者列表進行只讀存取時,使用 at() 函數而不用 [] 操作符,因為Qt的容器類不能辨別 [] 操作符是否將出現在一個賦值的左邊還是右邊,他假設最壞的情況出現并且強制執行深層賦值,而 at() 函數則不被允許出現在一個賦值的左邊。

72. 如果是dialog窗體,需要在exec以后還能讓其他代碼繼續執行,請在dialog窗體exec前增加一行代碼,否則會阻塞窗體消息。


  1. QDialog dialog;

  2. dialog.setWindowModality(Qt::WindowModal);

  3. dialog.exec();


73. 安全的刪除Qt的對象類,強烈建議使用deleteLater而不是delete,因為deleteLater會選擇在合適的時機進行釋放,而delete會立即釋放,很可能會出錯崩潰。如果要批量刪除對象集合,可以用qDeleteAll,比如 qDeleteAll(btns);

74. 在QTableView控件中,如果需要自定義的列按鈕、復選框、下拉框等其他模式顯示,可以采用自定義委托QItemDelegate來實現,如果需要禁用某列,則在自定義委托的重載createEditor函數返回0即可。自定義委托對應的控件在進入編輯狀態的時候出現,如果想一直出現,則需要重載paint函數用drawPrimitive或者drawControl來繪制。

75. 將 QApplication::style() 對應的drawPrimitive、drawControl、drawItemText、drawItemPixmap等幾個方法用熟悉了,再結合QStyleOption屬性,可以玩轉各種自定義委托,還可以直接使用paint函數中的painter進行各種繪制,各種牛逼的表格、樹狀列表、下拉框等,絕對屌炸天。QApplication::style()->drawControl 的第4個參數如果不設置,則繪制出來的控件不會應用樣式表。

76. 心中有坐標,萬物皆painter,強烈建議在學習自定義控件繪制的時候,將qpainter.h頭文件中的函數全部看一遍、試一遍、理解一遍,這里邊包含了所有Qt內置的繪制的接口,對應的參數都試一遍,你會發現很多新大陸,會大大激發你的繪制的興趣,猶如神筆馬良一般,策馬崩騰遨游代碼繪制的世界。

77. 在使用setItemWidget或者setCellWidget的過程中,有時候會發現設置的控件沒有居中顯示而是默認的左對齊,而且不會自動拉伸填充,對于追求完美的程序員來說,這個可不大好看,有個終極通用辦法就是,將這個控件放到一個widget的布局中,然后將widget添加到item中,這樣就完美解決了,而且這樣可以組合多個控件產生復雜的控件。


  1. //實例化進度條控件

  2. QProgressBar *progress = new QProgressBar;

  3. //增加widget+布局巧妙實現居中

  4. QWidget *widget = new QWidget;

  5. QHBoxLayout *layout = new QHBoxLayout;

  6. layout->setSpacing(0);

  7. layout->setMargin(0);

  8. layout->addWidget(progress);

  9. widget->setLayout(layout);

  10. ui->tableWidget->setCellWidget(0, 0, widget);


78. 很多時候需要在已知背景色的情況下,能夠清晰的繪制文字,這個時候需要計算對應的文字顏色。


  1. //根據背景色自動計算合適的前景色

  2. double gray = (0.299 * color.red() + 0.587 * color.green() + 0.114 * color.blue()) / 255;

  3. QColor textColor = gray > 0.5 ? Qt::black : Qt::white;


79. 對QTableView或者QTableWidget禁用列拖動。


  1. #if (QT_VERSION <= QT_VERSION_CHECK(5,0,0))

  2. ui->tableView->horizontalHeader()->setResizeMode(0, QHeaderView::Fixed);

  3. #else

  4. ui->tableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);

  5. #endif


80. 從Qt4轉到Qt5,有些類的方法已經廢棄或者過時了,如果想要在Qt5中啟用Qt4的方法,比如QHeadVew的setMovable,可以在你的pro或者pri文件中加上一行即可:DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0

81. Qt中的QColor對顏色封裝的很完美,支持各種轉換,比如rgb、hsb、cmy、hsl,對應的是toRgb、toHsv、toCmyk、toHsl,還支持透明度設置,顏色值還能轉成16進制格式顯示。


  1. QColor color(255, 0, 0, 100);

  2. qDebug() << color.name() << color.name(QColor::HexArgb);

  3. //輸出 #ff0000 #64ff0000


82. QVariant類型異常的強大,可以說是萬能的類型,在進行配置文件的存儲的時候,經常會用到QVariant的轉換,QVariant默認自帶了toString、toFloat等各種轉換,但是還是不夠,比如有時候需要從QVariant轉到QColor,而卻沒有提供toColor的函數,這個時候就要用到萬能辦法。


  1. if (variant.typeName() == "QColor") {

  2. QColor color = variant.value<QColor>();

  3. QFont font = variant.value<QFont>();

  4. QString nodeValue = color.name(QColor::HexArgb);

  5. }


83. Qt中的QString和const char *之間轉換,最好用toStdString().c_str()而不是toLocal8Bit().constData(),比如在setProperty中如果用后者,字符串中文就會不正確,英文正常。

84. Qt的信號槽機制非常牛逼,也是Qt的獨特的核心功能之一,有時候我們在很多窗體中傳遞信號來實現更新或者處理,如果窗體層級比較多,比如窗體A的父類是窗體B,窗體B的父類是窗體C,窗體C有個子窗體D,如果窗體A一個信號要傳遞給窗體D,問題來了,必須先經過窗體B中轉到窗體C再到窗體D才行,這樣的話各種信號關聯信號的connect會非常多而且管理起來比較亂,可以考慮增加一個全局的單例類AppEvent,公共的信號放這里,然后窗體A對應信號綁定到AppEvent,窗體D綁定AppEvent的信號到對應的槽函數即可,干凈清爽整潔。

85. QTextEdit右鍵菜單默認英文的,如果想要中文顯示,加載widgets.qm文件即可,一個Qt程序中可以安裝多個翻譯文件,不沖突。

86. Qt中有個全局的焦點切換信號focusChanged,可以用它做自定義的輸入法。Qt4中默認會安裝輸入法上下文,比如在main函數打印a.inputContext會顯示值,這個默認安裝的輸入法上下文,會攔截兩個牛逼的信號QEvent::RequestSoftwareInputPanel和QEvent::CloseSoftwareInputPanel,以至于就算你安裝了全局的事件過濾器依然識別不到這兩個信號,你只需要在main函數執行a.setInputContext(0)即可,意思是安裝輸入法上下文為空。

87. 在Qt5.10以后,表格控件QTableWidget或者QTableView的默認最小列寬改成了15,以前的版本是0,所以在新版的qt中,如果設置表格的列寬過小,不會應用,取的是最小的列寬。所以如果要設置更小的列寬需要重新設置ui->tableView->horizontalHeader()->setMinimumSectionSize(0);

88. Qt源碼中內置了一些未公開的不能直接使用的黑科技,都藏在對應模塊的private中,比如gui-private widgets-private等,比如zip文件解壓類QZipReader、壓縮類QZipWriter就在gui-private模塊中,需要在pro中引入QT += gui-private才能使用。


  1. #include "QtGui/private/qzipreader_p.h"

  2. #include "QtGui/private/qzipwriter_p.h"


  3. QZipReader reader(dirPath);

  4. QString path("");

  5. //解壓文件夾到當前目錄


  6. reader.etractAll(path);


  7. //文件夾名稱


  8. QZipReader::FileInfo fileInfo = reader.entryInfoAt(0);


  9. //解壓文件


  10. QFile file(filePath);


  11. file.open(QIODevice::WriteOnly);


  12. file.write(reader.fileData(QString::fromLocal8Bit("%1").arg(filePath)));


  13. file.close();


  14. reader.close();


  15. QZipWriter *writer = new QZipWriter(dirPath);


  16. //添加文件夾


  17. writer->addDirectory(unCompress);


  18. //添加文件


  19. QFile file(filePath);


  20. file.open(QIODevice::ReadOnly);


  21. writer->addFile(data, file.readAll());


  22. file.close();


  23. writer->close();


89. 理論上串口和網絡收發數據都是默認異步的,操作系統自動調度,完全不會卡住界面,網上那些說收發數據卡住界面主線程的都是扯幾把蛋,真正的耗時是在運算以及運算后的處理,而不是收發數據,在一些小數據量運算處理的項目中,一般不建議動用線程去處理,線程需要調度開銷的,不要什么東西都往線程里邊扔,線程不是萬能的。只有當真正需要將一些很耗時的操作比如編碼解碼等,才需要移到線程處理。

90. 在構造函數中獲取控件的寬高很可能是不正確的,需要在控件首次顯示以后再獲取才是正確的,控件是在首次顯示以后才會設置好正確的寬高值,記住是在首次顯示以后,而不是構造函數或者程序啟動好以后,如果程序啟動好以后有些容器控件比如QTabWidget中的沒有顯示的頁面的控件,你去獲取寬高很可能也是不正確的,萬無一失的辦法就是首次顯示以后去獲取。

91. 數據庫處理一般建議在主線程,如果非要在其他線程,務必記得打開數據庫也要在那個線程,即在那個線程使用數據庫就在那個線程打開,不能打開數據庫在主線程,執行sql在子線程,很可能出問題。

92. 新版的QTcpServer類在64位版本的Qt下很可能不會進入incomingConnection函數,那是因為Qt5對應的incomingConnection函數參數變了,由之前的int改成了qintptr,改成qintptr有個好處,在32位上自動是quint32而在64位上自動是quint64,如果在Qt5中繼續寫的參數是int則在32位上沒有問題在64位上才有問題,所以為了兼容Qt4和Qt5,必須按照不一樣的參數寫。


  1. #if (QT_VERSION > QT_VERSION_CHECK(5,0,0))

  2. void incomingConnection(qintptr handle);

  3. #else

  4. void incomingConnection(int handle);

  5. #endif


93. Qt支持所有的界面控件比如QPushButton、QLineEdit自動關聯 on_控件名_信號(參數) 信號槽,比如按鈕的單擊信號 on_pushButton_clicked(),然后直接實現槽函數即可。

94. QWebEngineView控件由于使用了opengl,在某些電腦上可能由于opengl的驅動過低會導致花屏或者各種奇奇怪怪的問題,比如showfullscreen的情況下鼠標右鍵失效,需要在main函數啟用軟件opengl渲染。


  1. #if (QT_VERSION > QT_VERSION_CHECK(5,4,0))

  2. //下面兩種方法都可以,Qt默認采用的是AA_UseDesktopOpenGL

  3. QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);

  4. //QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);

  5. #endif

  6. QApplication a(argc, argv);


另外一個方法解決 全屏+QWebEngineView控件一起會產生右鍵菜單無法彈出的bug,需要上移一個像素


  1. QRect rect = qApp->desktop()->geometry();

  2. rect.setY(-1);

  3. rect.setHeight(rect.height());

  4. this->setGeometry(rect);


95. QStyle內置了很多方法用處很大,比如精確獲取滑動條鼠標按下處的值。

QStyle::sliderValueFromPosition(minimum(), maximum(), event->x(), width());

96. 用QFile讀寫文件的時候,推薦用QTextStream文件流的方式來讀寫文件,速度快很多,基本上會有30%的提升,文件越大性能區別越大。


  1. //從文件加載英文屬性與中文屬性對照表

  2. QFile fle(":/propertyname.txt");


  3. if (file.open(QFile::ReadOnly)) {


  4. //QTextStream方法讀取速度至少快30%


  5. #if 0


  6. while(!file.atEnd()) {


  7. QString line = file.readLine();


  8. appendName(line);


  9. }


  10. #else


  11. QTextStream in(&file);


  12. while (!in.atEnd()) {


  13. QString line = in.readLine();


  14. appendName(line);


  15. }


  16. #endif


  17. file.close();


  18. }


97. 用QFile.readAll()讀取QSS文件默認是ANSI格式,不支持UTF8,如果在QtCreator中打開qss文件來編輯保存,這樣很可能導致qss加載以后沒有效果。


  1. void frmMain::initStyle()

  2. {

  3. //加載樣式表

  4. QString qss;

  5. //QFile file(":/qss/psblack.css");

  6. //QFile file(":/qss/flatwhite.css");

  7. QFile file(":/qss/lightblue.css");

  8. if (file.open(QFile::ReadOnly)) {

  9. #if 1

  10. //用QTextStream讀取樣式文件不用區分文件編碼 帶bom也行

  11. QStringList list;

  12. QTextStream in(&file);

  13. //in.stCodec("utf-8");


  14. while (!in.atEnd()) {


  15. QString line;


  16. in >> line;


  17. list << line;


  18. }


  19. qss = list.join("\n");


  20. #else


  21. //用readAll讀取默認支持的是ANSI格式,如果不小心用creator打開編輯過了很可能打不開


  22. qss = QLatin1String(file.readAll());


  23. #endif


  24. QString paletteColor = qss.mid(20, 7);


  25. qApp->setPalette(QPalette(QColor(paletteColor)));


  26. qApp->setStyleSheet(qss);


  27. file.close();


  28. }


  29. }


98. QString內置了很多轉換函數,比如可以調用toDouble轉為double數據,但是當你轉完并打印的時候你會發現精確少了,只剩下三位了,其實原始數據還是完整的精確度的,只是打印的時候優化成了三位,如果要保證完整的精確度,可以調用 qSetRealNumberPrecision 函數設置精確度位數即可。


  1. QString s1, s2;

  2. s1 = "666.5567124";

  3. s2.setNum(888.5632123, 'f', 7);

  4. qDebug() << qSetRealNumberPrecision(10) << s1.toDouble() << s2.toDouble();


99. 用QScriptValueIterator解析數據的時候,會發現總是會多一個節點內容,并且內容為空,如果需要跳過則增加一行代碼。


  1. while (it.hasNext()) {

  2. it.next();

  3. if (it.flags() & QScriptValue::SkipInEnumeration)

  4. continue;

  5. qDebug() << it.name();

  6. }


100. setPixmap是最糟糕的貼圖方式,一般只用來簡單的不是很頻繁的貼圖,頻繁的建議painter繪制,默認雙緩沖,在高級點用opengl繪制,利用GPU。

101. 如果需要在尺寸改變的時候不重繪窗體,則設置屬性即可 this->setAttribute(Qt::WA_StaticContents, true); 這樣可以避免可以避免對已經顯示區域的重新繪制。

102. 默認程序中獲取焦點以后會有虛邊框,如果看著覺得礙眼不舒服可以去掉,設置樣式即可:setStyleSheet("*{outline:0px;}");

103. Qt表格控件一些常用的設置封裝,QTableWidget繼承自QTableView,所以下面這個函數支持傳入QTableWidget。


  1. void QUIHelper::initTableView(QTableView *tableView, int rowHeight, bool headVisible, bool edit)

  2. {

  3. //奇數偶數行顏色交替

  4. tableView->setAlternatingRowColors(false);

  5. //垂直表頭是否可見

  6. tableView->verticalHeader()->setVisible(headVisible);

  7. //選中一行表頭是否加粗

  8. tableView->horizontalHeader()->setHighlightSections(false);

  9. //最后一行拉伸填充

  10. tableView->horizontalHeader()->setStretchLastSection(true);

  11. //行標題最小寬度尺寸

  12. tableView->horizontalHeader()->setMinimumSectionSize(0);

  13. //行標題最大高度

  14. tableView->horizontalHeader()->setMaximumHeight(rowHeight);

  15. //默認行高

  16. tableView->verticalHeader()->setDefaultSectionSize(rowHeight);

  17. //選中時一行整體選中

  18. tableView->setSelectionBehavior(QAbstractItemView::SelectRows);

  19. //只允許選擇單個

  20. tableView->setSelectionMode(QAbstractItemView::SingleSelection);

  21. //表頭不可單擊

  22. #if (QT_VERSION > QT_VERSION_CHECK(5,0,0))

  23. tableView->horizontalHeader()->setSectionsClickable(false);

  24. #else

  25. tableView->horizontalHeader()->setClickable(false);

  26. #endif

  27. //鼠標按下即進入編輯模式

  28. if (edit) {

  29. tableView->setEditTriggers(QAbstractItemView::CurrentChanged | QAbstractItemView::DoubleClicked);

  30. } else {

  31. tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);

  32. }

  33. }


104. 在一些大的項目中,可能嵌套了很多子項目,有時候會遇到子項目依賴其他子項目的時候,比如一部分子項目用來生成動態庫,一部分子項目依賴這個動態庫進行編譯,此時就需要子項目按照順序編譯。


  1. TEMPLATE = subdirs

  2. #設置ordered參數以后會依次編譯 demo designer examples

  3. CONFIG += ordered

  4. SUBDIRS += demo

  5. SUBDIRS += designer

  6. SUBDIRS += examples


105. MSVC編譯器的選擇說明

- 如果是32位的Qt則編譯器選擇x86開頭的

- 如果是64位的Qt則編譯器選擇amd64開頭的

- 具體是看安裝的Qt構建套件版本以及目標運行平臺的系統位數和架構

- 一般現在的電腦默認以64位的居多,選擇amd64即可

- 如果用戶需要兼容32位的系統則建議選擇32位的Qt,這樣即可在32位也可以在64位系統運行

- 諸葛大佬補充:x86/x64都是編譯環境和運行環境相同,沒有或。帶下劃線的就是交叉編譯,前面是編譯環境,后面是運行環境。

| 名稱 | 說明 |

| ------ | ------ |

|x86|32/64位系統上編譯在32/64位系統上運行|

|x86_amd64|32/64位系統上編譯在64位系統上運行|

|x86_arm|32/64位系統上編譯在arm系統上運行|

|amd64|64位系統上編譯在64位系統上運行|

|amd64_x86|64位系統上編譯在32/64位系統上運行|

|amd64_arm|64位系統上編譯在arm系統上運行|

106. 很多時候用QDialog的時候會發現阻塞了消息,而有的時候我們希望是后臺的一些消息繼續運行不要終止,此時需要做個設置。


  1. QDialog dialog;

  2. dialog.setWindowModality(Qt::WindowModal);


107. 很多初學者甚至幾年工作經驗的人,對多線程有很深的誤解和濫用,尤其是在串口和網絡通信這塊,什么都往多線程里面丟,一旦遇到界面卡,就把數據收發啥的都搞到多線程里面去,殊不知絕大部分時候那根本沒啥用,因為沒找到出問題的根源。

- 如果你沒有使用wait***函數的話,大部分的界面卡都出在數據處理和展示中,比如傳過來的是一張圖片的數據,你需要將這些數據轉成圖片,這個肯定是耗時的;

- 還有就是就收到的數據曲線繪制出來,如果過于頻繁或者間隔過短,肯定會給UI造成很大的壓力的,最好的辦法是解決如何不要頻繁繪制UI比如合并數據一起繪制等;

- 如果是因為繪制UI造成的卡,那多線程也是沒啥用的,因為UI只能在主線程;

- 串口和網絡的數據收發默認都是異步的,由操作系統調度的,如果數據處理復雜而且數據量大,你要做的是將數據處理放到多線程中;

- 如果沒有嚴格的數據同步需求,根本不需要調用wait***之類的函數來立即發送和接收數據,實際需求中大部分的應用場景其實異步收發數據就足夠了;

- 有嚴格數據同步需求的場景還是放到多線程會好一些,不然你wait***就卡在那邊了;

- 多線程是需要占用系統資源的,理論上來說,如果線程數量超過了CPU的核心數量,其實多線程調度可能花費的時間更多,各位在使用過程中要權衡利弊;

 108. 在嵌入式linux上,如果設置了無邊框窗體,而該窗體中又有文本框之類的,發現沒法產生焦點進行輸入,此時需要主動激活窗體才行。


  1. //這種方式設置的無邊框窗體在嵌入式設備上無法產生焦點

  2. setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint);

  3. //需要在show以后主動激活窗體

  4. w->show();

  5. w->activateWindow();


109. QString的replace函數會改變原字符串,切記,他在返回替換后的新字符串的同時也會改變原字符串,我的乖乖!

110. QGraphicsEffect類的相關效果很炫,可以實現很多效果比如透明、漸變、陰影等,但是該類很耗CPU,如果不是特別需要一般不建議用,就算用也是要用在該部件后期不會發生頻繁繪制的場景,不然會讓你哭暈在廁所。

111. 在不同的平臺上文件路徑的斜杠也是不一樣的,比如linux系統一般都是 / 斜杠,而在windows上都是 \\ 兩個反斜杠,Qt本身程序內部無論在win還是linux都支持 / 斜杠的路徑,但是一些第三方庫的話可能需要轉換成對應系統的路徑,這就需要用到斜杠轉換,Qt當然內置類方法。


  1. QString path = "C:/temp/test.txt";

  2. path = QDir::toNativeSeparators(path);

  3. //輸出 C:\\temp\\test.txt

  4. QString path = "C:\\temp\\test.txt";

  5. path = QDir::toNativeSeparators(path);

  6. //輸出 C:/temp/test.txt


112. 巧用QMetaObject::invokeMethod方法可以實現很多效果,包括同步和異步執行,比如有個應用場景是在回調中,需要異步調用一個public函數,如果直接調用的話會發現不成功,此時需要使用 QMetaObject::invokeMethod(obj, "fun", Qt::QueuedConnection); 這種方式來就可以。invokeMethod函數有很多重載參數,可以傳入返回值和執行方法的參數等。

113. Qt5中的信號是public的,可以在需要的地方直接emit即可,而在Qt4中信號是protected的,不能直接使用,需要定義一個public函數來emit。

114. Qt5.15版本開始官方不再提供安裝包,只提供源碼,可以自行編譯或者在線安裝,估計每次編譯各種版本太麻煩,更多的是為了統計收集用戶使用信息比如通過在線安裝,后期可能會逐步加大商業化力度。

(點這,也可點擊)

轉載自:飛揚青春Gitee主頁


標簽:

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


為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
利記足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 真人boyu·博魚滾球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 最大網上PM娛樂城盤口(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規雷火競技官方買球(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 雷火競技權威十大網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) boyu·博魚信譽足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 權威188BET足球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規188BET足球大全(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 国产成人女人在线观看 | 国产激情无码久久 | 国产麻豆精品国产三级国产av | 国产女人高潮叫床男人桶到爽 | 国产麻豆精品免费密入 | 国产午夜在线观看视频播放 | 精品久久久无码人妻中文字幕麻豆 | 国产真街拍裙底系列在线观看 | 国产午夜精品在线 | 丰满熟妇人妻中文字幕 | 99久re热视频这只有精品6 | 国产精品白丝久久av情趣网站 | 国产成人免费视频在线网站 | 波多野结衣在线调教免费观 | 国产熟女一区二区三区浪潮 | 国产自国产在线观看免费 | 国产成人av综合亚洲色欲 | 国产精品系列在线播放 | 国产精品白浆无码 | 国产午夜av秒播在线观看 | 成年女人毛片免费播放人 | 国产熟女自拍av | 国产大学生无套内射 | 国产成人亚洲老熟女精品 | 精品国偷自产在线不卡短视频 | 国产成人一区二区免费不卡视频 | 精品无码人妻一区二区 | 精品久久国产字幕高潮 | 国产精品无码无卡在线观看 | 91麻豆国产综合精品久久不卡 | 国产精品蜜臀无码福利久久 | 国产麻豆成av人片在线观看 | 国产成人一区二区在线 | 91精品在线免费 | 国产精品白丝jk白祙喷水视频 | 国产精品欧洲专区无码 | av收藏夹| 国产日韩av在 | 国产精品亚洲欧美中字 | 精品无码一区二区三区蜜臀 | 精品无码久久久久久久动漫 | 国产精品国产自线在线观看 | 国产精品一区免费视频播放 | 高清国产一区二区三区 | 精品欧洲av无码一区二区三区 | 国产精品午夜福利不卡 | 成人h小视频在线播放 | 成人精品视频 | 精品国产一区二区三区四区不 | 国语自产偷拍精品视频偷97 | 国产毛片毛多水多的特级毛片 | 成人区人妻精品一区 | 国产精品午夜理论片 | 国产精品福利网站导航伊人网 | 国产精品国产三级国产专区5o | 国产精品v欧美精品v日韩精品 | 国产精品亚洲专区无码性色 | 精品一区二区精品 | 国产高潮抽搐翻白眼在线播放 | 911国产在线观看无码专区 | 国产成人精品免费动漫视频大全 | 18禁黄无码免费网站高潮 | 国产色精品久久人妻无码看片软件 | 精品日韩欧美一区二区三区在线播放 | 国产成人欧美一区二区三区的 | av免费播放一区二 | 国产午夜福利在线视频导航 | 国产精品成人va在线播放 | 国产剧情av麻豆香蕉精品 | 成人精品一区二区三区在线观看 | 国产精品嫩草影院一二三区入口 | 国产在线观看第一页 | 国产动漫一区二区三区无码 | 国产午夜视频在 | 91久久国产高清 | 国产成人无码āā精品一区 | 精品无码午夜福利电影片 | 99久久国产亚洲精品 | 99久久国产精品人妻无码 | 91精品国产免费青青碰在线观 | 国产成人秘在线 | 91成人爽a毛片免费网站观看 | 99久久精品国产一区二区三区 | 成人精品国产亚洲欧洲 | 国产品无码一区二区三区在线 | 国产经典av三 | 国产日本精品一区二区 | 国产激情无码一区二区在线看 | 国产三级精品三级在线专 | 91精品国产91无码网站 | 99国产一区二区精品久久 | 精品少妇人妻一区二区黑料社区 | 国产91精选在线观看麻豆 | 国产精品乱伦一区二区 | 国产丰满老熟妇乱xxx1区 | 精品日本一线二线三线区别在 | 国产日韩aⅴ免费无码一区二区 | 国产高清国际精品福利色噜噜 | 国产免费高潮白浆二区三区 | 国产超碰97久久人人操人人操 | 91在线精品一区二区大受欢迎 | 国产精品视频一区二区五区 | a级毛片在线免费 | 国产中文字幕91在线 | 国产成人综合亚洲欧美天堂 | 91大神在线精品网址 | 国产高清久久久久久 | 国产成人女人毛片视频在线 | 国产精品国产三级国产αv 国产精品国产三级国产成人 | 国产无码不卡一区二区三区 | 97人妻碰碰免费 | 国产一级毛片一区二区三区 | 国产精品免费大片一区二区 | 国产欧美日韩欧美特级 | 国产国语对白在线视频 | 国产精品无码无片在线观看3d | 成a人片在线观看无码专区 成a人片在线观看中文漫画 | 国产高清在线免费观看 | 精品一区二区三区免费站 | 国产精品伦理一区二区三区 | 91大神在线观看精品无码 | 国产免费午夜福利在线播放11 | 国产精品免费a片 | 动漫在线一区不卡精品 | 国产精品无码无卡在线播放 | 国产一区二区三区久久精品 | 成人午夜视频精品一区 | 精品福利在线 | av电影大全五月天 | 国产精品亚洲日韩欧 | 国产成人综合亚洲欧美在 | 97色永久免费视频 | 国产精品国产精品无码 | 国产午夜亚洲精品理论片久久 | 国产一二三四区 | 国产色欲女人乱免费视频 | 国产干美女 | 国产精品福利 | 国产女人喷潮在线观看视频 | 国产亚洲欧美在线播 | 国产精品成人影院久久久 | a级毛片无码免费久久真人软件 | 加勒比中文无码久久综合色 | 国产麻豆精品一区二区三区 | 国产不卡一区二区 | av片区在线观看 | 国产91精选在线观看导航 | 大尺度做爰无遮挡动漫 | 国产精品亚洲专区无码性色 | 国产在线观看一级二级三级 | 91麻豆精品久久久久蜜臀 | 国产美女精品久久久久 | 成人午夜看片 | 国产免费午夜福利在在线 | 成人国产精品秘片多多 | 国产免费高清综合视频 | 囯产精品无码一区二区三区 | 国产成人精品无码播放 | 91免费国| 国产妹子自慰视频下载 | 国产精品一级毛片在线不卡 | 国产女主播喷水视频 | 成人一区二区三区 | 果冻传媒一二三产区 | 国产福利视频一区二区在线播放 | 国产成人户外露出视频在线观看 | 国产精品三级在线观看无码 | 精品福利一区二区三区 | 国内偷窥一区二区三区视 | av无码人妻一区二区三区牛牛 | 国产一区二区三精品久久久无广 | 国产精品无码久久四虎 | 国产女人高潮视频在线观看 | av片免费看 | 国产成人综合伊人日韩 | 国产亚洲曝欧美精品手机在线 | 国产高清无码毛片 | av在线高清一区 | 精品人妻av无码系列 | 国内精品一区二区三区蜜桃 | 2025年最新无码电影 | 91精品国产综合久久香蕉爱欲 | 国产精品毛片一区二区在线 | 国产精品欧美视频另类专区 | 国产人无码a在线观看 | av一区二区三区不卡在线 | av无码观 | 国产精品亚洲色图 | 国产成人精品无缓存在线播放 | 国产白丝在| 91精品久久久久无码午夜福利 | 国产三香港三韩国三 | 国产av国片精品麻豆 | 国产一区二区理论在线观看 | av免费不| 超薄丝袜足j好爽在线观看 超超碰免费超超碰免费 | 二区精品久久久白丝 | 韩国午夜理伦三级在线观看仙踪林 | 18禁裸男晨勃露j毛免费观看 | 国产福利片免费在线 | 91看片淫黄大片一级在线观看 | 国产成人午夜福利小久久久 | 国产成人精品午夜在线播放 | 91国内精品野花午夜精品 | 果冻国产传媒61国产免费 | 爆乳美女脱内衣18禁裸露网站 | 国产主播在线观看网 | 成人无码视频网站 | 国产a级毛片一级 | 国产色欲av一区二区三区 | 国产成人亚洲精品久久 | 国产精品无码无在线观看 | 精品国产午夜福利在 | 999久久欧美人妻一区二区 | 91av在线播放 | 国产美女久久精品香蕉欧美 | 国产高潮流白浆啊免费a片动态 | 国产aa免费视频观看 | 国产尤物精品无码成人 | 国产精品秘麻豆果冻传媒在线 | 国产成人久久精品二区三区小说 | 91成人在线视频 | 成人日韩欧美国产黄片视频 | 成人国产三级 | 91久久精一区二区三区大全 | 国产一区二区三区不卡av | 精品三区二区一区 | 国产黄频在线观看视频 | 国产a级毛片一级 | 国产成人无码av在线影院 | 福利精品第一导航 | 国产一区欧美一区二区 | 国产高清免费av片在线观看不卡 | av男人的天堂在线观看第三区 | 成人无码免费一区二区三区 | 国产精品无码中出在线播出 | 国产精品v毛片免费视频 | 99ri精品视频在线观看播放 | 91老司机深夜福利精品视 | 国产成人精品毛片曰本亚洲 | 国产一区二区三区亚洲 | 潮喷大喷水系列无码 | 国产无码自拍高清小电影 | 91在线精品一区二区体验升级 | av高清无码在线加勒比天堂 | av动作片免费无码 | 国产偷伦视频免费观看 | 国产一区二区三区在线观看免费 | 精品亚洲成a人片在线观看少妇蜜 | 国产精品亚洲综合一区在线观看 | 国产av一区| av天堂手机版在线观看网站 | 国产91高清在线 | 国产一区在线 | 国产成人欧洲亚洲 | 国产人妖xxxx做受视频 | heyzo无码综合国产精蜜臀 | 国产午夜鲁 | 按摩已婚人妻精品中文字幕 | 国产精品va在线播放 | 国产精品骚妇熟女内射中出 | 白丝爆乳jk自慰流水网站 | 国产97碰久久免费视频 | 二区精品久久久白丝 | 精品亚洲a∨一区二区三区 精品亚洲a∨在线播放不卡 | 成本人片无码中文字幕免费 | 国产主播福利一二区在线观看 | 东京热日韩无码高清国产精品 | 国产精品毛片精彩视频 | 国产美女视频黄a全免费网站樱花 | 懂色一区二区二区av免费观看 | 国产成人无码久久久天美传媒 | 国产精品一区二区av在线观看 | 97人妻免费视频中文 | 99久久精品国产毛片 | 国产成人三级电影在线观看 | 国产大片中文字幕在线观看 | 国产狂喷潮 | 国产美女爽到喷水视频 | 国精品人妻无码一区二区三区蜜 | 国产精品欧美视频另类专区 | 国产高清一区二区在线免费观看 | 国产成人久久精品推最新 | 国产成人精品无码播放 | 国产一区二区三区精品久久呦 | 国产成年女黄特黄 | 国产成人aⅴ片在线观看免费 | 国产精品无码久久av不卡 | 2025亚洲精品无码在钱 | 国内精品久久人妻系列 | 爆乳一区二区三区无码 | 国产成人不卡在线播放 | 91蜜桃国产成人精品区 | 国产在线精品国偷产拍 | 国产91精品高清一区二区三区 | 国产在线手机喷潮视频 | 爆爽av国产剧情精品原创一区 | 成年人无码三级片视频网 | 国产精品初高中精品久久 | 国产精品毛片a∨一区二区三区 | 国产高清在线观看av片麻豆 | 91久久精品无码一级毛片 | 国产91精品无码a片在线看 | 国产无套内射又大又猛又粗又爽 | 国产午夜亚洲精品不卡网站 | 国产一级精品一区二区三区 | 国产另类ts人 | 2025国产男人亚洲欧美天堂 | 国产成人高清在线观看播放 | 国产精品一区二区在线观看网站 | 国产三级在线观看免费播放 | 国产嫖妓一区二区三区无码 | 国产一级性爱免费片 | 国产高潮流白浆免费视频 | 国产成人无卡在线观看 | 99久久久精品免费 | 91久久老司机福利精品网 | 91视频免费国产成人精品 | 国产va免费观看 | 国产无码久久久久久 | 国产午夜爽爽窝窝在线观看 | 国产高清在线无码不卡 | 囯产精品一区二区免费在线观看 | 国产精品国色综合久久浪潮 | 国产精品影片在线观看 | 成人免费一区二区无码视频 | 91亚洲自偷手机在线 | a级毛片无码兔费真人久久 a级毛片无码兔费真人久久91 | 91精品无码中文字幕在线 | 国产成人午夜91精品麻豆剧场 | 国产成人久久综合一区 | 精品精品国产自在97香蕉蜜芽 | 国产白丝内射 | 国产在线观看国自产偷精品产拍 | 国内精品一区视频在线播放 | 国偷自产一区二区 | 精品国产在天天线2025 | 国产高清在线精品一区二区三区 | 国产免费真实喷潮视频 | 国产成人精品久久久久大片 | 国产成人一区二区三区影院免 | av一区二区中文字幕 | 国产97无码 | 国产成人精品久久亚 | 经典日韩中文字幕综合网 | 91寡妇天天综合久久影院 | 国产欧美日韩资源在线观看 | 成人黄色毛片一级 | 国产精彩对白在线91 | 国产女同一区二区在线 | 精品国产一区二区三区19 | 国产成人精品亚洲观看一区五月天 | 国产1区在线| 丰满岳乱妇在线观 | 国产一区二区三区视频在线看 | 国产亚洲色高清在线观看 | 国产免费午夜a无码v视频 | 国语自产视频在线一区二 | 精品丰满熟女一区二区三区 | 18处破外女出血在线在线观看 | 91国偷自产中文字幕久久 | 福利视频一二区 | 国产aⅴ天堂亚洲国产a | 国产一二三四区 | 国产精品亚洲片在线观看不卡 | 国产午夜精品一区二 | 国产精品一区二区制服丝袜 | 国产丰满老熟女厨房乱 | 国产成人久久综合二区 | 国产一级片内射视频播放 | 动漫精品中文无码卡通动漫 | 国产精品高潮久久久久无码 | 成人α片免费视频在线观看 | av喷水高潮喷水在线观看 | 国产精品一区无码免费视频 | 国产成a人亚洲精v品无码性色 | 国产交换精品一区二区三区免费 | 国产自在现偷国产精品国产日韩 | 国产欧美日韩中文字幕第一页 | 国产国产精品人在线视 | 国产一区二区久久精品 | 国产一区二区三区亚洲综合 | 高清精品自在久久国产 | 国产丝袜精品 | 成人欧美一区 | 精品国产99久久久久久宅男i | 国产麻豆精品视频 | 精品少妇人妻av无码专区国产精 | 91精品国产麻豆国产自产在线 | 风韵丰满熟妇啪啪区老熟 | 国产午夜视频网站国 | 99久久久久国产 | av无码精品1区2区3区 | 精品无码免费专区 | 国产成人高清亚洲一区 | 国产精品岛国久久久久 | 国产精品日韩高清秒播日韩国产欧美 | 国产主播剧情演绎在线观看 | 国产主播福利精品中文 | 懂色一区二区二区av免费观 | 国产麻豆a一级毛片爽爽影院 | av无码国产在线观看岛国 | 成人午夜免费视频免费看 | 国产自产第一区 | 国产成年女黄特黄 | 国产精品久久久久久久久久日本 | 精品国产一区二区三区免费 | 18禁黄黄美女网站在线看 | 91日韩精品久久久久精品无码 | 精品视频一区二区三区在线观看 | 国内精品久久人妻无码 | 国产欧美a级成人 | 国产成人无码精品久久久小说 | 国产经典无码在线免费看 | 97精品视频在线观看免费专区 | 国产精品无码亚洲精品2025 | 精品国产一级毛片国语版 | 国产精品高清一区二区三区不卡 | 国产成人综合在线观看网站 | 国产精品亚洲综合在线观看 | 按摩中出的人妻中文字幕 | 99久久国产精品一区二区 | 国产性爱在线播放 | 国产精品自拍第一页 | 国产超碰人人爽人人做人人添 | 国产福利在线观看永久免费 | 国产精品不卡无码av在线播放 | 不卡福利视频一区二区三区 | 国产成人精品无缓存在线播放 | 国产超碰97人人在线 | 国产成人一区二区三区 | 高清女厕偷拍一区二区三区 | 成年女人毛片免费播放人 | av成人免费在线播放 | 国产毛片** | a级国产乱理伦片野外 | 精品国产丝袜在线拍91 | 国产日韩免费av片 | 国产在线一区二区三区 | 国产精品毛片无码一区二区蜜桃 | 精品日本一区二区三区免费 | 国产在线视频玛雅视频 | 成av人电影在线观看 | 91久久精品国产 | 国产一区免费在线观看 | 91精品一区二区网站 | 国产精品亚洲一区二区三区 | 国产精品无码影视久久久久久久 | 另类亚洲欧美日本 | av中文字幕精品一区二区久久久 | 国产高清一区视频在线播放 | 国产专区免费av无码 | 国产精品白浆无码流出 | 国产成人av一区二区三区在线 | 91亚洲自偷观看高清 | 岛国精品在线 | 国产精品女人呻吟在线观看 | av色综合久久天堂av色综合 | 国产精品亚洲第一区在线观 | 国产微拍精品一区在线观看 | 国产亚洲欧美日韩综合另类 | 国产v亚洲v天堂无码流 | 成午夜精品一区二区三区秒播 | 97人妻熟女成人免费视频色戒 | 91在线精品无码秘入口九色 | 国产精品一区二区三区四区五区 | 精品久久久久久无码中文字幕一 | 国产成人无码精品久久二区三区 | 成人综合影院 | 2025国产三级 | a片一区二区三区 | ts另类国产人妖视频一区二区 | 高潮胡言乱语对白刺激国产 | 欧美一区二区三区四区 | 精品国产乱码九九九久久久 | 国产果冻传媒精品a片在线 国产果冻豆传媒麻婆电影 国产果冻豆传媒麻婆精东 国产韩国精品一区二区三区 | 国产裸体美女视频网站免费观看 | 91在线视频是否值得信赖 | 2025最新国产不卡a在线播放 | 成人午夜啪啪免费网站 | 69式国产真人免费现视频 | 国产av剧情m | 精品国产免费看久久久 | 国产在线精品一区二区在线观看 | 1区2区3区4区精品免费视频 | 国产精品亚洲综合看片 | 国产欧美日韩亚洲精品区23 | 国产天堂在线视频 | 国产精品麻豆一区二区三区v视界 | 成人无码α片在线观看 | av男人的天堂在线观看第三区 | 精品视频日韩一区二区三区 | 国产一区二区精品丝袜 | 2025久久国自产拍 | 国产精品盗摄!偷窥盗摄 | 国产福利一区二区三区在线视频 | 97色色蜜桃[万里烟火] | 国产精品视频高清在线播放 | 国产高清无码在线一区二区 | 激情欧美经典日韩 | 成人精品天堂一区二区三区 | 国语自产视频在线一区二区 | 国产av天堂无码一 | 国产真人无码作爱视频免费 | 成人无码h免费动漫在线观看 | 国产极品尤物va在线精品 | 国产成人无码一区二区在线观看 | 国产成人综合αv在线 | 韩国三级电影精品久久 | 国产精品在线就撸 | 国产精品高清免费网站 | 国产精品伊人久久久 | 69久蜜桃人妻无码精品一区 | 国产午夜福利在线播放无删减 | 成人区人妻精品一区二视频 | 成人午夜影院在线观看 | 国产一区在线免费观看 | 国产片婬乱一毛片a | 91在线免 | 91视频网址入口 | 激情欧美成人久久综合小说 | 国产成人手机在线视频在线观看 | 国产一区二三区好的精华液 | 韩国美女爽快一级毛片免费观看 | 国产成人无码av一区二区三区 | 国产精品不卡无码av在线播 | 国产成人精品久久久久开播 | 国产91精品在线观看 | 国产精彩对白在线91 | 国产精品久久久久一区二区三区 | 国产女同一区二区在线观看 | 国产午夜a理论毛片在线影院 | 国产精品va在线观看丝瓜影院 | 911国产精品无码久久 | 不卡黄片在线播放 | av中文字幕一区二区三区久久 | 国产精品麻豆综合在线 | 国产av天堂亚洲国产av麻豆 | 91亚洲国产| 国产aⅴ无码精品一区二区三区 | 国产av夜夜欢一区二区三区 | 国产午夜av在线播放 | 国产精品亚洲片精品 | 国产成人综合久久精品最新 | 国产一区二区三区日韩 | 91一区二区在线观看 | 国产成人精品怡红院在线观看 | 国产在线精品成人一区二区 | 精品亚洲高清一区二区 | 国产无套粉嫩白浆内精在线观看 | 国产亚洲中文日本不卡二区 | 国产精品一区二区18 | 国产午夜亚洲精品国产成人小说 | 国产尤物无码一区二区 | 2025自拍偷在线精品自 | 国产91精品福利在线观看 | av无码网站一区二区 | 91av视频国产精品 | 精品亚洲一区二区三 | 精品线一区二区三区免费看 | 国产高潮视频在线观看 | 成人自拍电影 | 国产女主播精品大秀福利 | 国产无码精品a级在线 | 国产精品日韩欧美一区二区三 | 2025露脸国产偷人在视频 | av色综合 | 国产精品免费一级在线观看 | 3d动漫精品专区久久 | 岛国av无码免费 | 国产一级av毛片国语对白 | 99精品久久精品一区二区 | 国产毛片久久久久久国产毛片无码 | 国产一区欧美二区影视播放 | a人片在线观看 | 国产女主播喷水视频在线 | 国产精品日韩电影制服丝袜 | 精品无人乱码一区二区三区日 | 国产成人一区二区三区在线观看 | 国产美女玩具在线观看 | 国产一区二区三区在线水蜜桃 | 国产欧美日产激情视频 | 91精品国产高清91久久 | 国产精品亚洲四区在线观看 | 国产精品后入内射日本在线观看 | 国产91白丝在线播放 | 国产精品久久久久久久久久影院 | 国产原创顾美玲剧情在线 | 国产二区三区在线观看视频 | 国产成人无码a区在线观看视频免费 | 加勒比精品综合在线 | 国产午夜视频在线观看 | 成年女人毛片免费视频播放 | 国产高清乱码又大又圆 | 国产成人av在线 | 精品无码久久久久国产 | 国产毛片久久久久久国产毛片无码 | 国产成人欧美一区二区三区vr | 国产精口品美女乱子伦高潮 | av免费网| 国产精品熟女人妻久久 | 国产福利小视频 | 东京热人妻av中文系列 | 国产黄a三级三级三级看三级 | 国内自拍视频一区二区三区 | 国产精品一区二区丝瓜 | 国产麻豆剧传媒免费观看 | 波多野结衣中文字幕一区二区 | 国产人妻熟女在线观看高清完整 | 国产美女极度色诱视频 | 精品国产99国产精偷 | 国产精品国产三级国产普通 | 国产美女露脸口爆吞精 | 国产aⅴ一二三区无码视频 国产aⅴ一区 | 18禁裸乳无遮挡免费观看 | 国产毛片女人一级毛片 | 高潮娇喘喷水在线 | av免费播放一区二区三区 | 国产福利在线观看富婆 | 二区a片| 国产a视频 | 国产精品一级婬片免费 | 国产无码中文字幕 | 国产在线观看国自产偷精品产拍 | a级片在线观看 | 丰满少妇又爽又紧又丰 | 国产成人综合亚洲欧洲色就色 | 东京伊人一本到鬼色 | 国产欧美成人综合 | 国产亚洲一区二区三区视频网站 | 国产精品无码av片在线观看播放 | 国产精品麻豆网站 | 国产稚嫩高中生呻吟激情在线 | 韩国精品久久久久久无码 | 囯产精品久久久久久久久免费蜜桃 | 国产精品无码久久综合日韩 | 国产精品亚洲日韩欧美色窝窝色欲 | 白嫩无码人妻丰满熟妇啪啪区 | 国产自啪精品视频. | 精品无码视频一区三区四区 | 国产成人av在线播放欲色 | 国产成人免费ā片在线观看老同学 | 国产成人无码的免费视频播放 | 18禁黄黄美女网站在线看 | 成人国产免费av一区二区三区 | 国产美女爽到尿喷出来视频 | 精品国产一区二区三区免费91 | 国产精品爽爽在线观看 | 国产高清一国产av麻豆网 | 国产成人亚洲精品无码av大片 | 成人h动漫精品一区二区无码 | 国产成人欧美日韩在线电影 | 大片精品一区二区三区 | 国产麻豆精品久久久久av | 国产av无码专区国产乱码 | av色蜜桃一区二区三区 | 91福利小视频 | 成人午夜激情福利动态 | 国产精品爆乳无码一区二区三区 | 高清色黄毛片一级毛片 | 国产一区二区三区三级无码 | 91精品婷婷国产综合久久 | 国外av无码精品国产精品 | 高潮毛片无遮挡高清免费软件 | 国产av乱码一区二区三区 | 国产av永久 | 国产精品日韩欧美一 | 国产欧美日韩一区二区三区 | 国产91精品人妻互换在线 | 91精品国产成人久久久久久 | 国产精品视频一区二区三区无码 | 丰满人妻久久中文字幕免费 | 国产精品思思热在线 | av喷水高潮喷 | 国产成人综合欧美精品久久 | 国产色爽免费无码视频 | 国产精品久在线观看 | 国产片婬乱一级毛片a | 91传媒在线| 国产欧美日韩综合在线 | 国产免费456 | 18禁裸乳无遮挡自慰免费动漫 | 国产剧高清免费看 | 国产午夜精品无码网站 | 91精品丝袜国产高跟在线一区 | 国产在线永久视频 | 国产成人影院一区二区三区 | 国产尤物精品视频 | 18禁黄网站禁片免费观看天堂 | 国产黄av在线观看免费福利 | 91欧美激情一区二区三区成人 | 91星空无限传媒 | 国产一区二区四区在线 | 国产一区二区无码专区 | 丰满人妻系列无码专区 | 国产成人午夜91精品麻豆剧场 | 国产免费又粗又猛又爽视频国产 | 99久久精品一区二 | 国产成人午夜精品一区二区三区 | 国产精久久一区二区三区 | 国产美女白丝袜精品 | 高清国产一级婬片a片免费 高清国产一区 | 精品无人区一码卡二卡三 | 国产aaa级高清黄色 国产aaa免费视频国产 | 国产人一极精品视频 | 国产精品亚欧美一区二区 | 国产高清无码中文 | 国产成人精品一区在线 | 成年午夜免费a | 国产成人久久精品二三区麻豆 | 国产精品国产自 | 国产91精品白浆无码流出久久 | 国产日韩欧美高清一区二区三区 | 精品午夜一区二区三区在线观看 | 国产剧情自产愉拍精品 | 91在线精品亚洲一区二区 | 国产精品wwwcom976con | 97人人妻在线视频 | h无码精品动漫在线观看免费下载 | 国产自产一二三区 | 国产经典三级视频在线观看 | 国产亚洲日韩一区二区三区 | 91精品久久一区二区三区 | 国产黄色片在线播放 | 91精品人妻一区二区蜜桃 | 国产精品一区二区视频 | 国产在线无遮挡的免费视频 | 高清在线一区二区三区 | 18禁美女黄网站色大片免费 | 国产精品爆乳奶水无码视频免费 | 国产91精品看黄网站 | 91精品国产免费久久国语蜜臀 | 国产盗摄一区二 | 国产成人av免费网址 | 国产一本高清在线欧美亚 | 国产最新精品自在自线亚洲 | 精品国产专区91在线官网 | av免费无码在线 | 国产91精选在线观看麻豆 | 国产精品亚洲第一区二区三区 | 精品熟女日韩中文十区 | 国产片婬乱一级毛片视频1 国产片婬乱一级毛片丫丫 国产片婬乱一毛片a | 91精品国产自 | 国产a一级毛片精品高清乱码 | 国产极品粉嫩在线播放 | 国产精品视频一区国模私拍丝袜 | 国产精品麻豆天美精品久久 | 国产免费一区二区三区免费观看 | 国产日韩精品无码区免费专区国产 | 国产成人无码网站 | 国产午夜成人久久无码一区二区 | 国产一区二区免费视频 | 97人妻碰碰视频 | 1024手机在线国产你懂的 | 精品国产9999一区二区三区 | 国产欧美日韩va另类在线播 | 国产喷水在线看无码孕妇 | 国产成人精品亚洲精品 | 高清一区二区三区日本 | 国产专区自拍 | 国产精品成人免费视频99 | 国产成人精品日本亚洲尤物 | 99久久最新视频免费观看 | 国产成人精品午夜在线播放 | 精品国产一区二区三区性色a∨ | 18禁免费无码无遮挡不卡网站 | 高清国产在线播放91 | 精品无人区卡一卡二卡三乱码 | 精品国偷自产在线亚洲 | 18禁美女黄网站色大片免费观 | 国产午夜场免费视频在线播放 | av免费观看网站网址 | 国产精品国产三级国产av主播 | 国产一区二区欧美日韩 | 国产一区二区在线观看美浪 | 国产黄色一级片 | 国产三级av在在线看 | 国产在线观看精品香蕉v区 国产在线观看精品一区二区 | 国产成人综合视频 | 国产成人精品无码区电影 | 国产一级a大黄片毛片视频 国产一级a级毛片久久久久精品卡 | 成人综合亚洲日本一区二区 | 国产福利精品一区二区 | 国产一区二区精品久久岳 | 国产精品视频一区国模私拍丝袜 | 东京热日韩无码高清国产精品 | 成人动漫第一页 | 国产种子在线看网站在线观看 | 国产午夜福利片在线观看 | 国产精品流白浆在线观 | 成人午夜无码影院视频在线观看 | 国产不卡高清视频在线观看 | 国产午夜福利片1000无码 | 国产欧美另类久久久精品不卡 | 国产三级片亚洲欧洲三级片a级 | 国产精品国产三级毛片在线专区 | 国产无套露脸在线观看 | 国产成人免费片在线视频观看 | 国产精品日日摸夜夜添夜夜添 |