久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

qtextedit 默认文案_QT中常用的控件说明.md

發布時間:2024/9/30 c/c++ 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qtextedit 默认文案_QT中常用的控件说明.md 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2主窗口類型

有三種窗口

QMainWindow

QWiget

QDialog

QMainWindow:可以包含菜單欄,工具欄和標題欄,是

最常見的窗口顯示形式。

QDialog:是對話窗口的基類。沒有菜單欄,工具欄,狀態欄

QWiget:不確定窗口的用途,就用QWidget。

## QT中常用的控價

### 1、Qlabel控件

setAlignment() 設置文本的對齊方式

setIndent() 設置文本的縮進

text() 獲取文本

setBuddy() 設置伙伴關系

setText() 設置文本內容

selectedText() 返回所選擇的字符

setWordWrap() 設置是否運行換行

#### QLabel常用的信號

1.當鼠標劃過Qlabel控件時觸發:linkHovered

2.當鼠標單擊Qlabel控件時觸發:linkActivated

| 方法 | 解釋 |

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

| clear() | 清空剪貼板內容 |

| mimeData() | 獲取剪貼板上的MIME類型數據 |

| setMimeData() | 將MIME類型數據放到剪貼板中 |

| pixmap() | 獲取剪貼板上的QPixmap類型的數據 |

| setPixmap() | 將QPixmap類型數據放到剪貼板中 |

| image() | 獲取剪貼板上QImage類型的數據 |

| setImage() | 將QImage類型數據放到剪貼板中 |

| text() | 獲取剪貼板上的文本 |

| setText() | 將文本放到剪貼板中 |

#### QLabel與伙伴控件

### 2、Edit控件

#### QLineEdit

基本功能:輸入單行的文本

##### EchoMode(回顯模式)

4種回顯模式

1、Normal

2、NoEcho

3、Password

4、PasswordEchoOnEdit

##### 方法:

+ setPlaceholderText():在line沒有輸入的時候給出提示信息

##### QLineEdit控件的輸入(校驗器)

如限制只能輸入整數,浮點數或者滿足一定條件的字符串

##### 用掩碼限制QLineEdit控件的輸入

```pyth

用掩碼限制QLineEdit控件的輸入

A ASCII字母字符是必須輸入的(A-Z、a-z)

a ASCII字母字符是允許輸入的,但不是必需的(A-Z、a-z)

N ASCII字母字符是必須輸入的(A-Z、a-z、0-9)

n ASII字母字符是允許輸入的,但不是必需的(A-Z、a-z、0-9)

X 任何字符都是必須輸入的

x 任何字符都是允許輸入的,但不是必需的

9 ASCII數字字符是必須輸入的(0-9)

0 ASCII數字字符是允許輸入的,但不是必需的(0-9)

D ASCII數字字符是必須輸入的(1-9)

d ASCII數字字符是允許輸入的,但不是必需的(1-9)

# ASCI數字字符或加減符號是允許輸入的,但不是必需的

H 十六進制格式字符是必須輸入的(A-F、a-f、0-9)

h 十六進制格式字符是允許輸入的,但不是必需的(A-F、a-f、0-9)

B 二進制格式字符是必須輸入的(0,1)

b 二進制格式字符是允許輸入的,但不是必需的(0,1)

> 所有的字母字符都大寫

< 所有的字母字符都小寫

! 關閉大小寫轉換

\ 使用"\"轉義上面列出的字符

```

##### QLineEdit綜合案例

#### QTextEdit控件

QLineEdit控件只支持單行輸入,QTextEdit支持多行輸入

##### 常用的方法:

1.setPlainText() #設置文本

2.setHtml() #設置html格式

3.toPlainText() #獲取文本

4.toHtml

5.setFont() 設置文本框顯示的字體,參數是Font類型

```python

#設置字體的多選框和設置字體的Line的

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QComboBox, QFontComboBox, QLineEdit, QMessageBox, QVBoxLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.combobox_2 = QFontComboBox(self) # 2

self.lineedit = QLineEdit(self) # 3

self.v_layout = QVBoxLayout()

self.layout_init()

self.combobox_init()

def layout_init(self):

self.v_layout.addWidget(self.combobox_2)

self.v_layout.addWidget(self.lineedit)

self.setLayout(self.v_layout)

def combobox_init(self):

self.combobox_2.currentFontChanged.connect(lambda: self.on_combobox_func(self.combobox_2))

def on_combobox_func(self, combobox): # 8

self.lineedit.setFont(combobox.currentFont())

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

##### 事件:

+ textChanged 當文本框的文本內容發生變化時自動觸發信號

#### QTextBrowser控件

QTextEdit和QTextBrowser控件類似,但是一般QTextEdit是用來編輯文本的,而QTextBroser是用來顯示文本的

### 4、按鍵控件

1.QPushButton

事件:

+ toggled 標記

配合isChecked()函數使用,如果按鍵是已經標記則打印True,否則打印False。

+ clicked 點擊

+ pressed 按下

+ released 松開

方法:

+ setCheckable(True) 設置一個按鍵為一個可以標記的按鍵,該按鍵就會有兩種狀態,標記和非標記的狀態

+ setIcon() 為按鍵設置一個圖片,傳入的參數是QIcon的格式

+ isChecked() 查看按鍵的狀態,如果是標記狀態則是True,否標記狀態False

```python

import sys

from PyQt5.QtGui import QIcon

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.test_button = QPushButton('Test', self)

self.test_button.setCheckable(True) #設置按鍵為一個可標記的按鍵

self.test_button.setIcon(QIcon('images/save_as.ico')) #為按鍵設置圖片

self.test_button.toggled.connect(self.button_state_func) #為按鍵綁定事件

def button_state_func(self):

print(self.test_button.isChecked()) # 4

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

2.QToolButton

?注意:QToolButton實例化的時候不能直接傳入文本字符串,因為該控件沒有相應的初始化函數,也就是說這樣是錯誤的:self.test_button = QToolButton("test",self),如果要設置文本的話,的通過setText()的方法。但是如果同時使用setText()和setIcon()方法的話,只會顯示圖標。

```python

import sys

from PyQt5.QtGui import QIcon

from PyQt5.QtWidgets import QApplication, QWidget, QToolButton

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.test_button = QToolButton(self) # 1

self.test_button.setCheckable(True)

self.test_button.setIcon(QIcon('images/save_as.ico'))

self.test_button.toggled.connect(self.button_state_func)

self.test_button.isCheckable()

def button_state_func(self):

print(self.test_button.isChecked())

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

3.QRadioButton

一個布局中只能又一個單選框被選中

方法toggled相當于選中和取消選中。現在QPushButton的toggle的方法類似,按下不會彈起

+ setChecked(True) 單選框設置為選中。

+ setChecke() 獲取是否選中的狀態

+ setCheckState() 傳入參數Qt.Checked為選中狀態,Qt.Unchecked為無選中的狀態,Qt.PartiallyChecked為半選中的狀態。

+ text() 獲取文本

+ stateChanged 在復選框的狀態發生改變的時候觸發

```python

import sys

from PyQt5.QtGui import QPixmap

from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QLabel, QHBoxLayout, QVBoxLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.off_button = QRadioButton('off', self) # 1

self.on_button = QRadioButton('on', self) # 2

self.pic_label = QLabel(self) # 3

self.button_h_layout = QHBoxLayout()

self.pic_h_layout = QHBoxLayout()

self.all_v_layout = QVBoxLayout()

self.layout_init()

self.radiobutton_init()

self.label_init()

def layout_init(self):

self.pic_h_layout.addStretch(1) #在未加入標簽之前先加入一個占位符

self.pic_h_layout.addWidget(self.pic_label)

self.pic_h_layout.addStretch(1) #在加入標簽之后加入一個占位符,作用是拉伸窗口的時候,label會自動適用窗口的大小

self.button_h_layout.addWidget(self.off_button)

self.button_h_layout.addWidget(self.on_button)

self.all_v_layout.addLayout(self.pic_h_layout)

self.all_v_layout.addLayout(self.button_h_layout)

self.setLayout(self.all_v_layout)

def radiobutton_init(self):

self.off_button.setChecked(True) #設置為選中的狀態

self.off_button.toggled.connect(self.on_off_bulb_func) # 6

# self.on_button.toggled.connect(self.on_off_bulb_func)

def label_init(self):

self.pic_label.setPixmap(QPixmap('images/off.png')) # 7

def on_off_bulb_func(self): # 8

if self.off_button.isChecked():

self.pic_label.setPixmap(QPixmap('images/off.png'))

else:

self.pic_label.setPixmap(QPixmap('images/on.png'))

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

4.QCheckBox

三種狀態:

1、沒選中0

2、半選中1

3、選中2

復選框一共有三種狀態:全選中、半選中和無選中。若一個父選項的子選項全部為選中狀態,則該父選項為全選中;若子選項全部為無選中狀態,則該父選項為無選中狀態;若子選項既有全選中和無選中狀態,則該父選項為半選中狀態。

事件:

?stateChanged 是狀態變化時觸發信號

方法:

?checkState() 查看選中的狀態:0、1、2

?setchecked(True) 設置選擇狀態,只有選中和未選中

?setcheckState() 設置選擇的狀態,Qt.Checked為選中的狀態,Qt.Unchecked未選中狀態和

?Qt.PartiallyChecked為半選中的狀態。

```py

import sys

from PyQt5.QtCore import Qt

from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox, QVBoxLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.checkbox1 = QCheckBox('Checkbox 1', self)

self.checkbox2 = QCheckBox('Checkbox 2', self)

self.checkbox3 = QCheckBox('Checkbox 3', self)

self.v_layout = QVBoxLayout()

self.checkbox_init()

self.layout_init()

def layout_init(self):

self.v_layout.addWidget(self.checkbox1)

self.v_layout.addWidget(self.checkbox2)

self.v_layout.addWidget(self.checkbox3)

self.setLayout(self.v_layout)

def checkbox_init(self):

# self.checkbox1.setChecked(True) # 1

self.checkbox1.setCheckState(Qt.Checked) # 2

self.checkbox1.stateChanged.connect(lambda: self.on_state_change_func(self.checkbox1)) # 3

# self.checkbox2.setChecked(False)

self.checkbox2.setCheckState(Qt.Unchecked)

self.checkbox2.stateChanged.connect(lambda: self.on_state_change_func(self.checkbox2))

# self.checkbox3.setTristate(True) # 4

self.checkbox3.setCheckState(Qt.PartiallyChecked) # 5

self.checkbox3.stateChanged.connect(lambda: self.on_state_change_func(self.checkbox3))

def on_state_change_func(self, checkbox): # 6

print('{} was clicked, and its current state is {}'.format(checkbox.text(), checkbox.checkState()))

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

父類都是QAbstractButton

### 5、下拉列表控件QComboBox

```python

from PyQt5.QtWidgets import QCombobox

choice = "a"

choice_list = ["a","b","c"]

self.combobox_1 = QCombobox(self)

self.combobox_1.addItem(choice) #選擇下拉框中的一項

self.combobox_1.addItems(choice_list) #選擇下拉框的下拉列表

```

+ currentIndexChanged 當下拉框的選項發生變化時,會觸發這個方法。

+ currentTextChanged 當下拉框的文本發生變化時,會觸發這個方法。

+ currentIndex() 獲取下拉框當前的序號

+ currentText() 獲取當前的文本值

```python

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QComboBox, QFontComboBox, QLineEdit, QMessageBox, QVBoxLayout

class Demo(QWidget):

choice = 'a'

choice_list = ['b', 'c', 'd', 'e']

def __init__(self):

super(Demo, self).__init__()

self.combobox_1 = QComboBox(self) # 1

self.combobox_2 = QFontComboBox(self) # 2

self.lineedit = QLineEdit(self) # 3

self.v_layout = QVBoxLayout()

self.layout_init()

self.combobox_init()

def layout_init(self):

self.v_layout.addWidget(self.combobox_1)

self.v_layout.addWidget(self.combobox_2)

self.v_layout.addWidget(self.lineedit)

self.setLayout(self.v_layout)

def combobox_init(self):

self.combobox_1.addItem(self.choice) # 4

self.combobox_1.addItems(self.choice_list) # 5

self.combobox_1.currentIndexChanged.connect(lambda: self.on_combobox_func(self.combobox_1)) # 6

# self.combobox_1.currentTextChanged.connect(lambda: self.on_combobox_func(self.combobox_1)) # 7

self.combobox_2.currentFontChanged.connect(lambda: self.on_combobox_func(self.combobox_2))

# self.combobox_2.currentFontChanged.connect(lambda: self.on_combobox_func(self.combobox_2))

def on_combobox_func(self, combobox): # 8

if combobox == self.combobox_1:

QMessageBox.information(self, 'ComboBox 1',

'{}: {}'.format(combobox.currentIndex(), combobox.currentText()))

else:

self.lineedit.setFont(combobox.currentFont())

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

### 6、滑塊控件

#### QSlider

```python

#水平滑條

from PyQt5.QtCore import Qt

from PyQt5.QtWidgets import QSlider

self.slider_1 = QSlider(Qt.Horizontal,self)

self.slider_1.setRanger(0,100)

#垂直滑塊

self.slider_2 = QSlider(Qt.Vertical,self)

self.slider_2.setMinmum(0)

self.slider_2.setMaxmum(100)

```

valueChanged 滑塊的值發生變化的時候觸發此方法

```python

import sys

from PyQt5.QtCore import Qt

from PyQt5.QtGui import QFont

from PyQt5.QtWidgets import QApplication, QWidget, QSlider, QLabel, QVBoxLayout, QHBoxLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.slider_1 = QSlider(Qt.Horizontal) # 水平滑塊

self.slider_1.setRange(0, 100) #設置滑塊滑動的范圍

self.slider_1.valueChanged.connect(lambda: self.on_change_func(self.slider_1)) # 3

self.slider_2 = QSlider(Qt.Vertical) #豎直的滑塊

self.slider_2.setMinimum(0) # 4

self.slider_2.setMaximum(100) # 5

self.slider_2.valueChanged.connect(lambda: self.on_change_func(self.slider_2))

self.label = QLabel('0', self) # 6

self.label.setFont(QFont('Arial Black', 20))

self.h_layout = QHBoxLayout()

self.v_layout = QVBoxLayout()

self.h_layout.addWidget(self.slider_2)

self.h_layout.addStretch(1)

self.h_layout.addWidget(self.label)

self.h_layout.addStretch(1)

self.v_layout.addWidget(self.slider_1)

self.v_layout.addLayout(self.h_layout)

self.setLayout(self.v_layout)

def on_change_func(self, slider): # 7

if slider == self.slider_1:

self.slider_2.setValue(self.slider_1.value())

self.label.setText(str(self.slider_1.value()))

else:

self.slider_1.setValue(self.slider_2.value())

self.label.setText(str(self.slider_2.value()))

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

#### QDial

```python

#球形滑塊

from PyQt5.QtWidgets import QDial

self.dial = QDial(self)

self.dial.setFixedSize(100,100) #設置QDail的大小

self.dial.setRange(0,100) #滑動的范圍

self.dial.setNotchesVisible(True) #顯示刻度,根據我們設置的數值自動調整

```

+ valueChanged 當改變Qdial的值時自動觸發這個信號

```python

import sys

from PyQt5.QtGui import QFont

from PyQt5.QtWidgets import QApplication, QWidget, QDial, QLabel, QHBoxLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.setWindowTitle('QDial') # 1

self.dial = QDial(self)

self.dial.setFixedSize(100, 100) # 2

self.dial.setRange(0, 100) # 3

self.dial.setNotchesVisible(True) # 4

self.dial.valueChanged.connect(self.on_change_func) # 5

self.label = QLabel('0', self)

self.label.setFont(QFont('Arial Black', 20))

self.h_layout = QHBoxLayout()

self.h_layout.addWidget(self.dial)

self.h_layout.addWidget(self.label)

self.setLayout(self.h_layout)

def on_change_func(self):

self.label.setText(str(self.dial.value()))

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

### 7、計數器控件 QSpinBox

```python

from PyQt5.Qtwidgets import QSpinBox

self.spinbox = QSpinbox(self)

self.spinbox.setRange(-99,99)

self.spinbox.setSigleStep(1)

self.spinbox.setValue(66)

```

+ valueChanged 當里面的值發生變化時觸發此信號

+ setValue() 設置計數器的值。

+ value() 獲取計數器的值

QSpinBox為整型的數字計數器,而QDoubleSpinBox為浮點型的數字計數器

```python

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QSpinBox, QDoubleSpinBox, QHBoxLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.spinbox = QSpinBox(self)

self.spinbox.setRange(-99, 99) # 1

self.spinbox.setSingleStep(1) # 2

self.spinbox.setValue(66) # 3

self.spinbox.valueChanged.connect(self.value_change_func) # 4

self.double_spinbox = QDoubleSpinBox(self) # 5

self.double_spinbox.setRange(-99.99, 99.99)

self.double_spinbox.setSingleStep(0.01)

self.double_spinbox.setValue(66.66)

self.h_layout = QHBoxLayout()

self.h_layout.addWidget(self.spinbox)

self.h_layout.addWidget(self.double_spinbox)

self.setLayout(self.h_layout)

def value_change_func(self):

decimal_part = self.double_spinbox.value() - int(self.double_spinbox.value()) # 6

self.double_spinbox.setValue(self.spinbox.value() + decimal_part) # 7

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

### 8 定時器和進度條

QTimer

```python

self.timer = QTimer(self)

self.timer.start(100) #開始啟動,沒過100ms觸發timeout信號

self.tiomer.stop() #停止

```

+ isActive() 為True時表示計時器已啟動,False為計時器沒有啟動

+ timeout 超時信號器,當有超時信號來時自動觸發

```python

import sys

from PyQt5.QtCore import QTimer, Qt

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.label = QLabel('0', self) # 1

self.label.setAlignment(Qt.AlignCenter)

self.step = 0 # 2

self.timer = QTimer(self) # 3

self.timer.timeout.connect(self.update_func) #到達計時時長之后自動觸發

self.ss_button = QPushButton('Start', self) # 4

self.ss_button.clicked.connect(self.start_stop_func)

self.v_layout = QVBoxLayout()

self.v_layout.addWidget(self.label)

self.v_layout.addWidget(self.ss_button)

self.setLayout(self.v_layout)

def start_stop_func(self):

if not self.timer.isActive():

self.ss_button.setText('Stop')

self.timer.start(1000) #開始計時,并設置計時的時長,每次到達后,自動重新計時

else:

self.ss_button.setText('Start')

self.timer.stop()

def update_func(self):

self.step += 1

self.label.setText(str(self.step))

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

QProgressBar

```python

from PyQt5.QtWidgets importy QProcessBar

self.progressbar = QProgressBar(self)

self.progressbar.setMinimum(0)

self.progressbar.setMaximum(100)

```

+ setQrientation(Qt.Vertical) 設置進度條是垂直顯示的,進度條默認是水平的

+ reset() 重置進度條

```python

import sys

from PyQt5.QtCore import Qt, QTimer

from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton, QHBoxLayout, QVBoxLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.progressbar = QProgressBar(self) # 1

# self.progressbar.setOrientation(Qt.Vertical)

self.progressbar.setMinimum(0) # 2

self.progressbar.setMaximum(100)

# self.progressbar.setRange(0, 100)

self.step = 0 # 3

self.timer = QTimer(self) # 4

self.timer.timeout.connect(self.update_func)

self.ss_button = QPushButton('Start', self) # 5

self.ss_button.clicked.connect(self.start_stop_func)

self.reset_button = QPushButton('Reset', self) # 6

self.reset_button.clicked.connect(self.reset_func)

self.h_layout = QHBoxLayout()

self.v_layout = QVBoxLayout()

self.h_layout.addWidget(self.ss_button)

self.h_layout.addWidget(self.reset_button)

self.v_layout.addWidget(self.progressbar)

self.v_layout.addLayout(self.h_layout)

self.setLayout(self.v_layout)

def start_stop_func(self):

if self.ss_button.text() == 'Start':

self.ss_button.setText('Stop')

self.timer.start(100)

else:

self.ss_button.setText('Start')

self.timer.stop()

def update_func(self):

self.step += 1

self.progressbar.setValue(self.step)

if self.step >= 100:

self.ss_button.setText('Start')

self.timer.stop()

self.step = 0

def reset_func(self):

self.progressbar.reset()

self.ss_button.setText('Start')

self.timer.stop()

self.step = 0

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

### 9 液晶數字顯示屏QLCDNumber

```python

from PyQt5.QtWidgets import QLCDNumber

self.lcd_1 = QLCDNumber(self)

self.lcd_1.setDigitCount(10) #顯示多少數字

self.lcd_1.display(1234567890)

```

+ setSegmentStyle()可以設置顯示屏數字樣式

| 常量 | 值 | 描述 |

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

| QLCDNumber.Outline | 0 | 讓內容浮顯,其顏色同顯示屏背景顏色相同 |

| QLCDNumber.Filled | 1 | 讓內容浮顯,顏色同窗口標題顏色相同 |

| QLCDNumber.Flat | 2 | 讓內容扁平化顯示,顏色同窗口標題顏色相同 |

+ setSmallDecimalPoint(bool)方法key9i設置小數點的顯示方式:為True小數點就在兩個數字之間顯示出來,而不會單獨占一個位置,如果為False,那么就會單獨占位(默認為False)

+ setMode()方法來更改數字顯示方式

| 參數 | 值 | 描述 |

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

| QLCDNumber.Hex | 0 | 十六進制 |

| QLCDNumber.Dec | 1 | 十進制 |

| QLCDNumber.Oct | 2 | 八進制 |

| QLCDNumber.Bin | 3 | 二進制 |

### 10 日期相關的控件

QCalendarWidget 日歷控件

```python

from PyQt5.QtWidgets import QCalendarWidget

self.calendar = QCalendarWidget(self)

self.calendar.setMinimumDate(QDate(1956,2,14))

self.calendar.setMaximumDate(QDate(6666,6,6))

self.calendat.setGridVisible(True) #是否顯示網格

self.calendat.setSelectedDate(QDate(2020,8,9))

self.calendar.setFirstDayOfWeek(Qt.Monday) #設置一周的第一天是星期幾

```

+ setFirstDayOfWeek() 設置一個星期的第一天,默認是星期天

| Qt.Monday | 星期一 |

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

| Qt.Tuesday | 星期二 |

| Qt.Wednesday | 星期三 |

| Qt.Thursday | 星期四 |

| Qt.Friday | 星期五 |

| Qt.Saturday | 星期六 |

| Qt.Sunday | 星期天 |

+ selectedDate().toString('ddd') 方法獲取星期的縮寫

#### QDateTimeEdit

```python

from PyQt5.QtWidgets import QDateTimeEdit,QDateEdit,QTimeEdit

from PyQt5.QtCore import QDate,QTime,QDateTime

self.datetime_1 = QDateTimeEdit(self) #初始時間2000年1月1號

self.datetime_2 = QDateTimeEdit(QDateTime.currentDateTime(),self) #系統的當前時間

self.datetime_2.setDisplayFormat("yyyy-MM-dd HH:mm:ss") #顯示的格式 'yyyy/MM/dd','HH:mm:ss'

print(self.datetime_2.date()) #日期

print(self.datetime_2.time())#時間

print(self.datetime_2.dateTime()) #日期+時間

self.datetime_2.setCalendarPopup(True) #改變日期的時候調用日歷

```

+ dateChanged 當時間改變的時候觸發此信號

```python

import sys

from PyQt5.QtCore import QDate, QTime, QDateTime

from PyQt5.QtWidgets import QApplication, QWidget, QDateTimeEdit, QDateEdit, QTimeEdit, QVBoxLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.datetime_1 = QDateTimeEdit(self) # 1

self.datetime_1.dateChanged.connect(lambda: print('Date Changed!'))

self.datetime_2 = QDateTimeEdit(QDateTime.currentDateTime(), self) # 2

self.datetime_2.setDisplayFormat('yyyy-MM-dd HH:mm:ss')

self.datetime_2.timeChanged.connect(lambda: print('Time Changed!'))

print(self.datetime_2.date())

print(self.datetime_2.time())

print(self.datetime_2.dateTime())

self.datetime_3 = QDateTimeEdit(QDateTime.currentDateTime(), self) # 3

self.datetime_3.dateTimeChanged.connect(lambda: print('DateTime Changed!'))

self.datetime_3.setCalendarPopup(True)

self.datetime_4 = QDateTimeEdit(QDate.currentDate(), self) # 4

self.datetime_5 = QDateTimeEdit(QTime.currentTime(), self)

self.date = QDateEdit(QDate.currentDate(), self) # 5

self.date.setDisplayFormat('yyyy/MM/dd')

print(self.date.date())

self.time = QTimeEdit(QTime.currentTime(), self) # 6

self.time.setDisplayFormat('HH:mm:ss')

print(self.time.time())

self.v_layout = QVBoxLayout()

self.v_layout.addWidget(self.datetime_1)

self.v_layout.addWidget(self.datetime_2)

self.v_layout.addWidget(self.datetime_3)

self.v_layout.addWidget(self.datetime_4)

self.v_layout.addWidget(self.datetime_5)

self.v_layout.addWidget(self.date)

self.v_layout.addWidget(self.time)

self.setLayout(self.v_layout)

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

### 11、各種對話框

QDialog是所有對話框的基類

下面四種為常見的對話框

QMessageBox 消息對話框

QColorDialog 顏色對話框

QFontDialog 字體對話框

QInPutDialog 輸入對話框

QFileDialog 文件對話框

#### 消息對話框QmessageBox

總共分為以下幾種

1、關于對話框

```python

QMessageBox.about(self, 'Title', "content")

```

2、錯誤對話框

```python

QMessageBox.critical(self, 'Title', "content")

```

3、警告對話框

```python

QMessageBox.warning(self, 'Title', "content")

```

4、提問對話

```python

QMessageBox.question(self, 'Title', 'Content')

```

5、消息對話框

```python

from PyQt5.QtWidgets import QMessageBox

QMessageBox.information(self, 'Title', "content", QMessageBox.Yes | QMessageBox.No

| QMessageBox.Cancel)

```

```python

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.button = QPushButton('information', self)

self.button.clicked.connect(self.show_messagebox)

def show_messagebox(self):

#第一個參數填self表示這個消息對話框是屬于Demo窗口的

QMessageBox.information(self, 'Title', 'Content',

QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel)

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

常見的按鈕類型有以下幾種:

+ QMessageBox.OK

+ QMessageBox.Yes

+ QMessageBox.No

+ QMessageBox.Close

+ QMessageBox.Cancel

+ QMessageBox.Open

+ QMessageBox.Save

有2點差異

1、顯示的對話框圖標可能不同

2、顯示的按鈕是不一樣的

```python

#與消息框進行交互

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.button = QPushButton('Click Me!', self)

self.button.clicked.connect(self.show_messagebox)

def show_messagebox(self):

choice = QMessageBox.question(self, 'Change Text?', 'Would you like to change the button text?',

QMessageBox.Yes | QMessageBox.No)

#選擇不同的按鈕,有不同選擇

if choice == QMessageBox.Yes:

self.button.setText('Changed!')

elif choice == QMessageBox.No:

pass

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

```python

#調用父類QDialog來使用消息框

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QDialog, QLineEdit, QPushButton

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.resize(300, 100)

self.dialog = SigninPage()

self.btn = QPushButton("調用Dialog", self)

self.btn.clicked.connect(self.my_dialog)

def my_dialog(self):

self.dialog.exec_() #使用exec_()方法可以在主程序中加載一個dialog出來

class SigninPage(QDialog):

def __init__(self):

super(SigninPage, self).__init__()

self.resize(200, 100)

self.line = QLineEdit("我是一個新的dialog", self)

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

#### 顏色對話框和字體對話框

```python

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QColorDialog, QFontDialog, QPushButton,QHBoxLayout, QVBoxLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.text_edit = QTextEdit(self)

self.color_btn = QPushButton('Color', self)

self.font_btn = QPushButton('Font', self)

self.color_btn.clicked.connect(lambda: self.open_dialog_func(self.color_btn))

self.font_btn.clicked.connect(lambda: self.open_dialog_func(self.font_btn))

self.h_layout = QHBoxLayout()

self.h_layout.addWidget(self.color_btn)

self.h_layout.addWidget(self.font_btn)

self.v_layout = QVBoxLayout()

self.v_layout.addWidget(self.text_edit)

self.v_layout.addLayout(self.h_layout)

self.setLayout(self.v_layout)

def open_dialog_func(self, btn):

if btn == self.color_btn:

color = QColorDialog.getColor() #獲取顏色框

if color.isValid():

self.text_edit.setTextColor(color) #設置顏色

else:

font, ok = QFontDialog.getFont() #獲取字體的框

if ok:

self.text_edit.setFont(font) #設置字體

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

#### 輸入對話框

輸入對話框一共有五種輸入的方法:

| 方法 | 用法 |

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

| getItem() | 從下拉框中獲取選項輸入 |

| getInt() | 獲取整型值輸入 |

| getDouble() | 獲取浮點型值輸入 |

| getText() | 獲取字符輸入 |

| getMultiLineText() | 獲取多行字符串輸入 |

```python

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit, QTextEdit, QPushButton,QGridLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.name_btn = QPushButton('Name', self)

self.gender_btn = QPushButton('Gender', self)

self.age_btn = QPushButton('Age', self)

self.score_btn = QPushButton('Score', self)

self.info_btn = QPushButton('Info', self)

self.name_btn.clicked.connect(lambda: self.open_dialog_func(self.name_btn))

self.gender_btn.clicked.connect(lambda: self.open_dialog_func(self.gender_btn))

self.age_btn.clicked.connect(lambda: self.open_dialog_func(self.age_btn))

self.score_btn.clicked.connect(lambda: self.open_dialog_func(self.score_btn))

self.info_btn.clicked.connect(lambda: self.open_dialog_func(self.info_btn))

self.name_line = QLineEdit(self)

self.gender_line = QLineEdit(self)

self.age_line = QLineEdit(self)

self.score_line = QLineEdit(self)

self.info_textedit = QTextEdit(self)

self.g_layout = QGridLayout()

self.g_layout.addWidget(self.name_btn, 0, 0, 1, 1)

self.g_layout.addWidget(self.name_line, 0, 1, 1, 1)

self.g_layout.addWidget(self.gender_btn, 1, 0, 1, 1)

self.g_layout.addWidget(self.gender_line,1, 1, 1, 1)

self.g_layout.addWidget(self.age_btn, 2, 0, 1, 1)

self.g_layout.addWidget(self.age_line, 2, 1, 1, 1)

self.g_layout.addWidget(self.score_btn, 3, 0, 1, 1)

self.g_layout.addWidget(self.score_line, 3, 1, 1, 1)

self.g_layout.addWidget(self.info_btn, 4, 0, 1, 1)

self.g_layout.addWidget(self.info_textedit, 4, 1, 1, 1)

self.setLayout(self.g_layout)

def open_dialog_func(self, btn):

if btn == self.name_btn: #QInputDialog為輸入對話框

name, ok = QInputDialog.getText(self, 'Name Input', 'Please enter the name:')

if ok:

self.name_line.setText(name)

elif btn == self.gender_btn:

gender_list = ['Female', 'Male']

gender, ok = QInputDialog.getItem(self, 'Gender Input', 'Please choose the gender:', gender_list, 0, False)

if ok:

self.gender_line.setText(gender)

elif btn == self.age_btn:

age, ok = QInputDialog.getInt(self, 'Age Input', 'Please select the age:')

if ok:

self.age_line.setText(str(age))

elif btn == self.score_btn:

score, ok = QInputDialog.getDouble(self, 'Score Input', 'Please select the score:')

if ok:

self.score_line.setText(str(score))

else:

info, ok = QInputDialog.getMultiLineText(self, 'Info Input', 'Please enter the info:')

if ok:

self.info_textedit.setText(info)

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

#### 文件對話框

```python

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QPushButton, QMessageBox, QVBoxLayout,QHBoxLayout, QFileDialog

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.is_saved = True

self.is_saved_first = True

self.path = ''

self.textedit = QTextEdit(self)

self.textedit.textChanged.connect(self.on_textchanged_func) #文本內容改變時自動觸發

self.button = QPushButton('Save', self)

self.button.clicked.connect(self.on_clicked_func)

self.button_2 = QPushButton('Open', self)

self.button_2.clicked.connect(self.open_file_func)

self.h_layout = QHBoxLayout()

self.h_layout.addWidget(self.button)

self.h_layout.addWidget(self.button_2)

self.v_layout = QVBoxLayout()

self.v_layout.addWidget(self.textedit)

self.v_layout.addLayout(self.h_layout)

self.setLayout(self.v_layout)

def on_textchanged_func(self):

if self.textedit.toPlainText():

self.is_saved = False

else:

self.is_saved = True

def on_clicked_func(self):

if self.is_saved_first:

self.save_as_func(self.textedit.toPlainText())

else:

self.save_func(self.textedit.toPlainText())

def save_func(self, text):

with open(self.path, 'w') as f:

f.write(text)

self.is_saved = True

def save_as_func(self, text):

#保存文件的對話框

self.path, _ = QFileDialog.getSaveFileName(self, 'Save File', './', 'Files (*.txt *.log)')

if self.path:

with open(self.path, 'w') as f:

f.write(text)

self.is_saved = True

self.is_saved_first = False

def open_file_func(self):

#打開文本對話框

file, _ = QFileDialog.getOpenFileName(self, 'Open File', './', 'Files (*.txt *.log)')

if file:

with open(file, 'r') as f:

self.textedit.clear()

self.textedit.setText(f.read())

self.is_saved = True

#關閉程序事件

def closeEvent(self, QCloseEvent):

if not self.is_saved:

choice = QMessageBox.question(self, '', 'Do you want to save the text?',

QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel)

if choice == QMessageBox.Yes:

self.on_clicked_func()

QCloseEvent.accept()

elif choice == QMessageBox.No:

QCloseEvent.accept()

else:

QCloseEvent.ignore()

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

### 12、繪圖API:繪制文本 QPainter

drawText()

1.文本

2、各種圖形(直線、點、橢圓、弧、扇形、多變形等)

3、圖形

painter = QPainter()

painter.begin()

painter.drawText()

painter.end()

必須在pantEvent事件中繪制各種元素

#### 用像素繪制正弦曲線QPainter

drawPoint(x,y)

#### 繪制不同的直線QPainter

drawLine()

#### 繪制不同的圖像

rect = QRect(0,10,100,100)

aln:1一個alen等于1/16度

drawArc(rect ,0, 45*16)

#### 繪制帶鉉的弧

drawpie(10,240,100,100,12,130*16)

橢圓

drawEllipse(120,120,150,100)

### 13 組合框QGroupBox和工具箱QToolBox

#### QGroupBox

容器,可以把相同功能的控件放在一起,使得界面更加清晰

```python

import sys

from PyQt5.QtCore import Qt

from PyQt5.QtGui import QPixmap

from PyQt5.QtWidgets import QApplication, QWidget, QGroupBox, QRadioButton, QLabel, QHBoxLayout, QVBoxLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.groupbox_1 = QGroupBox('On and Off', self) # 1

self.groupbox_2 = QGroupBox('Change Color', self)

self.red = QRadioButton('Red', self) # 2

self.blue = QRadioButton('Blue', self)

self.green = QRadioButton('Green', self)

self.yellow = QRadioButton('Yellow', self)

self.color_list = [self.red, self.blue, self.green, self.yellow]

self.on = QRadioButton('On', self) # 3

self.off = QRadioButton('Off', self)

self.pic_label = QLabel(self) # 4

self.h1_layout = QHBoxLayout()

self.h2_layout = QHBoxLayout()

self.h3_layout = QHBoxLayout()

self.all_v_layout = QVBoxLayout()

self.layout_init()

self.radiobutton_init()

self.label_init()

def layout_init(self):

self.h1_layout.addWidget(self.on)

self.h1_layout.addWidget(self.off)

self.groupbox_1.setLayout(self.h1_layout)

self.h2_layout.addWidget(self.red)

self.h2_layout.addWidget(self.blue)

self.h2_layout.addWidget(self.green)

self.h2_layout.addWidget(self.yellow)

self.groupbox_2.setLayout(self.h2_layout)

self.h3_layout.addWidget(self.groupbox_1)

self.h3_layout.addWidget(self.groupbox_2)

self.all_v_layout.addWidget(self.pic_label)

self.all_v_layout.addLayout(self.h3_layout)

self.setLayout(self.all_v_layout)

def radiobutton_init(self):

self.yellow.setChecked(True) # 5

for btn in self.color_list:

btn.clicked.connect(self.change_color_func)

self.off.setChecked(True) # 6

self.off.toggled.connect(self.on_and_off_func)

def label_init(self): # 7

self.pic_label.setPixmap(QPixmap('images/Off.png'))

self.pic_label.setAlignment(Qt.AlignCenter)

def change_color_func(self):

if self.on.isChecked():

path = 'images/{}_light.png'.format([btn.text() for btn in self.color_list if btn.isChecked()][0])

self.pic_label.setPixmap(QPixmap(path))

def on_and_off_func(self):

if self.on.isChecked():

path = 'images/{}_light.png'.format([btn.text() for btn in self.color_list if btn.isChecked()][0])

self.pic_label.setPixmap(QPixmap(path))

else:

self.pic_label.setPixmap(QPixmap('images/Off_light.png'))

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

QToolBox

工具箱,這個工具箱有很多的抽屜,每次只能打開一個,抽屜里面放了很多格式各樣的東西

```python

import sys

from PyQt5.QtGui import QIcon

from PyQt5.QtWidgets import QApplication, QToolBox, QGroupBox, QToolButton, QVBoxLayout

class Demo(QToolBox): # 1

def __init__(self):

super(Demo, self).__init__()

self.groupbox_1 = QGroupBox(self) # 2

self.groupbox_2 = QGroupBox(self)

self.groupbox_3 = QGroupBox(self)

self.toolbtn_f1 = QToolButton(self) # 3

self.toolbtn_f2 = QToolButton(self)

self.toolbtn_f3 = QToolButton(self)

self.toolbtn_m1 = QToolButton(self)

self.toolbtn_m2 = QToolButton(self)

self.toolbtn_m3 = QToolButton(self)

self.v1_layout = QVBoxLayout()

self.v2_layout = QVBoxLayout()

self.v3_layout = QVBoxLayout()

self.addItem(self.groupbox_1, 'Couple One') # 一個Item相當于一個抽屜

self.addItem(self.groupbox_2, 'Couple Two')

self.addItem(self.groupbox_3, 'Couple Three')

self.currentChanged.connect(self.print_index_func) # 5

self.layout_init()

self.groupbox_init()

self.toolbtn_init()

def layout_init(self):

self.v1_layout.addWidget(self.toolbtn_f1)

self.v1_layout.addWidget(self.toolbtn_m1)

self.v2_layout.addWidget(self.toolbtn_f2)

self.v2_layout.addWidget(self.toolbtn_m2)

self.v3_layout.addWidget(self.toolbtn_f3)

self.v3_layout.addWidget(self.toolbtn_m3)

def groupbox_init(self): # 6

self.groupbox_1.setFlat(True)

self.groupbox_2.setFlat(True)

self.groupbox_3.setFlat(True)

self.groupbox_1.setLayout(self.v1_layout)

self.groupbox_2.setLayout(self.v2_layout)

self.groupbox_3.setLayout(self.v3_layout)

def toolbtn_init(self): # 7

self.toolbtn_f1.setIcon(QIcon('images/cartoon1.ico'))

self.toolbtn_f2.setIcon(QIcon('images/cartoon2.ico'))

self.toolbtn_f3.setIcon(QIcon('images/cartoon3.ico'))

self.toolbtn_m1.setIcon(QIcon('images/cartoon4.ico'))

self.toolbtn_m2.setIcon(QIcon('images/close.ico'))

self.toolbtn_m3.setIcon(QIcon('images/cut.ico'))

def print_index_func(self):

couple_dict = {

0: 'Couple One',

1: 'Couple Two',

2: 'Couple Three'

}

sentence = 'You are looking at {}.'.format(couple_dict.get(self.currentIndex()))

print(sentence)

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

### 14 窗口坐標

窗口分為三塊:標題欄,邊框,和客戶區

+ x()——得到窗口左上角在顯示屏屏幕上的x坐標;

+ y()——得到窗口左上角在顯示屏屏幕上的y坐標;

+ pos()——得到窗口左上角在顯示屏屏幕上的x和y坐標,類型為QPoint();

+ geometry().x()——得到客戶區左上角在顯示屏屏幕上的x坐標;

+ geometry().y()——得到客戶區左上角在顯示屏屏幕上的y坐標;

+ geometry()——得到客戶區左上角在顯示屏屏幕上的x和y坐標,以及客戶區的寬度和長度,類型為QRect();

+ width()——得到客戶區的寬度;

+ height()——得到客戶區的長度;

+ geometry().width()——得到客戶區的寬度;

+ geometry().height()——得到客戶區的長度;

+ frameGeometry().width()——得到窗口的寬度;

+ frameGeometry().height()——得到窗口的長度;

```python

import sys

from PyQt5.QtWidgets import QApplication, QWidget

if __name__ == '__main__':

app = QApplication(sys.argv)

widget = QWidget()

widget.resize(200, 200) # 1

widget.move(100, 100) # 2

# widget.setGeometry(100, 100, 200, 200) # 3

widget.show()

print('-----------------x(), y(), pos()-----------------')

print(widget.x())

print(widget.y())

print(widget.pos())

print('-----------------width(), height()-----------------')

print(widget.width())

print(widget.height())

print('-----------------geometry().x(), geometry.y(), geometry()-----------------')

print(widget.geometry().x())

print(widget.geometry().y())

print(widget.geometry())

print('-----------------geometry.width(), geometry().height()-----------------')

print(widget.geometry().width())

print(widget.geometry().height())

print('-----------------frameGeometry().x(), frameGeometry().y(), frameGeometry(), '

'frameGeometry().width(), frameGeometry().height()-----------------')

print(widget.frameGeometry().x())

print(widget.frameGeometry().y())

print(widget.frameGeometry())

print(widget.frameGeometry().width())

print(widget.frameGeometry().height())

sys.exit(app.exec_())

```

### 15 事件處理

#### 窗口關閉事件

```python

def closeEvent(self, QCloseEvent) 是QWidget的窗口關閉函數,通過重寫這個函數,可以定制化關閉的功能

QCloseEvent.accept() #接受窗口關閉的操作

QCloseEvent.ignore() #不接受窗口關閉的操作

```

#### 鼠標事件

```python

def mouseMoveEvent(self, QMouseEvent):

def mousePressEvent(self, QMouseEvent):

def mouseReleaseEvent(self, QMouseEvent):

def mouseDoubleClickEvent(self, QMouseEvent):

這四個函數都是QWidget的函數,作用分別是:鼠標移動觸發、鼠標按下的時候觸發、鼠標釋放的時候觸發

和鼠標雙擊的時候觸發。通過重構這四個函數,可以對鼠標事件進行定制化的功能。

```

+ Qt.LeftButton 、Qt.MidButton、Qt.RightButton:分別表示點擊的是左鍵、之間鍵、右鍵。

+ QMouseEvent.x()、QMouseEvent.y()表示獲取鼠標離程序的坐標

+ QMouseEvent.globalX()、QMouseEvent.globalY()表示鼠標離桌面的坐標

+ self.setMouseTracking(True) 表示讓窗口始終追蹤鼠標。

#### 鍵盤事件

```python

def keyPressEvent(self,QkeyEvent)

def keyReleaseEvent(self,QkeyEvent)

這個兩個函數式QWidget的函數,分別表示鍵盤任意鍵的按下和釋放。

```

+ QkeyEvent 表示接受的按鍵的值

### 16 拖放與剪貼板

拖放和剪貼板的功能原理基礎都是QMimeData類

| 判斷函數 | 獲取函數 | 設置函數 | MIME類型 |

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

| hasText() | text() | setText() | text/plain |

| hasHtml() | html() | setHtml() | text/html |

| hasUrls() | urls() | setUrls() | text/uri-list |

| hasImage() | imageData() | setImageData() | image/* |

| hasColor() | colorData() | setColorData() | application/x-color |

#### 拖放

拖放分為拖動和放下兩個動作,它們涉及到以下的事件:

+ DragEnterEvent: 所拖動目標進入接收該事件的窗口或控件時觸發;

+ DragMoveEvent: 所拖動目標進入窗口或控件后,繼續被拖動時觸發;

+ DragLeaveEvent: 所拖動目標離開窗口或控件時觸發;

+ DropEvent: 所拖動目標被放下時觸發。

#### 剪貼板

```python

from PyQt5.QtWidgets import QApplication

self.clipboard = QApplication.clipboard() #實例化一個剪貼板

self.clipboard.setText("xxxxxx") #將內容放在剪切板中

self.clipboard.text() #取出剪貼板中的內容

```

+ dataChanged 當剪貼板中的內容發生變化時候,將觸發這個信號。

剪貼板的常用方法

### 17 列表控件、樹形控件、表格控件

QListWidget列表控件應當與QListWidgetItem一起使用,后者作為項被添加入列表控件中

QTreeWidget樹形控件應當與QTreeWidgetItem一起使用,后者作為項被添加入列表控件中

QTableWidget表格控件應當與QTableWidgetItem一起使用,后者作為項被添加入列表控件中

#### 列表控價

```python

from PyQt5.QtWidgets import QListWidget,QListWidgetItem

self.listwidget_1 = QListWidget(self) #實例化一個列表控件

#添加列表控件的幾種方式:

1.

self.item = QListWidgetItem(text)

self.listwidget_1.addItem(self.item)

2

self.item_6 = QListWidgetItem('Item 6', self.listwidget_1)

3

self.listwidget_1.addItem('Item 7')

4

str_list = ['Item 9', 'Item 10']

self.listwidget_1.addItems(str_list)

5

self.item_8 = QListWidgetItem('Item 8')

self.listwidget_1.insertItem(8, self.item_8)

```

+ currentItem() 獲取當前點擊的項

#### 樹形控件

```python

from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem

self.tree = QTreeWidget(self) #實例化一個樹形控件

self.tree.setColumnCount(2) #設置顯示的列數,默認是一列的

self.tree.setHeaderLabels(['Install Components', 'Test']) #設置顯示的標題

#設置第一級項

self.preview = QTreeWidgetItem(self.tree)

self.preview.setText(0, 'Preview')

#設置第二級項

self.qt5112 = QTreeWidgetItem()

self.qt5112.setText(0, 'Qt 5.11.2 snapshot')

self.qt5112.setCheckState(0, Qt.Unchecked)

self.preview.addChild(self.qt5112)

#設置第三級項

choice_list = ['macOS', 'Android x86', 'Android ARMv7', 'Sources', 'iOS']

for i, c in enumerate(choice_list):

item = QTreeWidgetItem(self.qt5112)

item.setText(0, c)

item.setCheckState(0, Qt.Unchecked)

```

+ itemClicked 表示點擊item時自動觸發

#### 表格控件

```python

from PyQt5.QtWidgets import QTableWidget, QTableWidgetItem

class Demo(QTableWidget):

self.setRowCount(6) #設定表格的行數

self.setColumnCount(6) #設定表格的列數

self.setColumnWidth(0, 30) #設定列的大小

self.setRowHeight(0, 30) #設定行的大小

self.setHorizontalHeaderLabels(['h1', 'h2', 'h3', 'h4', ' h5', 'h6']) #設置列名

self.setVerticalHeaderLabels(['t1', 't2', 't3', 't4', 't5', 't6']) #設置行的名

self.item_1 = QTableWidgetItem('Hi') #設置表格里面的內容

self.setItem(0, 0, self.item_1)

self.setSpan(2, 2, 2, 2) #設置居中的格式,表示2行2列中有2列2行集中

```

### 18 滾動區域QScrollArea和滾動條QScollBar

```python

import sys

from PyQt5.QtCore import Qt

from PyQt5.QtGui import QPixmap

from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QScrollArea, QScrollBar,QHBoxLayout, QVBoxLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.label = QLabel(self)

self.label.setPixmap(QPixmap('image.jpg'))

self.label.setScaledContents(True) #設置圖片會隨著label便簽的變化而變化大小

self.scroll_area = QScrollArea(self) #初始化一個滾動區域

self.scroll_area.setWidget(self.label)

#將滾動區域的水平滾動條關閉

self.scroll_area.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)

self.scrollbar = QScrollBar(Qt.Horizontal, self) #實例化一個水平的滾動條

#水平滾動條的大小和滾動區域水平滾動條的大小相同

self.scrollbar.setMaximum(self.scroll_area.horizontalScrollBar().maximum())

self.bigger_btn = QPushButton('Zoom in', self)

self.smaller_btn = QPushButton('Zoom out', self)

self.bigger_btn.clicked.connect(self.bigger_func)

self.smaller_btn.clicked.connect(self.smaller_func)

self.scrollbar.valueChanged.connect(self.sync_func)

self.h_layout = QHBoxLayout()

self.h_layout.addWidget(self.bigger_btn)

self.h_layout.addWidget(self.smaller_btn)

self.v_layout = QVBoxLayout()

self.v_layout.addWidget(self.scroll_area)

self.v_layout.addWidget(self.scrollbar)

self.v_layout.addLayout(self.h_layout)

self.setLayout(self.v_layout)

def bigger_func(self):

self.label.resize(self.label.width()*1.2, self.label.height()*1.2)

self.scrollbar.setMaximum(self.scroll_area.horizontalScrollBar().maximum())

def smaller_func(self):

self.label.resize(self.label.width() * 0.8, self.label.height() * 0.8)

self.scrollbar.setMaximum(self.scroll_area.horizontalScrollBar().maximum())

def sync_func(self):

#設置滾動區域水平滾動條的大小等于滾動條的大小

self.scroll_area.horizontalScrollBar().setValue(self.scrollbar.value())

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

### 層疊樣式表

```python

import sys

from PyQt5.QtWidgets import QWidget, QApplication, QListWidget, QStackedWidget,\

QHBoxLayout, QFormLayout, QRadioButton, QLabel, QLineEdit, QCheckBox

class StackUi1(QWidget):

def __init__(self):

super().__init__()

layout = QFormLayout()

layout.addRow('姓名', QLineEdit())

layout.addRow('地址', QLineEdit())

self.setLayout(layout)

class StackUi2(QWidget):

def __init__(self):

super().__init__()

layout = QFormLayout()

sex = QHBoxLayout()

sex.addWidget(QRadioButton('男'))

sex.addWidget(QRadioButton('女'))

layout.addRow(QLabel('性別'), sex)

layout.addRow('生日', QLineEdit())

self.setLayout(layout)

class StackUi3(QWidget):

def __init__(self):

super().__init__()

layout = QHBoxLayout()

# 添加控件到布局中

layout.addWidget(QLabel('科目'))

layout.addWidget(QCheckBox('物理'))

layout.addWidget(QCheckBox('高數'))

self.setLayout(layout)

class Demo(QWidget):

def __init__(self):

super().__init__()

#設置窗口的初始位置和大小

self.setGeometry(300, 300, 30, 30)

self.setWindowTitle("層疊樣式")

# 創建三個小控件

self.stack1 = StackUi1()

self.stack2 = StackUi2()

self.stack3 = StackUi3()

#創建列表窗口

self.left_list = QListWidget()

# 創建層疊樣式表

self.stack = QStackedWidget()

self.init_stack()

self.init_layout()

self.left_list.currentRowChanged.connect(self.display)

def init_layout(self):

# 水平布局,添加部件到布局中

h_layout = QHBoxLayout()

h_layout.addWidget(self.left_list)

h_layout.addWidget(self.stack)

self.setLayout(h_layout)

def init_stack(self):

# 創建列表窗口,添加條目

self.left_list.insertItem(0, "聯系方式")

self.left_list.insertItem(1, "個人信息")

self.left_list.insertItem(2, "教育程度")

self.stack.addWidget(self.stack1)

self.stack.addWidget(self.stack2)

self.stack.addWidget(self.stack3)

def display(self, i):

# 設置當前可見的選項卡的索引

self.stack.setCurrentIndex(i)

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

### 主窗口QMainWindow

主窗口類為我們提供了菜單欄(Menu Bar)、工具欄(Tool Bar)、控件停靠區域(Docke Widgets)和狀態欄(Status Bar)。

### 19 Qt中的多線程

```PYTHON

import sys

from PyQt5.QtCore import Qt, QThread, pyqtSignal

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.button = QPushButton('Count', self)

self.button.clicked.connect(self.count_func)

self.label = QLabel('0', self)

self.label.setAlignment(Qt.AlignCenter)

self.my_thread = MyThread()

self.my_thread.my_signal.connect(self.set_label_func) # 3

self.v_layout = QVBoxLayout()

self.v_layout.addWidget(self.label)

self.v_layout.addWidget(self.button)

self.setLayout(self.v_layout)

def count_func(self):

self.my_thread.start()

def set_label_func(self, num): # 4

self.label.setText(num)

class MyThread(QThread):

my_signal = pyqtSignal(str) # 1

def __init__(self):

super(MyThread, self).__init__()

self.count = 0

def run(self):

while True:

print(self.count)

self.count += 1

self.my_signal.emit(str(self.count)) # 2

self.sleep(1)

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

### 20、QT中的信號與槽

+ 一個信號連接一個槽

+ 多個信號連接一個槽

+ 一個信號連接另一個信號

+ 自定義信號

```python

#自定義信號

import sys

from PyQt5.QtCore import pyqtSignal # 1

from PyQt5.QtWidgets import QApplication, QWidget, QLabel

class Demo(QWidget):

my_signal = pyqtSignal() #定義信號 # 2

def __init__(self):

super(Demo, self).__init__()

self.label = QLabel('Hello World', self)

self.my_signal.connect(self.change_text) # 3

def change_text(self): #槽接受自定義信號

if self.label.text() == 'Hello World':

self.label.setText('Hello PyQt5')

else:

self.label.setText('Hello World')

def mousePressEvent(self, QMouseEvent): # 4

self.my_signal.emit() #觸發信號

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

```pyt

#攜帶參數的自定義信號

import sys

from PyQt5.QtCore import pyqtSignal

from PyQt5.QtWidgets import QApplication, QWidget

class Demo(QWidget):

my_signal = pyqtSignal(int) #攜帶的值,需要說明類型

def __init__(self):

super(Demo, self).__init__()

self.my_signal.connect(self.signal_slot)

def signal_slot(self, x): 形參x接收

print('信號發射成功')

print(x)

def mouseDoubleClickEvent(self, event):

pos_x = event.pos().x()

self.my_signal.emit(pos_x)#觸發信號時攜帶參數

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

```python

#把一個窗口的信息傳遞給另一個窗口時,可以把第一窗口期的實例化對象傳給第二個窗口,但是這樣的話,兩個窗口的耦合性太強了。可以在第一個窗口建立一個槽函數,第二個窗口建立信號。

import sys

from PyQt5.QtCore import pyqtSignal

from PyQt5.QtWidgets import QApplication, QWidget, QTextBrowser, QLineEdit, QPushButton, QHBoxLayout

class Window1(QTextBrowser): # 1

def __init__(self):

super(Window1, self).__init__()

def show_msg_slot(self, msg):

self.append(msg)

class Window2(QWidget): # 2

win2_signal = pyqtSignal(str)

def __init__(self):

super(Window2, self).__init__()

self.line = QLineEdit()

self.send_btn = QPushButton('發送')

self.send_btn.clicked.connect(self.send_to_win1_slot)

h_layout = QHBoxLayout()

h_layout.addWidget(self.line)

h_layout.addWidget(self.send_btn)

self.setLayout(h_layout)

def send_to_win1_slot(self):

msg = self.line.text()

self.win2_signal.emit(msg)

if __name__ == '__main__': # 3

app = QApplication(sys.argv)

win1 = Window1()

win1.show()

win2 = Window2()

win2.show()

win2.win2_signal.connect(win1.show_msg_slot) #信號與槽在此綁定,可以減少兩個類之間的耦合性

sys.exit(app.exec_())

```

```python

#線程之間的通信

import sys

import random

from PyQt5.QtCore import pyqtSignal, QThread

from PyQt5.QtWidgets import QApplication, QWidget, QTextBrowser, QPushButton, QVBoxLayout

class ChildThread(QThread):

child_signal = pyqtSignal(str) # 1

def __init__(self):

super(ChildThread, self).__init__()

def run(self): # 2

result = str(random.randint(1, 10000))

for _ in range(100000000):

pass

self.child_signal.emit(result)

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

self.browser = QTextBrowser() # 3

self.btn = QPushButton('開始爬取')

self.btn.clicked.connect(self.start_thread_slot)

v_layout = QVBoxLayout()

v_layout.addWidget(self.browser)

v_layout.addWidget(self.btn)

self.setLayout(v_layout)

self.child_thread = ChildThread() # 4

self.child_thread.child_signal.connect(self.child_thread_done_slot)

def start_thread_slot(self):

self.browser.clear()

self.browser.append('爬蟲開啟')

self.btn.setText('正在爬取')

self.btn.setEnabled(False)

self.child_thread.start()

def child_thread_done_slot(self, msg):

self.browser.append(msg)

self.browser.append('爬取結束')

self.btn.setText('開始爬取')

self.btn.setEnabled(True)

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

### 21、布局管理

+ 垂直布局QVBoxLaout

```python

#通用情況

v_layout = QVBoxLaout()

v_latout.addWiget(xxxx1)

v_latout.addWiget(xxxx2)

self.setLayout(v_latout)

```

+ 水平布局QHBoxLayout

+ 混合使用QVBoxLaout和QHBoxLayout

+ 表單布局QFormLayout

```python

f_layout = QFormLayout()

v_layout = QVBoxLayout()

f_layout.addRow(xxx1, xxx2) #前面的為label,后面的為line

v_layout.addLayout(self.f_layout) #將表單布局加入其他的布局中

```

+ 網格布局QGridLaout

```python

grid_layout = QGridLayout()

grid_layout.addWidget(xxxx1, 0, 0, 1, 1) #第一行第一列,標簽的大小為占一行一列

```

### 學會使用文檔

1 安裝QtAssistant軟件,并下載文檔查看

2 在線文檔

如果不用QtAssistant軟件的話,我們也可以通過以下鏈接來進行文檔查詢:

http://pyqt.sourceforge.net/Docs/PyQt5/class_reference.html

[文檔地址1:https://doc.qt.io/qtforpython/modules.html](https://doc.qt.io/qtforpython/modules.html)

[文檔地址2:https://www.riverbankcomputing.com/static/Docs/PyQt5/sip-classes.html](https://www.rrbankcomputing.com/static/Docs/PyQt5/sip-classes.html)

## PyQt5圖形界面編程

### QWidget

```python

#屬性

setWindowTitle('學點編程吧出品') #設置標題

resize(250, 150) #調整控件的大小

move(300, 300) #移動到控件的位置,如果是最外層的控件則是屏幕的位置

from PyQt5.QtGui import QIcon

setWindowIcon(QIcon('xdbcb8.ico'))

setMouseTracking(True) #開啟鼠標跟蹤的功能,鼠標沒有按下也會接受鼠標的移動事件

update() #刷新控件。

```

```python

#方法

show() #顯示控件

def keyPressEvent(self, e): #QWdiget自帶的事件處理程序,當按下鍵盤時自動觸發,e觸發的事件,e.key()鍵盤輸入的值

def mouseMoveEvent(self, event): #QWiget控件自帶事件處理程序,當鼠標移動的時候觸發,需要開啟鼠標跟蹤的功能, event.x event.y 表示鼠標當前位置的坐標。

def mousePressEvent(self, e): #QWidget控件自帶事件處理程序,當單擊鼠標的時候自動觸發

def eventFilter(self, object, event) #事件過濾器。

```

### QDialog

```python

QWidget 是QDialog的父類

done(1)#退出控件

```

### PushButton

```python

QPushButton('按鍵名稱', self) #控件實例

setToolTip('點擊這里猜數字') #鼠標懸停在按鍵上面的時候出現提示,支持富文本

clicked #點擊事件,單擊松開為一個完整的點擊事件

```

### QLineEdit

```Python

QLineEdit('內容', self) #控件實例

text() #控件的內容

setFocus() #讓焦點置于文本框中,使文本處于選中的狀態

selectAll() #表示選文本框時,對里面的內容進行全選

clear() #對內容進行清除

from PyQt5.QtCore import Qt

setContextMenuPolicy(Qt.NoContextMenu) #禁止在文本框內右鍵彈出菜單

setPlaceholderText() #文本框為空的時候出現提示

setEchoMode(QLineEdit.Password) #設置顯示方式為密碼,輸入的值將不可見

from PyQt5.QtCore import QRegExp

from PyQt5.QtGui import QRegExpValidator

regx = QRegExp("^[a-zA-Z][0-9A-Za-z]{14}$") #在QLinEdit中加入正則顯示器

validator = QRegExpValidator(regx, ledit) #構造一個驗證器,該父對象接受與正則表達式匹配的所有字符串

setValidator(validator)

```

#顯示模式

| 方式 | 描述 |

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

| QLineEdit.Normal | 顯示輸入的字符。這是默認值 |

| QLineEdit.NoEcho | 不要顯示任何東西,這可能適用于密碼長度保密的密碼 |

| QLineEdit.Password | 顯示密碼字符 |

| QLineEdit.PasswordEchoOnEdit | 在編輯時顯示字符,其他時候顯示密碼 |

### QMeeageBox

```python

QMessageBox.about(self, '內容') #控件實例

QMessageBox.question(self, "標題", "內容", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) #

QMessageBox.critical(self, "內容", )

QMessageBox.warning(self, "內容", )

QMessageBox.information(self, "內容", )

msgBox = QMessageBox(QMessageBox.NoIcon, '關于','不要意淫了,早點洗洗睡吧!') #基于屬性的方式設置消息框的圖片

msgBox.setIconPixmap(QPixmap("images/screen2.jpg"))

```

```python

import sys

from PyQt5.QtWidgets import QMessageBox, QApplication, QWidget, QPushButton

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

btn = QPushButton("按鍵", self)

btn.clicked.connect(self.closeEvent)

def closeEvent(self, event):

reply = QMessageBox.question(self, '確認', '確認退出嗎', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

if reply == QMessageBox.Yes:

event.accept()

else:

pass

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

消息對話框的調用可以分為兩種1、靜態函數的調用;2、基于屬性的調用,上面的例子是靜態函數的調用,下面的例子是基于屬性的調用

```python

import sys

from PyQt5.QtWidgets import QMessageBox, QApplication, QWidget, QPushButton

from PyQt5.QtWidgets import QCheckBox, QLabel

class Demo(QWidget):

def __init__(self):

super(Demo, self).__init__()

btn = QPushButton("按鍵", self)

self.la = QLabel('這里將會顯示我們選擇的按鈕信息', self)

self.la.move(20,20)

btn.clicked.connect(self.closeEvent)

def closeEvent(self, event):

cb = QCheckBox('所有文檔都按此操作')

msgBox = QMessageBox()

msgBox.setWindowTitle('警告')

msgBox.setIcon(QMessageBox.Warning)

msgBox.setText('這是一個警告消息對話框')

msgBox.setInformativeText('出現更改愿意保存嗎?')

Save = msgBox.addButton('按鍵1', QMessageBox.AcceptRole)

msgBox.addButton('按鍵2', QMessageBox.RejectRole)

msgBox.addButton('按鍵3', QMessageBox.DestructiveRole)

msgBox.setDefaultButton(Save)

msgBox.setCheckBox(cb)

cb.stateChanged.connect(self.check)

reply = msgBox.exec_()

if reply == QMessageBox.AcceptRole:

self.la.setText('你選擇了保存!')

elif reply == QMessageBox.RejectRole:

self.la.setText('你選擇了取消!')

else:

self.la.setText('你選擇了不保存!')

def check(self):

if self.sender().isChecked():

self.la.setText('你打勾了哦')

else:

self.la.setText('怎么又不打了啊')

if __name__ == '__main__':

app = QApplication(sys.argv)

demo = Demo()

demo.show()

sys.exit(app.exec_())

```

按鍵的類型

![preview](https://pic1.zhimg.com/v2-41d34adff13956dff87681ed73bb5e04_r.jpg)

### QLabel

```python

QLabel('內容',self)

setText("新的內容")

```

### QCheckBox

```python

Qt.Checked #2

Qt.PartiallyChecked #半選1

Qt.UnChecked #0

isChecked() #查詢狀態全選為True,半選為True,未選中為False

checkState() #查詢狀態,全選為2,半選為1,未選為0

setChecked(True) #設置狀態,True為全選,False為未選中 ,0為未選,1為半選不需要使能半選功能,2為全選

setTristate() #使能按鍵的半選功能,

```

### QDial

```python

valueChanged #值發生改變的信號

```

### QSlider

```python

```

### QPaintert

```python

drawLine(0, 0, self.pos.x(), self.pos.y())# 起點的坐標x,起點的坐標y,終點坐標x,終點坐標y

```

### 信號與槽

```python

#coding=utf-8

import sys

from PyQt5.QtWidgets import (QApplication, QWidget, QMessageBox)

from PyQt5.QtCore import (pyqtSignal, QObject)

class Signal(QObject):

showmouse = pyqtSignal()

class Example(QWidget):

def __init__(self):

super().__init__()

self.initUI()

def initUI(self):

self.setGeometry(200, 200, 300, 300)

self.setWindowTitle('學點編程吧')

self.s = Signal()

self.s.showmouse.connect(self.about)

self.show()

def about(self):

QMessageBox.about(self,'鼠標','你點鼠標了吧!')

def mousePressEvent(self, e):

self.s.showmouse.emit()

if __name__ == '__main__':

app = QApplication(sys.argv)

ex = Example()

sys.exit(app.exec_())

```

### 布局

```python

#QHBoxLayout,QVBoxLayout

addWidget(bt) #布局中增加控件

widget.setLayout(vbox)#控件中設置布局

addStretch(1) #控件中增加一個拉繩因子,里面的參數表示QSpacerItem的個數

#QGridLayout

addWidget(控件,0,0,3,0) #哪行,哪列,占多少行,占多少列

#QFormLayout

addRow(控件1,控件2)

```

### 顏色對話框

```python

col = QColorDialog.getColor() #打開顏色對話框,如果選擇的顏色有效,則設置TextEdit問選擇的當前顏色

if col.isValid():

self.tx.setTextColor(col)

```

### 字體對話框

```python

font, ok = QFontDialog.getFont() #打開顏色對話框,如果ok存在表示存在字體

tx.setCurrentFont(font) #TextEdit 設置選擇的字體

```

### 文件對話框

```python

fname = QFileDialog.getOpenFileName(self, '打開文件','./') #打開單個文件

fname = QFileDialog.getOpenFileName(self, '打開文件','./',("Images (*.png *.xpm *.jpg)")) #對打開的文件進行過濾

```

### QProgressDiaglog

```python

QProgressDialog(self)

setWindowTitle("請稍等") #設置標題

setLabelText("正在操作...") #設置內容

setCancelButtonText("取消") #添加按鍵

setWindowModality(Qt.WindowModal) #設置模式

setMinimumDuration(5) #設置最小顯示時間,自動計算花費時間,如果小于設置時間不顯示進度條

setRange(0,num) #進度條的范圍

setValue(i) #設置進度條的值

progress.wasCanceled(): #為True表示關閉進度條

```

#進度條的模式

| 屬性 | 描述 |

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

| Qt.NonModal | 窗口不是模態的,不會阻止到其他輸入 |

| Qt.WindowModal | 單個模態窗口 |

| Qt.ApplicationModal | 所有窗口模態 |

```python

from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QLabel, QLineEdit, QMessageBox, QProgressDialog)

from PyQt5.QtCore import Qt

import sys

class Example(QWidget):

def __init__(self):

super().__init__()

self.initUI()

def initUI(self):

self.resize(300,150)

self.setWindowTitle("微信公眾號:學點編程吧--進度對話框")

self.lb = QLabel("文件數量",self)

self.lb.move(20,40)

self.bt1 = QPushButton('開始',self)

self.bt1.move(20,80)

self.edit = QLineEdit('100000',self)

self.edit.move(100,40)

self.show()

self.bt1.clicked.connect(self.showDialog)

def showDialog(self):

num = int(self.edit.text())

progress = QProgressDialog(self)

progress.setWindowTitle("請稍等")

progress.setLabelText("正在操作...")

progress.setCancelButtonText("取消")

progress.setMinimumDuration(5)

progress.setWindowModality(Qt.WindowModal)

progress.setRange(0,num)

for i in range(num):

progress.setValue(i)

if progress.wasCanceled():

QMessageBox.warning(self,"提示","操作失敗")

break

else:

progress.setValue(num)

QMessageBox.information(self,"提示","操作成功")

if __name__ == '__main__':

app = QApplication(sys.argv)

ex = Example()

sys.exit(app.exec_()

```

### 雜

```python

from PyQt5.QtCore import QCoreApplication

QCoreApplication.instance().quit # QcoreApplication包含主事件循環,它處理和調度所有事件,instance()表示當前的實例。

```

一鍵復制

編輯

Web IDE

原始數據

按行查看

歷史

總結

以上是生活随笔為你收集整理的qtextedit 默认文案_QT中常用的控件说明.md的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品无套呻吟在线 | 亚洲精品综合五月久久小说 | 国产成人综合色在线观看网站 | 精品人妻av区 | 日本又色又爽又黄的a片18禁 | 国产免费久久久久久无码 | 国产偷自视频区视频 | 色一情一乱一伦一视频免费看 | 国产乡下妇女做爰 | 狠狠色噜噜狠狠狠狠7777米奇 | 俺去俺来也在线www色官网 | 色综合久久久无码网中文 | 国产国语老龄妇女a片 | 亚洲国产欧美在线成人 | 强开小婷嫩苞又嫩又紧视频 | 嫩b人妻精品一区二区三区 | 国产午夜手机精彩视频 | 久久久中文字幕日本无吗 | aⅴ在线视频男人的天堂 | 久久亚洲中文字幕精品一区 | 亚洲国产一区二区三区在线观看 | 色一情一乱一伦一区二区三欧美 | 又大又硬又爽免费视频 | 麻豆精品国产精华精华液好用吗 | 欧美亚洲国产一区二区三区 | 国产小呦泬泬99精品 | 国产免费观看黄av片 | 老子影院午夜伦不卡 | 初尝人妻少妇中文字幕 | 亚洲天堂2017无码中文 | 亚洲色在线无码国产精品不卡 | 久久午夜无码鲁丝片午夜精品 | 欧美熟妇另类久久久久久多毛 | 久久国产精品二国产精品 | 日本丰满熟妇videos | 77777熟女视频在线观看 а天堂中文在线官网 | aⅴ亚洲 日韩 色 图网站 播放 | 国产精品亚洲综合色区韩国 | 丁香花在线影院观看在线播放 | 最近免费中文字幕中文高清百度 | 特大黑人娇小亚洲女 | 少妇久久久久久人妻无码 | 亚洲一区二区三区偷拍女厕 | 久久综合九色综合欧美狠狠 | 国产av无码专区亚洲awww | 狂野欧美性猛xxxx乱大交 | 亚洲 另类 在线 欧美 制服 | 强奷人妻日本中文字幕 | 无码任你躁久久久久久久 | 人人妻人人澡人人爽人人精品浪潮 | 国产在线aaa片一区二区99 | 国产肉丝袜在线观看 | 日本大乳高潮视频在线观看 | 国产精品第一区揄拍无码 | 奇米影视7777久久精品人人爽 | 亚洲熟妇色xxxxx欧美老妇y | 九九综合va免费看 | 兔费看少妇性l交大片免费 | 国产精品国产三级国产专播 | 熟女体下毛毛黑森林 | 99久久精品国产一区二区蜜芽 | 99久久久无码国产精品免费 | 国内精品人妻无码久久久影院 | 三上悠亚人妻中文字幕在线 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 欧美国产日韩亚洲中文 | 激情内射亚州一区二区三区爱妻 | 亚洲自偷精品视频自拍 | 综合网日日天干夜夜久久 | 国产人妻人伦精品1国产丝袜 | 全球成人中文在线 | 久久久久久av无码免费看大片 | 俄罗斯老熟妇色xxxx | 亚洲国产精品美女久久久久 | 福利一区二区三区视频在线观看 | 日本护士xxxxhd少妇 | 撕开奶罩揉吮奶头视频 | 伊人久久大香线蕉亚洲 | 伊人久久大香线蕉亚洲 | 欧美激情内射喷水高潮 | 久久亚洲精品中文字幕无男同 | 国产精品人人爽人人做我的可爱 | 少妇性l交大片欧洲热妇乱xxx | 色一情一乱一伦一视频免费看 | 日韩无码专区 | 日日麻批免费40分钟无码 | 最近的中文字幕在线看视频 | 99久久99久久免费精品蜜桃 | 精品国产av色一区二区深夜久久 | 精品人妻人人做人人爽夜夜爽 | 美女极度色诱视频国产 | 日本一卡2卡3卡四卡精品网站 | 人人妻人人澡人人爽精品欧美 | 人妻夜夜爽天天爽三区 | 双乳奶水饱满少妇呻吟 | 永久免费观看美女裸体的网站 | 激情五月综合色婷婷一区二区 | 亚洲色www成人永久网址 | 少妇被粗大的猛进出69影院 | 中文字幕无码免费久久9一区9 | 亚洲人成人无码网www国产 | 婷婷六月久久综合丁香 | 成人影院yy111111在线观看 | 久久久成人毛片无码 | 久激情内射婷内射蜜桃人妖 | 东北女人啪啪对白 | 女人被男人爽到呻吟的视频 | 国产精品无套呻吟在线 | 99久久久无码国产精品免费 | 国产精品美女久久久久av爽李琼 | 国产成人亚洲综合无码 | 欧美亚洲日韩国产人成在线播放 | 国产又爽又猛又粗的视频a片 | 精品国产一区av天美传媒 | 99久久无码一区人妻 | 久久婷婷五月综合色国产香蕉 | 国产激情无码一区二区 | 偷窥日本少妇撒尿chinese | 狠狠色丁香久久婷婷综合五月 | 正在播放东北夫妻内射 | 狠狠色噜噜狠狠狠狠7777米奇 | 人妻无码αv中文字幕久久琪琪布 | 欧美人与禽猛交狂配 | 日韩欧美群交p片內射中文 | 夜先锋av资源网站 | 国精产品一区二区三区 | 国产xxx69麻豆国语对白 | 久久久久成人精品免费播放动漫 | aⅴ亚洲 日韩 色 图网站 播放 | 狠狠cao日日穞夜夜穞av | 99麻豆久久久国产精品免费 | 特级做a爰片毛片免费69 | 东京无码熟妇人妻av在线网址 | 377p欧洲日本亚洲大胆 | 无码av最新清无码专区吞精 | 亚洲 激情 小说 另类 欧美 | 久久婷婷五月综合色国产香蕉 | 亚洲理论电影在线观看 | 18禁止看的免费污网站 | 亚洲人成影院在线无码按摩店 | 人妻有码中文字幕在线 | 亚洲精品一区二区三区四区五区 | 全球成人中文在线 | 中文字幕人妻丝袜二区 | 荫蒂添的好舒服视频囗交 | 水蜜桃亚洲一二三四在线 | 国产精品亚洲а∨无码播放麻豆 | 无码人妻出轨黑人中文字幕 | 亚洲一区二区三区含羞草 | 国产精品久久久久久无码 | 亚洲の无码国产の无码步美 | 99精品无人区乱码1区2区3区 | 狠狠噜狠狠狠狠丁香五月 | 久青草影院在线观看国产 | 激情五月综合色婷婷一区二区 | 欧美成人高清在线播放 | 无码午夜成人1000部免费视频 | 又粗又大又硬又长又爽 | 人妻少妇精品无码专区二区 | 永久免费精品精品永久-夜色 | 亚洲自偷精品视频自拍 | 天堂а√在线地址中文在线 | 久久久久久久久888 | 亚洲 高清 成人 动漫 | 日日摸夜夜摸狠狠摸婷婷 | 久久精品国产99久久6动漫 | 国产精品免费大片 | 亚洲欧美综合区丁香五月小说 | 国产熟妇另类久久久久 | 国产精品无码成人午夜电影 | 任你躁在线精品免费 | 欧洲精品码一区二区三区免费看 | 欧美日韩综合一区二区三区 | 亚洲成色www久久网站 | 久久99精品久久久久久 | 免费男性肉肉影院 | 性欧美牲交在线视频 | 国产特级毛片aaaaaaa高清 | 国产片av国语在线观看 | 国产成人一区二区三区在线观看 | 99久久人妻精品免费二区 | 一本色道婷婷久久欧美 | а天堂中文在线官网 | 亚洲区欧美区综合区自拍区 | 熟女少妇人妻中文字幕 | 国产精品无码成人午夜电影 | 特大黑人娇小亚洲女 | 无码一区二区三区在线观看 | 黑人巨大精品欧美黑寡妇 | 一二三四在线观看免费视频 | 波多野42部无码喷潮在线 | 乱中年女人伦av三区 | 亚洲国产av精品一区二区蜜芽 | 性色欲情网站iwww九文堂 | 欧美阿v高清资源不卡在线播放 | 在线播放无码字幕亚洲 | 亚洲综合色区中文字幕 | 狠狠亚洲超碰狼人久久 | 国产熟妇高潮叫床视频播放 | 精品国产成人一区二区三区 | 特级做a爰片毛片免费69 | 日本xxxx色视频在线观看免费 | 88国产精品欧美一区二区三区 | 亚洲国产精品美女久久久久 | 免费国产黄网站在线观看 | 欧美一区二区三区视频在线观看 | 亚洲精品午夜无码电影网 | 无套内谢的新婚少妇国语播放 | 熟妇激情内射com | 国语精品一区二区三区 | 久久精品国产日本波多野结衣 | 久久 国产 尿 小便 嘘嘘 | 欧美阿v高清资源不卡在线播放 | 日本护士毛茸茸高潮 | 成人亚洲精品久久久久软件 | 久久国产36精品色熟妇 | 亚洲а∨天堂久久精品2021 | 精品国产一区二区三区av 性色 | 亚洲精品综合一区二区三区在线 | 久久99久久99精品中文字幕 | 日韩欧美中文字幕公布 | 未满小14洗澡无码视频网站 | 又大又硬又黄的免费视频 | 啦啦啦www在线观看免费视频 | 性色欲情网站iwww九文堂 | 亚洲国产一区二区三区在线观看 | 中文精品久久久久人妻不卡 | 欧美freesex黑人又粗又大 | 一本大道伊人av久久综合 | 国精品人妻无码一区二区三区蜜柚 | 国产亚洲精品久久久久久久 | 综合人妻久久一区二区精品 | 国产精品无码久久av | 亚洲va中文字幕无码久久不卡 | 色五月五月丁香亚洲综合网 | 久久综合给久久狠狠97色 | 激情爆乳一区二区三区 | 无码任你躁久久久久久久 | 久久精品国产一区二区三区 | 成人影院yy111111在线观看 | 中文字幕 亚洲精品 第1页 | 亚洲а∨天堂久久精品2021 | 中文字幕av日韩精品一区二区 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 六月丁香婷婷色狠狠久久 | 欧美激情内射喷水高潮 | 欧美熟妇另类久久久久久不卡 | 又色又爽又黄的美女裸体网站 | 国产电影无码午夜在线播放 | 国产午夜精品一区二区三区嫩草 | 天堂无码人妻精品一区二区三区 | 亚洲中文字幕va福利 | 成 人 免费观看网站 | a在线观看免费网站大全 | 一区二区三区高清视频一 | 中文无码成人免费视频在线观看 | 精品欧洲av无码一区二区三区 | 亚洲第一无码av无码专区 | 东京热一精品无码av | 免费播放一区二区三区 | 老子影院午夜伦不卡 | 亚洲精品鲁一鲁一区二区三区 | 曰韩无码二三区中文字幕 | 捆绑白丝粉色jk震动捧喷白浆 | 强辱丰满人妻hd中文字幕 | 丰满岳乱妇在线观看中字无码 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 300部国产真实乱 | 黑人粗大猛烈进出高潮视频 | 好男人社区资源 | 久久久无码中文字幕久... | 亚洲性无码av中文字幕 | 六月丁香婷婷色狠狠久久 | 免费人成在线视频无码 | 国产av无码专区亚洲awww | 强开小婷嫩苞又嫩又紧视频 | www国产精品内射老师 | 精品欧洲av无码一区二区三区 | 午夜肉伦伦影院 | 亚洲欧美国产精品久久 | 亚洲一区二区观看播放 | 亚洲精品午夜国产va久久成人 | 精品水蜜桃久久久久久久 | 国产亚洲精品精品国产亚洲综合 | 国产偷国产偷精品高清尤物 | 精品乱子伦一区二区三区 | 水蜜桃av无码 | 成人精品天堂一区二区三区 | 无码午夜成人1000部免费视频 | 日日鲁鲁鲁夜夜爽爽狠狠 | 中文字幕av无码一区二区三区电影 | 天天摸天天透天天添 | 无码精品人妻一区二区三区av | 3d动漫精品啪啪一区二区中 | 永久免费观看国产裸体美女 | 中文无码伦av中文字幕 | av无码电影一区二区三区 | 成人无码影片精品久久久 | 欧美激情综合亚洲一二区 | 亚洲精品国产精品乱码视色 | 成熟女人特级毛片www免费 | 中文字幕亚洲情99在线 | 撕开奶罩揉吮奶头视频 | 久激情内射婷内射蜜桃人妖 | 亚洲综合精品香蕉久久网 | 亚洲日韩中文字幕在线播放 | 强辱丰满人妻hd中文字幕 | 在线а√天堂中文官网 | 日本一卡二卡不卡视频查询 | 国产99久久精品一区二区 | 欧美丰满少妇xxxx性 | 中文字幕无码av波多野吉衣 | 亚洲精品国产a久久久久久 | 高清国产亚洲精品自在久久 | 日日干夜夜干 | 中文字幕av伊人av无码av | 麻豆国产97在线 | 欧洲 | 亚洲无人区一区二区三区 | 精品欧洲av无码一区二区三区 | 性生交大片免费看女人按摩摩 | 亚洲爆乳大丰满无码专区 | 领导边摸边吃奶边做爽在线观看 | 麻豆成人精品国产免费 | 国产av剧情md精品麻豆 | 亚洲欧美综合区丁香五月小说 | 偷窥村妇洗澡毛毛多 | 色婷婷久久一区二区三区麻豆 | 国产午夜精品一区二区三区嫩草 | 男女作爱免费网站 | 最新国产麻豆aⅴ精品无码 | 久久久亚洲欧洲日产国码αv | 国产明星裸体无码xxxx视频 | 激情人妻另类人妻伦 | 18无码粉嫩小泬无套在线观看 | 久久午夜无码鲁丝片秋霞 | 国产亚洲美女精品久久久2020 | 亚洲一区二区三区四区 | 欧美日韩在线亚洲综合国产人 | 婷婷丁香六月激情综合啪 | 亚洲精品中文字幕久久久久 | 精品日本一区二区三区在线观看 | 中文精品无码中文字幕无码专区 | 乱码av麻豆丝袜熟女系列 | 夜精品a片一区二区三区无码白浆 | 亚洲中文字幕无码中字 | 亚洲成色在线综合网站 | 亚洲午夜久久久影院 | 少妇无码吹潮 | 偷窥日本少妇撒尿chinese | 蜜桃臀无码内射一区二区三区 | 免费无码一区二区三区蜜桃大 | 无码人妻av免费一区二区三区 | 久久97精品久久久久久久不卡 | 67194成是人免费无码 | 国产亚洲人成在线播放 | 亚洲日韩一区二区 | 日日碰狠狠丁香久燥 | 久久久久成人片免费观看蜜芽 | 在线观看欧美一区二区三区 | 国产成人无码av在线影院 | 日本精品人妻无码免费大全 | 亚洲精品一区二区三区大桥未久 | 少妇被黑人到高潮喷出白浆 | 伊人久久大香线蕉av一区二区 | 亚洲精品鲁一鲁一区二区三区 | 帮老师解开蕾丝奶罩吸乳网站 | 精品国产麻豆免费人成网站 | 久久久精品国产sm最大网站 | 麻豆果冻传媒2021精品传媒一区下载 | 久久成人a毛片免费观看网站 | 日韩欧美中文字幕公布 | 国产成人无码av一区二区 | 日韩人妻无码一区二区三区久久99 | 无码av中文字幕免费放 | 国内精品九九久久久精品 | 中文字幕+乱码+中文字幕一区 | 亚洲精品综合五月久久小说 | 欧美熟妇另类久久久久久不卡 | 中文字幕亚洲情99在线 | 日本大乳高潮视频在线观看 | 麻豆国产人妻欲求不满谁演的 | 欧美熟妇另类久久久久久不卡 | 久久五月精品中文字幕 | 国产内射爽爽大片视频社区在线 | 国产成人精品视频ⅴa片软件竹菊 | 99麻豆久久久国产精品免费 | 国内精品久久久久久中文字幕 | 亚洲精品成人av在线 | 色婷婷av一区二区三区之红樱桃 | 亚洲欧洲日本综合aⅴ在线 | 亚洲中文字幕va福利 | 水蜜桃色314在线观看 | 欧美激情内射喷水高潮 | 思思久久99热只有频精品66 | aⅴ亚洲 日韩 色 图网站 播放 | 精品无码国产自产拍在线观看蜜 | 伊人久久婷婷五月综合97色 | 国产一区二区不卡老阿姨 | 亚洲精品国偷拍自产在线麻豆 | 亚洲日韩av一区二区三区中文 | 天天躁夜夜躁狠狠是什么心态 | 免费国产黄网站在线观看 | 久久国产自偷自偷免费一区调 | 高清无码午夜福利视频 | 免费网站看v片在线18禁无码 | 日韩精品无码一区二区中文字幕 | 窝窝午夜理论片影院 | 在线成人www免费观看视频 | 久久亚洲中文字幕精品一区 | 2020最新国产自产精品 | 老熟女重囗味hdxx69 | 久久久久久亚洲精品a片成人 | 丰满人妻被黑人猛烈进入 | 日本成熟视频免费视频 | 永久免费观看国产裸体美女 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 欧美 日韩 亚洲 在线 | 又大又硬又黄的免费视频 | 久久人人爽人人人人片 | 一区二区三区乱码在线 | 欧洲 | 无码毛片视频一区二区本码 | 欧美性猛交xxxx富婆 | 97久久精品无码一区二区 | 51国偷自产一区二区三区 | 风流少妇按摩来高潮 | 亚洲小说春色综合另类 | 女人被男人躁得好爽免费视频 | 国产亚洲tv在线观看 | 久久精品人妻少妇一区二区三区 | 东京热无码av男人的天堂 | 老司机亚洲精品影院 | 黑森林福利视频导航 | 精品无码一区二区三区爱欲 | 人妻无码久久精品人妻 | 精品一区二区三区无码免费视频 | 色欲人妻aaaaaaa无码 | 精品偷拍一区二区三区在线看 | 强奷人妻日本中文字幕 | 国产免费久久久久久无码 | 18无码粉嫩小泬无套在线观看 | 在教室伦流澡到高潮hnp视频 | 国产成人综合在线女婷五月99播放 | 日本一本二本三区免费 | 日本一区二区三区免费播放 | 亚洲综合伊人久久大杳蕉 | 久久99精品国产.久久久久 | 强奷人妻日本中文字幕 | 性色av无码免费一区二区三区 | 麻豆蜜桃av蜜臀av色欲av | 国产成人精品一区二区在线小狼 | 日本免费一区二区三区最新 | 亚洲国产精品一区二区美利坚 | 97久久国产亚洲精品超碰热 | 亚洲精品无码人妻无码 | 日日躁夜夜躁狠狠躁 | 狠狠躁日日躁夜夜躁2020 | 给我免费的视频在线观看 | 中文字幕人成乱码熟女app | 中文字幕av日韩精品一区二区 | 99久久无码一区人妻 | 精品国偷自产在线视频 | 无码国模国产在线观看 | 熟妇人妻中文av无码 | 131美女爱做视频 | 久久午夜夜伦鲁鲁片无码免费 | 国产人妖乱国产精品人妖 | 无码毛片视频一区二区本码 | 国产精品久久久午夜夜伦鲁鲁 | 亚洲成色在线综合网站 | 国产精品久久久av久久久 | 波多野结衣高清一区二区三区 | 免费乱码人妻系列无码专区 | 婷婷综合久久中文字幕蜜桃三电影 | 国产女主播喷水视频在线观看 | 欧美人与禽zoz0性伦交 | 无人区乱码一区二区三区 | 无码国产色欲xxxxx视频 | 日本精品人妻无码免费大全 | 久久国产精品_国产精品 | 国产精品无码永久免费888 | 精品无码一区二区三区爱欲 | 成人精品视频一区二区三区尤物 | 国产婷婷色一区二区三区在线 | 综合激情五月综合激情五月激情1 | 国产成人一区二区三区别 | 日韩精品一区二区av在线 | 无遮无挡爽爽免费视频 | 97精品人妻一区二区三区香蕉 | 国产乱人伦av在线无码 | 人妻无码αv中文字幕久久琪琪布 | 激情综合激情五月俺也去 | 亚洲一区二区三区四区 | 色爱情人网站 | 国产疯狂伦交大片 | 啦啦啦www在线观看免费视频 | 中文字幕av无码一区二区三区电影 | 精品亚洲韩国一区二区三区 | 亚洲精品久久久久中文第一幕 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久久精品人妻久久影视 | 亚洲区欧美区综合区自拍区 | 亚洲精品国产品国语在线观看 | 午夜福利一区二区三区在线观看 | 99久久久无码国产精品免费 | 在线看片无码永久免费视频 | 久久综合久久自在自线精品自 | 久久国产精品_国产精品 | 亚洲另类伦春色综合小说 | 在线观看免费人成视频 | 成熟女人特级毛片www免费 | 亚洲热妇无码av在线播放 | 兔费看少妇性l交大片免费 | 毛片内射-百度 | 亚洲熟妇色xxxxx欧美老妇 | 无码一区二区三区在线观看 | 色一情一乱一伦一视频免费看 | 丰满人妻精品国产99aⅴ | 欧美 亚洲 国产 另类 | 久久精品视频在线看15 | 丰满人妻被黑人猛烈进入 | 久久伊人色av天堂九九小黄鸭 | 国产成人无码av片在线观看不卡 | 色婷婷久久一区二区三区麻豆 | 国产香蕉尹人综合在线观看 | 亚洲精品久久久久avwww潮水 | 蜜桃av抽搐高潮一区二区 | 精品厕所偷拍各类美女tp嘘嘘 | 欧美黑人巨大xxxxx | 中文字幕av日韩精品一区二区 | 熟妇激情内射com | 性欧美熟妇videofreesex | 久久国产精品精品国产色婷婷 | 水蜜桃av无码 | 国产成人人人97超碰超爽8 | av人摸人人人澡人人超碰下载 | 无遮无挡爽爽免费视频 | 亚洲中文字幕无码中字 | 300部国产真实乱 | 中文字幕无码日韩欧毛 | 国内揄拍国内精品人妻 | 全球成人中文在线 | 夫妻免费无码v看片 | 狠狠综合久久久久综合网 | 亚洲欧美精品伊人久久 | 国产精品久久久久久亚洲影视内衣 | 精品久久久久久亚洲精品 | 熟女俱乐部五十路六十路av | 99久久精品午夜一区二区 | 日本一卡2卡3卡四卡精品网站 | 国产成人久久精品流白浆 | 狠狠色丁香久久婷婷综合五月 | 久久精品国产亚洲精品 | 色老头在线一区二区三区 | 人妻尝试又大又粗久久 | 中文字幕人妻无码一区二区三区 | 成人精品天堂一区二区三区 | 99久久人妻精品免费二区 | 亚洲天堂2017无码中文 | 无遮挡国产高潮视频免费观看 | 国产情侣作爱视频免费观看 | 欧美性色19p | 免费中文字幕日韩欧美 | 欧美日韩视频无码一区二区三 | 久久久久久a亚洲欧洲av冫 | 久久无码中文字幕免费影院蜜桃 | 欧美日韩综合一区二区三区 | 日本又色又爽又黄的a片18禁 | 未满小14洗澡无码视频网站 | 天天综合网天天综合色 | 久久精品国产99久久6动漫 | 性欧美熟妇videofreesex | 色欲av亚洲一区无码少妇 | 无码人妻精品一区二区三区不卡 | 正在播放老肥熟妇露脸 | 国产明星裸体无码xxxx视频 | 黑人粗大猛烈进出高潮视频 | 国产精品亚洲专区无码不卡 | 国产精品99久久精品爆乳 | 久久99久久99精品中文字幕 | 荫蒂被男人添的好舒服爽免费视频 | 毛片内射-百度 | a片免费视频在线观看 | 免费视频欧美无人区码 | 自拍偷自拍亚洲精品10p | 天堂а√在线地址中文在线 | 亚洲一区二区三区 | 久久久久免费精品国产 | 熟女少妇人妻中文字幕 | 高清无码午夜福利视频 | 精品无人区无码乱码毛片国产 | 波多野42部无码喷潮在线 | 久久久久亚洲精品男人的天堂 | 中文字幕色婷婷在线视频 | 久久久久99精品国产片 | 亚洲大尺度无码无码专区 | 丝袜足控一区二区三区 | 精品成在人线av无码免费看 | 国内揄拍国内精品少妇国语 | 国产成人无码av在线影院 | 永久免费观看美女裸体的网站 | 久久综合色之久久综合 | 狠狠色欧美亚洲狠狠色www | 精品一二三区久久aaa片 | aⅴ在线视频男人的天堂 | 激情国产av做激情国产爱 | 76少妇精品导航 | 国产午夜无码精品免费看 | 久久99精品国产麻豆 | 欧美国产日韩久久mv | 男女作爱免费网站 | 麻豆国产丝袜白领秘书在线观看 | 男人和女人高潮免费网站 | 精品日本一区二区三区在线观看 | 欧美喷潮久久久xxxxx | 一本久道久久综合狠狠爱 | 影音先锋中文字幕无码 | 亚洲国产精华液网站w | 欧美人与禽zoz0性伦交 | 亚洲国产精品毛片av不卡在线 | 99久久精品日本一区二区免费 | 亚洲乱码中文字幕在线 | 国产精品va在线观看无码 | 久久99精品久久久久久 | 国产一区二区三区日韩精品 | 亚洲精品久久久久中文第一幕 | 日本精品高清一区二区 | 国产成人综合色在线观看网站 | 爽爽影院免费观看 | 成人av无码一区二区三区 | www国产精品内射老师 | 国产成人精品视频ⅴa片软件竹菊 | 久久国产精品二国产精品 | 波多野结衣 黑人 | 99国产欧美久久久精品 | 香蕉久久久久久av成人 | 日日噜噜噜噜夜夜爽亚洲精品 | 中文无码成人免费视频在线观看 | 久久国语露脸国产精品电影 | 国产色视频一区二区三区 | 亚洲精品中文字幕乱码 | 极品嫩模高潮叫床 | 亚洲一区二区观看播放 | 国产一区二区三区影院 | 欧美 日韩 亚洲 在线 | 窝窝午夜理论片影院 | 国产精品丝袜黑色高跟鞋 | 亚洲热妇无码av在线播放 | 人妻少妇精品久久 | 国产成人综合美国十次 | 国产亲子乱弄免费视频 | 国产性生大片免费观看性 | 国产午夜手机精彩视频 | 亚洲爆乳无码专区 | 伊人久久大香线蕉午夜 | 在线天堂新版最新版在线8 | 亚洲中文字幕在线观看 | 免费无码的av片在线观看 | 日韩精品乱码av一区二区 | 欧美三级不卡在线观看 | 久久精品人妻少妇一区二区三区 | 国产成人精品三级麻豆 | 国产午夜精品一区二区三区嫩草 | 久久精品99久久香蕉国产色戒 | 少妇无套内谢久久久久 | 未满小14洗澡无码视频网站 | 精品国偷自产在线视频 | 丁香花在线影院观看在线播放 | 久久aⅴ免费观看 | 人人妻人人澡人人爽欧美一区九九 | 久久国产精品二国产精品 | 久久zyz资源站无码中文动漫 | 天天摸天天碰天天添 | 99久久精品无码一区二区毛片 | 国产精品久久久一区二区三区 | 欧美人妻一区二区三区 | 久久97精品久久久久久久不卡 | 日韩精品久久久肉伦网站 | 日韩精品乱码av一区二区 | 亚洲一区二区三区四区 | 久久久久人妻一区精品色欧美 | 国产精品久久久午夜夜伦鲁鲁 | 强伦人妻一区二区三区视频18 | 国产精品无码mv在线观看 | 中文字幕乱妇无码av在线 | 内射欧美老妇wbb | 国产熟妇高潮叫床视频播放 | 无套内谢老熟女 | 少妇性l交大片欧洲热妇乱xxx | 狠狠色噜噜狠狠狠7777奇米 | 欧美阿v高清资源不卡在线播放 | 18精品久久久无码午夜福利 | 高潮喷水的毛片 | 国产亚洲人成在线播放 | 国产激情艳情在线看视频 | 亚洲欧美色中文字幕在线 | 色综合久久久无码中文字幕 | 毛片内射-百度 | 亚洲人成影院在线无码按摩店 | 成人欧美一区二区三区 | 未满成年国产在线观看 | 亚洲综合无码久久精品综合 | 激情五月综合色婷婷一区二区 | 又湿又紧又大又爽a视频国产 | 精品久久久中文字幕人妻 | 日本肉体xxxx裸交 | www国产亚洲精品久久久日本 | 国产成人无码区免费内射一片色欲 | 国产成人综合美国十次 | 欧洲美熟女乱又伦 | 亚洲色欲色欲天天天www | 亚洲精品中文字幕 | 99久久精品国产一区二区蜜芽 | 中文字幕日韩精品一区二区三区 | 亚洲人成网站在线播放942 | 熟女俱乐部五十路六十路av | 亚洲欧洲日本综合aⅴ在线 | 午夜精品久久久久久久久 | 无码午夜成人1000部免费视频 | 人人妻人人澡人人爽人人精品 | 双乳奶水饱满少妇呻吟 | 亚洲成av人综合在线观看 | 国产高清不卡无码视频 | 动漫av网站免费观看 | 欧洲熟妇精品视频 | 熟妇人妻无码xxx视频 | aⅴ亚洲 日韩 色 图网站 播放 | 国产又粗又硬又大爽黄老大爷视 | 成熟妇人a片免费看网站 | 国产精品高潮呻吟av久久4虎 | 水蜜桃av无码 | 久激情内射婷内射蜜桃人妖 | 亚洲熟悉妇女xxx妇女av | 国产精品无码一区二区三区不卡 | 国产精品久久久午夜夜伦鲁鲁 | 精品无码av一区二区三区 | 亚洲国精产品一二二线 | 久久精品中文字幕大胸 | 毛片内射-百度 | 婷婷五月综合激情中文字幕 | 国产亚洲精品精品国产亚洲综合 | 一区二区三区高清视频一 | 丝袜 中出 制服 人妻 美腿 | 亚洲人成网站在线播放942 | 人人妻人人澡人人爽人人精品浪潮 | 无遮挡国产高潮视频免费观看 | 在线a亚洲视频播放在线观看 | 18无码粉嫩小泬无套在线观看 | 动漫av一区二区在线观看 | 国产又爽又猛又粗的视频a片 | 免费观看激色视频网站 | 国产99久久精品一区二区 | 欧美日韩在线亚洲综合国产人 | 97人妻精品一区二区三区 | 精品久久久中文字幕人妻 | 国产无av码在线观看 | 国产成人无码区免费内射一片色欲 | 国产午夜精品一区二区三区嫩草 | 久久久久久久久蜜桃 | 亚洲一区二区三区四区 | 国产sm调教视频在线观看 | 国产午夜亚洲精品不卡 | 欧美熟妇另类久久久久久不卡 | 熟妇人妻无码xxx视频 | 好屌草这里只有精品 | 成人精品天堂一区二区三区 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产片av国语在线观看 | 又粗又大又硬毛片免费看 | 亚洲精品一区国产 | 粉嫩少妇内射浓精videos | 欧美激情一区二区三区成人 | 国产午夜手机精彩视频 | 伊人久久大香线蕉午夜 | 久久无码中文字幕免费影院蜜桃 | 国产亚洲精品久久久久久国模美 | 伊人久久婷婷五月综合97色 | 老熟女乱子伦 | 亚欧洲精品在线视频免费观看 | 亚洲色欲色欲欲www在线 | 国产手机在线αⅴ片无码观看 | 无码毛片视频一区二区本码 | 国语精品一区二区三区 | 中文字幕无码日韩专区 | 麻豆果冻传媒2021精品传媒一区下载 | 一本加勒比波多野结衣 | 亚洲va中文字幕无码久久不卡 | 中文字幕 人妻熟女 | 久久久久久亚洲精品a片成人 | 久久人人97超碰a片精品 | 亚洲国产精品成人久久蜜臀 | 熟女俱乐部五十路六十路av | 日欧一片内射va在线影院 | 青春草在线视频免费观看 | 一本精品99久久精品77 | 国产av一区二区三区最新精品 | 大乳丰满人妻中文字幕日本 | 国产一区二区三区日韩精品 | 国产精品亚洲五月天高清 | 波多野结衣av在线观看 | 香港三级日本三级妇三级 | 99国产精品白浆在线观看免费 | 国产黄在线观看免费观看不卡 | 国产又粗又硬又大爽黄老大爷视 | 国产精品丝袜黑色高跟鞋 | 日本一本二本三区免费 | 99久久久国产精品无码免费 | 国产午夜福利亚洲第一 | 亚洲精品国产精品乱码不卡 | 亚洲熟熟妇xxxx | 精品国产一区av天美传媒 | 日日摸天天摸爽爽狠狠97 | 亚洲乱亚洲乱妇50p | 荫蒂被男人添的好舒服爽免费视频 | 欧美野外疯狂做受xxxx高潮 | 国产精品久久国产精品99 | 大地资源网第二页免费观看 | 粉嫩少妇内射浓精videos | 国产精品无码成人午夜电影 | 国产一精品一av一免费 | 亚洲欧美综合区丁香五月小说 | 中文字幕人妻无码一区二区三区 | 国产口爆吞精在线视频 | 国内精品九九久久久精品 | 性色av无码免费一区二区三区 | 国产一精品一av一免费 | 免费无码的av片在线观看 | 又大又黄又粗又爽的免费视频 | 国产凸凹视频一区二区 | 色综合久久88色综合天天 | 亚洲精品国产品国语在线观看 | 永久免费观看美女裸体的网站 | 中文字幕无码免费久久99 | 国产热a欧美热a在线视频 | 在线观看国产一区二区三区 | 精品无人国产偷自产在线 | 少妇厨房愉情理9仑片视频 | 99久久精品日本一区二区免费 | 婷婷五月综合激情中文字幕 | 亚洲经典千人经典日产 | 久久国产精品_国产精品 | 无套内谢的新婚少妇国语播放 | 亚洲人亚洲人成电影网站色 | 小sao货水好多真紧h无码视频 | 国产亚洲精品久久久久久大师 | 日日噜噜噜噜夜夜爽亚洲精品 | аⅴ资源天堂资源库在线 | 2020久久超碰国产精品最新 | 成人无码影片精品久久久 | 国产成人无码av一区二区 | 婷婷五月综合缴情在线视频 | www国产亚洲精品久久网站 | 国产两女互慰高潮视频在线观看 | 好男人社区资源 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 日日天日日夜日日摸 | 日韩在线不卡免费视频一区 | 亚洲成a人片在线观看日本 | 免费看男女做好爽好硬视频 | 国产精品二区一区二区aⅴ污介绍 | 麻豆蜜桃av蜜臀av色欲av | 露脸叫床粗话东北少妇 | 国产va免费精品观看 | 亚洲va欧美va天堂v国产综合 | 日本www一道久久久免费榴莲 | 亚洲中文字幕乱码av波多ji | 成人性做爰aaa片免费看 | 日日躁夜夜躁狠狠躁 | 久久精品视频在线看15 | 欧美大屁股xxxxhd黑色 | 狠狠cao日日穞夜夜穞av | 欧美喷潮久久久xxxxx | 亚洲无人区一区二区三区 | 色五月五月丁香亚洲综合网 | 香港三级日本三级妇三级 | 嫩b人妻精品一区二区三区 | 色 综合 欧美 亚洲 国产 | 久久久久久久久888 | 领导边摸边吃奶边做爽在线观看 | 又大又黄又粗又爽的免费视频 | 国产成人午夜福利在线播放 | 国产精品多人p群无码 | 天海翼激烈高潮到腰振不止 | 亚洲精品国偷拍自产在线观看蜜桃 | 色妞www精品免费视频 | 国产福利视频一区二区 | 爱做久久久久久 | 亚洲国产精华液网站w | 亚洲 欧美 激情 小说 另类 | 色一情一乱一伦一视频免费看 | 国产av剧情md精品麻豆 | 三级4级全黄60分钟 | 国产香蕉尹人视频在线 | 好爽又高潮了毛片免费下载 | 亚洲精品一区二区三区在线观看 | 国产激情一区二区三区 | 鲁大师影院在线观看 | 国产亚洲欧美日韩亚洲中文色 | 日本在线高清不卡免费播放 | 成人免费无码大片a毛片 | 99久久久国产精品无码免费 | 18禁止看的免费污网站 | 成熟人妻av无码专区 | 少妇一晚三次一区二区三区 | 中国女人内谢69xxxxxa片 | 国产精品久久久久久久影院 | 亚洲娇小与黑人巨大交 | 亚洲欧美国产精品专区久久 | 人人爽人人澡人人高潮 | 国产精品美女久久久网av | 图片区 小说区 区 亚洲五月 | 东北女人啪啪对白 | 狠狠cao日日穞夜夜穞av | 亚洲精品成人福利网站 | 欧美日韩视频无码一区二区三 | 国产精品久久久久久亚洲影视内衣 | 丰满妇女强制高潮18xxxx | 亚洲中文字幕av在天堂 | 国产两女互慰高潮视频在线观看 | 亚洲自偷自拍另类第1页 | 沈阳熟女露脸对白视频 | 亚洲中文字幕久久无码 | 国产麻豆精品精东影业av网站 | 亚洲色欲久久久综合网东京热 | 人人澡人摸人人添 | 国产片av国语在线观看 | 扒开双腿吃奶呻吟做受视频 | 99麻豆久久久国产精品免费 | 国产亚av手机在线观看 | 夜先锋av资源网站 | 成 人影片 免费观看 | 三上悠亚人妻中文字幕在线 | 亚洲精品久久久久久一区二区 | 亚洲精品成人福利网站 | 精品厕所偷拍各类美女tp嘘嘘 | 最近免费中文字幕中文高清百度 | 无遮无挡爽爽免费视频 | 双乳奶水饱满少妇呻吟 | 亚洲天堂2017无码中文 | 玩弄中年熟妇正在播放 | 婷婷综合久久中文字幕蜜桃三电影 | 老司机亚洲精品影院 | 日本一区二区三区免费播放 | 国产成人精品三级麻豆 | 久久午夜无码鲁丝片午夜精品 | 国产成人无码av在线影院 | 日本www一道久久久免费榴莲 | 免费无码午夜福利片69 | 国产综合色产在线精品 | 久久精品无码一区二区三区 | 伊在人天堂亚洲香蕉精品区 | 大屁股大乳丰满人妻 | 在线欧美精品一区二区三区 | 亚洲精品无码人妻无码 | √天堂中文官网8在线 | 国产av人人夜夜澡人人爽麻豆 | 国产色视频一区二区三区 | 国产精品人人爽人人做我的可爱 | 亚洲精品欧美二区三区中文字幕 | 亚洲精品国偷拍自产在线麻豆 | 色欲久久久天天天综合网精品 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 熟妇人妻无乱码中文字幕 | 国产成人无码av一区二区 | 日本乱偷人妻中文字幕 | 国产电影无码午夜在线播放 | 久久精品国产大片免费观看 | 国产亚洲欧美日韩亚洲中文色 | 中文精品无码中文字幕无码专区 | 曰韩少妇内射免费播放 | aⅴ在线视频男人的天堂 | 国产美女精品一区二区三区 | 亚洲欧美日韩国产精品一区二区 | 成人影院yy111111在线观看 | 国产成人久久精品流白浆 | 久久综合给合久久狠狠狠97色 | 久久久久久亚洲精品a片成人 | 无码人妻少妇伦在线电影 | 无码国模国产在线观看 | 午夜性刺激在线视频免费 | 大肉大捧一进一出好爽视频 | 国产偷国产偷精品高清尤物 | 51国偷自产一区二区三区 | 成人影院yy111111在线观看 | 六月丁香婷婷色狠狠久久 | 一本色道久久综合狠狠躁 | 黑人玩弄人妻中文在线 | 亚洲日韩中文字幕在线播放 | 影音先锋中文字幕无码 | 大地资源中文第3页 | 国产99久久精品一区二区 | 亚洲国产精品久久人人爱 | 午夜精品一区二区三区在线观看 | 无码人妻精品一区二区三区下载 | 久久久久久久久蜜桃 | 中文字幕无码免费久久9一区9 | 国产97色在线 | 免 | 精品久久久中文字幕人妻 | 国产婷婷色一区二区三区在线 | 无码精品国产va在线观看dvd | 99久久婷婷国产综合精品青草免费 | 精品无人区无码乱码毛片国产 | 亚洲国产日韩a在线播放 | 午夜理论片yy44880影院 | 88国产精品欧美一区二区三区 | 国内揄拍国内精品人妻 | 久久久成人毛片无码 | 国产超级va在线观看视频 | 久久亚洲中文字幕无码 | 色欲av亚洲一区无码少妇 | 国精品人妻无码一区二区三区蜜柚 | 玩弄少妇高潮ⅹxxxyw | 国内精品久久毛片一区二区 | 小sao货水好多真紧h无码视频 | 久久精品中文闷骚内射 | 东京无码熟妇人妻av在线网址 | 亚洲 高清 成人 动漫 | 国产 浪潮av性色四虎 | 麻豆md0077饥渴少妇 | 综合网日日天干夜夜久久 | aⅴ亚洲 日韩 色 图网站 播放 | 又湿又紧又大又爽a视频国产 | 欧美老妇与禽交 | 亚洲精品成人福利网站 | 在线成人www免费观看视频 | 久久99精品国产麻豆 | 丰满人妻一区二区三区免费视频 | 少妇被粗大的猛进出69影院 | 偷窥日本少妇撒尿chinese | 图片区 小说区 区 亚洲五月 | 装睡被陌生人摸出水好爽 | 红桃av一区二区三区在线无码av | 黑人大群体交免费视频 | 欧美精品无码一区二区三区 | 午夜性刺激在线视频免费 | 1000部啪啪未满十八勿入下载 | 成人无码视频在线观看网站 | 午夜不卡av免费 一本久久a久久精品vr综合 | 亚洲a无码综合a国产av中文 | 亚洲精品国产品国语在线观看 | 亚洲精品成人福利网站 | 欧美国产日韩亚洲中文 | 亚洲の无码国产の无码影院 | 国产一区二区三区精品视频 | 免费乱码人妻系列无码专区 | 福利一区二区三区视频在线观看 | 麻豆av传媒蜜桃天美传媒 | 精品厕所偷拍各类美女tp嘘嘘 | 国产精品人人妻人人爽 | 精品无人国产偷自产在线 | 黑人粗大猛烈进出高潮视频 | 欧美成人高清在线播放 | 丁香花在线影院观看在线播放 | 成人一区二区免费视频 | 亚洲人成影院在线观看 | 激情亚洲一区国产精品 | 日本精品少妇一区二区三区 | 午夜理论片yy44880影院 | 中文字幕久久久久人妻 | 亚洲精品国产a久久久久久 | 99国产欧美久久久精品 | 亚洲自偷自拍另类第1页 | 亚洲国产成人av在线观看 | 少妇一晚三次一区二区三区 | 高中生自慰www网站 | 中文字幕无码日韩专区 | 国产成人精品必看 | 国产午夜手机精彩视频 | 成熟人妻av无码专区 | 精品久久综合1区2区3区激情 | 300部国产真实乱 | 日产精品99久久久久久 | 亚洲乱亚洲乱妇50p | 午夜性刺激在线视频免费 | 欧美黑人性暴力猛交喷水 | 亚洲日本va中文字幕 | 亚洲国产精品毛片av不卡在线 | 国产午夜手机精彩视频 | 亚洲精品美女久久久久久久 | av在线亚洲欧洲日产一区二区 | 中国大陆精品视频xxxx | 日本精品久久久久中文字幕 | 国内少妇偷人精品视频免费 | 国产激情精品一区二区三区 | 亚洲成a人一区二区三区 | 无码av免费一区二区三区试看 | 欧美老妇交乱视频在线观看 | 人人妻人人澡人人爽欧美一区 | 性生交大片免费看l | 亚洲精品久久久久avwww潮水 | 搡女人真爽免费视频大全 | 国产极品视觉盛宴 | 免费看男女做好爽好硬视频 | 国产偷自视频区视频 | 亚洲呦女专区 | 波多野结衣乳巨码无在线观看 | 亚洲中文字幕在线无码一区二区 | 99久久精品日本一区二区免费 | 人人妻人人澡人人爽精品欧美 | 熟妇人妻无乱码中文字幕 | 自拍偷自拍亚洲精品被多人伦好爽 | 欧美人与禽zoz0性伦交 | 精品国偷自产在线 | 国产熟妇高潮叫床视频播放 | 亚洲欧洲日本综合aⅴ在线 | 中文字幕乱码人妻二区三区 | 爽爽影院免费观看 | 国产猛烈高潮尖叫视频免费 | 丰满肥臀大屁股熟妇激情视频 | 一个人看的视频www在线 | 国产综合色产在线精品 | 任你躁国产自任一区二区三区 | 欧美猛少妇色xxxxx | 久久午夜无码鲁丝片 | 欧美精品无码一区二区三区 | 精品少妇爆乳无码av无码专区 | 亚洲熟妇色xxxxx亚洲 | 97久久国产亚洲精品超碰热 | 少妇高潮一区二区三区99 | 激情亚洲一区国产精品 | www成人国产高清内射 | 夜夜躁日日躁狠狠久久av | 给我免费的视频在线观看 | 国产无遮挡又黄又爽又色 | 奇米影视888欧美在线观看 | 日本一本二本三区免费 | 亚洲色成人中文字幕网站 | 久久无码中文字幕免费影院蜜桃 | 久久国产精品偷任你爽任你 | 麻豆精品国产精华精华液好用吗 | 国产亚洲日韩欧美另类第八页 | 国内精品人妻无码久久久影院蜜桃 | 中文精品无码中文字幕无码专区 | 亚洲の无码国产の无码步美 | 国产特级毛片aaaaaaa高清 | 黑人巨大精品欧美一区二区 | 高中生自慰www网站 | 欧美怡红院免费全部视频 | 国产美女精品一区二区三区 | 日本va欧美va欧美va精品 | 中文字幕无码免费久久99 | 伊人久久大香线蕉午夜 | 欧美性生交活xxxxxdddd | 久久亚洲精品中文字幕无男同 | 国产精品久久久 | 亚洲人成网站在线播放942 | 人妻互换免费中文字幕 | 最新国产乱人伦偷精品免费网站 | 国产麻豆精品一区二区三区v视界 | 一本色道久久综合亚洲精品不卡 | 久久精品国产大片免费观看 | 中文字幕 亚洲精品 第1页 | 日本大乳高潮视频在线观看 | 国产又爽又黄又刺激的视频 | 国产av一区二区三区最新精品 | 一本久道久久综合婷婷五月 | 免费网站看v片在线18禁无码 | 国产精品人人爽人人做我的可爱 | 色 综合 欧美 亚洲 国产 | 日本爽爽爽爽爽爽在线观看免 | 男人的天堂av网站 | 99久久久无码国产精品免费 | 欧洲vodafone精品性 | 亚洲无人区一区二区三区 | 中文字幕av无码一区二区三区电影 | 国产精品内射视频免费 | 国产免费久久精品国产传媒 | 色欲久久久天天天综合网精品 | 国产乱子伦视频在线播放 | 国产 浪潮av性色四虎 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 精品国产乱码久久久久乱码 | 玩弄中年熟妇正在播放 | 国产在线一区二区三区四区五区 | 亚洲高清偷拍一区二区三区 | 亚洲综合色区中文字幕 | 日本一区二区三区免费高清 | 国产无遮挡又黄又爽又色 | 久久久婷婷五月亚洲97号色 | 99国产欧美久久久精品 | 日本精品人妻无码77777 天堂一区人妻无码 | 久青草影院在线观看国产 | 国产精品无套呻吟在线 | 色 综合 欧美 亚洲 国产 | 欧美真人作爱免费视频 | 久久99精品久久久久久 | 久久人人97超碰a片精品 | 国产成人无码专区 | 国产综合久久久久鬼色 | 亚洲成av人在线观看网址 | 欧美 日韩 亚洲 在线 | 人妻天天爽夜夜爽一区二区 | 麻豆成人精品国产免费 | 国产精品久久久久久久影院 | 丰满人妻被黑人猛烈进入 | 日本精品高清一区二区 | 18禁止看的免费污网站 | 性欧美牲交在线视频 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国产精品人人爽人人做我的可爱 | 激情综合激情五月俺也去 | 午夜丰满少妇性开放视频 | 在线 国产 欧美 亚洲 天堂 | 亚洲成av人片天堂网无码】 | 亚洲爆乳精品无码一区二区三区 | 97资源共享在线视频 | 粉嫩少妇内射浓精videos | 欧美熟妇另类久久久久久多毛 | 亚洲精品中文字幕久久久久 | 国内揄拍国内精品少妇国语 | 好男人社区资源 | 日本又色又爽又黄的a片18禁 | 国产麻豆精品一区二区三区v视界 | 亚洲中文字幕无码一久久区 | 国产精品美女久久久网av | 欧美成人免费全部网站 | 又大又紧又粉嫩18p少妇 | 欧美 亚洲 国产 另类 | 欧美成人午夜精品久久久 | 亚洲成熟女人毛毛耸耸多 | 小sao货水好多真紧h无码视频 | 色一情一乱一伦一视频免费看 | 日欧一片内射va在线影院 | 成人片黄网站色大片免费观看 | 久久综合九色综合97网 | 男女性色大片免费网站 | 久久久久亚洲精品中文字幕 | 又大又紧又粉嫩18p少妇 | 鲁大师影院在线观看 | 久久人人爽人人爽人人片av高清 | 无码av最新清无码专区吞精 | 午夜精品一区二区三区在线观看 | 国产成人无码av片在线观看不卡 | 中国大陆精品视频xxxx | 亚洲国产精品毛片av不卡在线 | 久久人人爽人人爽人人片av高清 | 国产乱人无码伦av在线a | www国产亚洲精品久久网站 | 中国女人内谢69xxxx | 久久精品成人欧美大片 | 久久人妻内射无码一区三区 | 中文无码成人免费视频在线观看 | 激情内射亚州一区二区三区爱妻 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 中文字幕av无码一区二区三区电影 | 乱人伦中文视频在线观看 | 久在线观看福利视频 | 精品一区二区不卡无码av | 亚洲欧美综合区丁香五月小说 | 中文字幕无码免费久久9一区9 | 狠狠色丁香久久婷婷综合五月 | 欧美人妻一区二区三区 | www国产精品内射老师 | 国产成人亚洲综合无码 | 亚洲国产欧美在线成人 | 亚洲国产一区二区三区在线观看 | 欧洲精品码一区二区三区免费看 | 人妻人人添人妻人人爱 | 中文字幕无码日韩欧毛 | aⅴ亚洲 日韩 色 图网站 播放 | 1000部啪啪未满十八勿入下载 | 初尝人妻少妇中文字幕 | 牛和人交xxxx欧美 | 精品久久久无码人妻字幂 | 熟妇女人妻丰满少妇中文字幕 | 日韩精品无码免费一区二区三区 | 国产精品久久久久久无码 | 高潮喷水的毛片 | 中文字幕日韩精品一区二区三区 | 久久国产精品二国产精品 | 一本大道伊人av久久综合 | 国产人妻人伦精品1国产丝袜 | 日产精品高潮呻吟av久久 | 亚洲日本一区二区三区在线 | 国产一区二区三区精品视频 | 特大黑人娇小亚洲女 | 麻豆人妻少妇精品无码专区 | 精品成人av一区二区三区 | 丰满少妇高潮惨叫视频 | 在线观看免费人成视频 | 在线观看国产午夜福利片 | 欧美激情一区二区三区成人 | 精品一二三区久久aaa片 | 国产香蕉尹人综合在线观看 | 一本大道久久东京热无码av | 日本一卡2卡3卡四卡精品网站 | 波多野结衣高清一区二区三区 | 99re在线播放 | 人妻少妇被猛烈进入中文字幕 | 日韩人妻少妇一区二区三区 | 狠狠综合久久久久综合网 | 一个人免费观看的www视频 | 18禁黄网站男男禁片免费观看 | 国产香蕉尹人综合在线观看 | 免费看男女做好爽好硬视频 | 久久综合网欧美色妞网 | 美女毛片一区二区三区四区 | 人人爽人人爽人人片av亚洲 | 131美女爱做视频 | 日韩欧美中文字幕在线三区 | 狂野欧美性猛xxxx乱大交 | 亚洲毛片av日韩av无码 | 国产精品久久久久久久9999 | 老太婆性杂交欧美肥老太 | 伊人色综合久久天天小片 | 中文字幕无码免费久久99 | 国产三级精品三级男人的天堂 | 精品无码成人片一区二区98 | 中文字幕 人妻熟女 | 1000部啪啪未满十八勿入下载 | 亚洲伊人久久精品影院 | 亚洲日韩av片在线观看 | 中文字幕无线码免费人妻 | 亚洲成av人综合在线观看 | 97精品人妻一区二区三区香蕉 | 性色av无码免费一区二区三区 | 性史性农村dvd毛片 | 国产精品对白交换视频 | 无码人妻av免费一区二区三区 | 青草青草久热国产精品 | 亚洲成在人网站无码天堂 | 亚洲啪av永久无码精品放毛片 | 国产明星裸体无码xxxx视频 | 精品人妻人人做人人爽 | 动漫av网站免费观看 | 无码人妻av免费一区二区三区 | 国产精品久久国产三级国 | 免费中文字幕日韩欧美 | 一本大道伊人av久久综合 | 午夜精品久久久内射近拍高清 | 亚洲综合精品香蕉久久网 | 熟妇人妻无乱码中文字幕 | 99在线 | 亚洲 | 国产精品99久久精品爆乳 | v一区无码内射国产 | 国产综合色产在线精品 | 帮老师解开蕾丝奶罩吸乳网站 | 少妇一晚三次一区二区三区 | 国产人妻人伦精品 | 亚洲成av人片天堂网无码】 | 一本一道久久综合久久 | 日日橹狠狠爱欧美视频 | 77777熟女视频在线观看 а天堂中文在线官网 | a片在线免费观看 | 色诱久久久久综合网ywww | 给我免费的视频在线观看 | 丝袜 中出 制服 人妻 美腿 | 久久国产精品二国产精品 | 乱人伦中文视频在线观看 | 熟妇人妻无码xxx视频 | 久久99精品国产麻豆蜜芽 | 18无码粉嫩小泬无套在线观看 | 中文字幕人妻无码一区二区三区 | 成人精品视频一区二区三区尤物 | 国产成人无码av一区二区 | 国产内射爽爽大片视频社区在线 | 骚片av蜜桃精品一区 | 国产热a欧美热a在线视频 | √天堂资源地址中文在线 | a片免费视频在线观看 | 一本大道久久东京热无码av | 狂野欧美激情性xxxx | 午夜精品一区二区三区在线观看 | 国精产品一区二区三区 | aa片在线观看视频在线播放 | 又大又黄又粗又爽的免费视频 | 色情久久久av熟女人妻网站 | 久久精品国产日本波多野结衣 | 国产亚洲精品久久久久久 | 色偷偷人人澡人人爽人人模 | 曰本女人与公拘交酡免费视频 | 久久婷婷五月综合色国产香蕉 | 免费播放一区二区三区 | 亚洲国产av美女网站 | 久久久久亚洲精品男人的天堂 | 中文字幕无码免费久久99 | 中文字幕人成乱码熟女app | 日韩人妻无码一区二区三区久久99 | 国产亚洲精品久久久久久久久动漫 | 欧美 日韩 人妻 高清 中文 | 又粗又大又硬又长又爽 | 色综合视频一区二区三区 | 国产精品香蕉在线观看 | 99久久人妻精品免费二区 | 在线成人www免费观看视频 | 婷婷五月综合缴情在线视频 | 日日碰狠狠丁香久燥 | 欧美黑人巨大xxxxx | 亚洲精品久久久久中文第一幕 | 久久综合九色综合欧美狠狠 | 免费无码的av片在线观看 | 99视频精品全部免费免费观看 | 国产麻豆精品一区二区三区v视界 | 97无码免费人妻超级碰碰夜夜 | 亚洲色偷偷偷综合网 | 亚洲啪av永久无码精品放毛片 | 77777熟女视频在线观看 а天堂中文在线官网 | 永久免费观看国产裸体美女 | 领导边摸边吃奶边做爽在线观看 | 中文字幕无线码免费人妻 | 久久久久免费看成人影片 | 中文字幕无码热在线视频 | 亚洲精品一区二区三区在线 | 国产乱人无码伦av在线a | 成年美女黄网站色大免费全看 | 中文字幕无码av波多野吉衣 | 中文字幕日韩精品一区二区三区 | 欧美精品免费观看二区 | 日日天干夜夜狠狠爱 | 人人爽人人澡人人高潮 | 无码午夜成人1000部免费视频 | 免费播放一区二区三区 | 美女极度色诱视频国产 | 日本欧美一区二区三区乱码 | 国产婷婷色一区二区三区在线 | 亚无码乱人伦一区二区 | 国産精品久久久久久久 | 国产亚洲人成a在线v网站 | 色婷婷综合激情综在线播放 | 中文字幕人妻丝袜二区 | 国产精品久久国产精品99 | 日本精品人妻无码77777 天堂一区人妻无码 | 成 人 免费观看网站 | 久久久精品成人免费观看 | 久久精品女人天堂av免费观看 | 天天摸天天碰天天添 | 丝袜 中出 制服 人妻 美腿 | 最新国产乱人伦偷精品免费网站 | 一区二区三区乱码在线 | 欧洲 | 欧美性猛交内射兽交老熟妇 | 欧美激情一区二区三区成人 | 中文字幕av伊人av无码av | 国产后入清纯学生妹 | 3d动漫精品啪啪一区二区中 | 亚洲va中文字幕无码久久不卡 | 精品国产一区二区三区四区在线看 | 图片小说视频一区二区 | 激情内射亚州一区二区三区爱妻 | 少妇一晚三次一区二区三区 | 国内揄拍国内精品人妻 | 亚洲精品久久久久中文第一幕 | 欧美日本免费一区二区三区 | 久久久亚洲欧洲日产国码αv | 成人精品一区二区三区中文字幕 | 欧美性色19p | 久久无码专区国产精品s | 久久精品国产一区二区三区 | 亚洲区欧美区综合区自拍区 | 成人精品一区二区三区中文字幕 | 少妇无码av无码专区在线观看 | 欧美国产亚洲日韩在线二区 | 欧美丰满老熟妇xxxxx性 | 亚洲精品综合一区二区三区在线 | 爽爽影院免费观看 | 成人影院yy111111在线观看 | 国产精品人妻一区二区三区四 | 久久精品无码一区二区三区 | 亚洲毛片av日韩av无码 | 亚洲精品久久久久久久久久久 | 国产人妻人伦精品1国产丝袜 | 亚洲国产av精品一区二区蜜芽 | 免费中文字幕日韩欧美 | 无码任你躁久久久久久久 | 啦啦啦www在线观看免费视频 | av在线亚洲欧洲日产一区二区 | 装睡被陌生人摸出水好爽 | 综合激情五月综合激情五月激情1 | 好爽又高潮了毛片免费下载 | 国内精品人妻无码久久久影院蜜桃 | 亚洲日韩乱码中文无码蜜桃臀网站 | 欧美午夜特黄aaaaaa片 | 亚洲阿v天堂在线 | 精品一区二区不卡无码av | 久久精品女人天堂av免费观看 | 成人无码精品一区二区三区 | 高潮毛片无遮挡高清免费 | 少妇久久久久久人妻无码 | 丝袜人妻一区二区三区 | 中文久久乱码一区二区 | 99久久久国产精品无码免费 | 国产成人综合色在线观看网站 | 性做久久久久久久久 | 国产 精品 自在自线 | 97色伦图片97综合影院 | 少妇高潮一区二区三区99 | 99麻豆久久久国产精品免费 | 国产精品亚洲а∨无码播放麻豆 | 国产成人综合在线女婷五月99播放 | 日本肉体xxxx裸交 | 在线 国产 欧美 亚洲 天堂 | 国产真实伦对白全集 | 色五月丁香五月综合五月 | 免费看男女做好爽好硬视频 | 久久zyz资源站无码中文动漫 | 国产福利视频一区二区 | 麻豆国产97在线 | 欧洲 | 午夜精品一区二区三区在线观看 | 日本丰满熟妇videos | 国产成人亚洲综合无码 | 国产亚洲精品久久久久久久久动漫 | 免费国产黄网站在线观看 | 在线天堂新版最新版在线8 | 精品一二三区久久aaa片 | 国产人妻久久精品二区三区老狼 | 欧美日韩在线亚洲综合国产人 | 亚洲区小说区激情区图片区 | 中国女人内谢69xxxxxa片 | 成人亚洲精品久久久久 | 中文字幕无码乱人伦 | 国产真实夫妇视频 | 成人欧美一区二区三区黑人 | 欧美日韩在线亚洲综合国产人 | 亚洲 日韩 欧美 成人 在线观看 | 亚洲成a人片在线观看无码 | 国产精品福利视频导航 | 亚洲精品无码人妻无码 | 亚洲第一网站男人都懂 | 国产精品内射视频免费 | 国产日产欧产精品精品app | 日日摸夜夜摸狠狠摸婷婷 | 人人澡人人妻人人爽人人蜜桃 | 伊人久久大香线蕉av一区二区 | 帮老师解开蕾丝奶罩吸乳网站 | 亚洲国产一区二区三区在线观看 | 亚洲中文无码av永久不收费 | 精品亚洲成av人在线观看 | 久久亚洲国产成人精品性色 | 国产精品美女久久久久av爽李琼 | 一本久久伊人热热精品中文字幕 | 大屁股大乳丰满人妻 | 国产亲子乱弄免费视频 | 欧美freesex黑人又粗又大 | 久久精品视频在线看15 | 亚洲熟熟妇xxxx | 丰满人妻一区二区三区免费视频 | 永久免费观看国产裸体美女 | 欧美性猛交xxxx富婆 | 日韩亚洲欧美精品综合 | 国产精品人人爽人人做我的可爱 | 久青草影院在线观看国产 | 中文字幕乱码中文乱码51精品 | 久久久久人妻一区精品色欧美 | 国产香蕉尹人视频在线 | 中文字幕 人妻熟女 | 99久久精品国产一区二区蜜芽 | 国产av剧情md精品麻豆 | 一本无码人妻在中文字幕免费 | 沈阳熟女露脸对白视频 | 东北女人啪啪对白 | 久久zyz资源站无码中文动漫 | 亚洲春色在线视频 | 国产精品永久免费视频 | 欧美日韩视频无码一区二区三 | 亚洲爆乳精品无码一区二区三区 | 国产精品久久久av久久久 | 丰腴饱满的极品熟妇 | 强奷人妻日本中文字幕 | 国产小呦泬泬99精品 | 亚洲性无码av中文字幕 | 俄罗斯老熟妇色xxxx | 亚洲色大成网站www | 国产真人无遮挡作爱免费视频 | 中文字幕无码av波多野吉衣 | 国产成人无码一二三区视频 | 国产精品高潮呻吟av久久4虎 | 精品日本一区二区三区在线观看 | 亚洲色欲色欲欲www在线 | 国产美女极度色诱视频www | 黑人巨大精品欧美黑寡妇 | 婷婷五月综合缴情在线视频 | 人人澡人摸人人添 | 亚洲s色大片在线观看 | 国产精品-区区久久久狼 | 精品欧洲av无码一区二区三区 | 日韩少妇白浆无码系列 | 亚洲色偷偷男人的天堂 | 久久久久久久人妻无码中文字幕爆 | www国产亚洲精品久久久日本 | 国产激情艳情在线看视频 | 精品少妇爆乳无码av无码专区 | 国产两女互慰高潮视频在线观看 | 午夜福利不卡在线视频 | a片在线免费观看 | 人人澡人人妻人人爽人人蜜桃 | 久久人人97超碰a片精品 | 国产精品嫩草久久久久 | 日产国产精品亚洲系列 | 无码播放一区二区三区 | 波多野结衣高清一区二区三区 | 特黄特色大片免费播放器图片 | 亚洲日韩中文字幕在线播放 | 久激情内射婷内射蜜桃人妖 | 丰满少妇人妻久久久久久 | 少妇人妻大乳在线视频 | 国产黄在线观看免费观看不卡 | 国内少妇偷人精品视频 | 领导边摸边吃奶边做爽在线观看 | 99精品无人区乱码1区2区3区 | 一本久久伊人热热精品中文字幕 | 夜精品a片一区二区三区无码白浆 | 亚洲日本在线电影 | 中文无码伦av中文字幕 | 性欧美熟妇videofreesex | 婷婷色婷婷开心五月四房播播 | 日韩av激情在线观看 | 无码人中文字幕 | 国产无遮挡吃胸膜奶免费看 | 在线播放亚洲第一字幕 | 国产三级久久久精品麻豆三级 | 伊人久久婷婷五月综合97色 | 天堂无码人妻精品一区二区三区 | 国产欧美熟妇另类久久久 | 久久久久久av无码免费看大片 | 麻豆av传媒蜜桃天美传媒 | 日日摸日日碰夜夜爽av | 国产精品自产拍在线观看 | 99久久婷婷国产综合精品青草免费 | 国产人妖乱国产精品人妖 | 亚洲一区二区三区在线观看网站 | 亚洲人交乣女bbw | 国产av剧情md精品麻豆 | 麻豆果冻传媒2021精品传媒一区下载 | aa片在线观看视频在线播放 | 日日碰狠狠躁久久躁蜜桃 | 亚洲色欲色欲天天天www | 国产后入清纯学生妹 | 在线欧美精品一区二区三区 | 偷窥村妇洗澡毛毛多 | 日韩精品成人一区二区三区 | 99久久久国产精品无码免费 | 又色又爽又黄的美女裸体网站 | 国产人妻大战黑人第1集 | 丝袜足控一区二区三区 | 老子影院午夜伦不卡 | 日本xxxx色视频在线观看免费 | 国产女主播喷水视频在线观看 | 国产精品毛多多水多 | 久久人人97超碰a片精品 | 啦啦啦www在线观看免费视频 | 粗大的内捧猛烈进出视频 | 午夜熟女插插xx免费视频 | 丰满人妻翻云覆雨呻吟视频 | 国产精品.xx视频.xxtv | 久久久久se色偷偷亚洲精品av | 国产舌乚八伦偷品w中 | 国产午夜视频在线观看 | 亚洲乱亚洲乱妇50p | 色综合天天综合狠狠爱 | 波多野结衣 黑人 | 又大又硬又黄的免费视频 | 国产乱人伦av在线无码 | 久久无码人妻影院 | 国产疯狂伦交大片 | 最新国产麻豆aⅴ精品无码 | 精品无码av一区二区三区 | 人人妻人人澡人人爽欧美精品 | 人人妻人人澡人人爽人人精品浪潮 | 97资源共享在线视频 | 又大又黄又粗又爽的免费视频 | 性欧美疯狂xxxxbbbb | 久久久久av无码免费网 | 黑人巨大精品欧美一区二区 | 欧美乱妇无乱码大黄a片 | 精品无码av一区二区三区 | 欧美兽交xxxx×视频 | 好男人社区资源 | 性欧美大战久久久久久久 | 少妇性l交大片欧洲热妇乱xxx | 亚洲熟熟妇xxxx | 午夜丰满少妇性开放视频 | 国产无遮挡又黄又爽免费视频 | 天天综合网天天综合色 | 欧美人与牲动交xxxx | 一二三四社区在线中文视频 | 久久精品国产99精品亚洲 | 中文字幕+乱码+中文字幕一区 | 国产成人av免费观看 |