欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python圖形開(kāi)發(fā)GUI庫(kù)pyqt5的詳細(xì)使用方法及各控件的屬性與方法

 更新時(shí)間:2020年02月14日 16:35:48   作者:face丶  
這篇文章主要介紹了python圖形開(kāi)發(fā)GUI庫(kù)pyqt5的詳細(xì)使用方法及各控件的屬性與方法,需要的朋友可以參考下

本文主要列出來(lái)python圖形開(kāi)發(fā)GUI庫(kù)pyqt5的窗體,控件屬性與方法如果你想看看python圖形開(kāi)發(fā)GUI庫(kù)pyqt5的基礎(chǔ)使用方法可以查看我們的另一篇文章 python圖形開(kāi)發(fā)GUI庫(kù)pyqt5的基本使用方法詳解

基本框架

import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

class Demo(QWidget):     
  def __init__(self):
    super(Demo, self).__init__()
    # 設(shè)置主界面
    # 設(shè)置控件
    # 設(shè)置布局
    # 設(shè)置信號(hào)
	def main(self):
  	# 槽函數(shù)
if __name__ == '__main__':
  app = QApplication(sys.argv)
  demo = Demo()  
  demo.show()   
  sys.exit(app.exec_())

程序啟動(dòng)畫(huà)面

if __name__ == '__main__':
	app = QApplication(sys.argv) # 原有

	splash = QSplashScreen()
	splash.setPixmap(QPixmap('images/splash.jpg'))
	splash.show()
	splash.showMessage('string', Qt.AlignBottom | Qt.AlignCenter, Qt.white)

	demo = Demo() # 原有
	demo.show() # 原有
	
	splash.finish(demo)

	sys.exit(app.exec_()) # 原有

一、設(shè)置主界面

self.setWindowTitle('title') # 設(shè)置窗體名稱(chēng)

self.setWindowIcon('path') # 設(shè)置窗體圖標(biāo)

self.resize(300, 250) # 更改窗體大小

self.size() # 獲取窗體大小

self.width() # 獲取窗體寬度

self.height() # 獲取窗體高度

self.setFixedWidth(int width) # 設(shè)置窗體寬度

self.setFixedHeight(int height) # 設(shè)置窗體高度

self.setFixedSize(int width, int height) # 設(shè)置窗體大小

self.setGeometry(int x, int y, int width, int height) # 設(shè)置窗口位置

self.frameGeometry() # 獲取窗口的大小和位置

self.move(int x, int y) # 設(shè)置窗口的位置

self.pos() # 獲取窗口左上角坐標(biāo)

self.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint) # 禁止最大化按鈕

self.setFixedSize(self.width(), self.height()) # 禁止拉伸窗口大小

二、設(shè)置控件

1、QMessageBox消息框

1、基本格式

QMessageBox.information(QWidget, ‘Title', 'Content‘, buttons)

第一個(gè)參數(shù)填self,表示該信息框?qū)儆谖覀冞@里的Demo窗口;第二個(gè)參數(shù)類(lèi)型為字符串,填入的是該信息框的標(biāo)題;第三個(gè)參數(shù)類(lèi)型也是字符串,填入的是信息框的提示內(nèi)容;最后個(gè)參數(shù)為信息框上要添加的按鈕。多個(gè)按鈕之間用 | 來(lái)連接,常見(jiàn)的按鈕種類(lèi)有以下幾種:

QMessageBox.Ok

QMessageBox.Yes

QMessageBox.No

QMessageBox.Close

QMessageBox.Cancel

QMessage.Open

QMessage.Save

2、各種類(lèi)型的框

類(lèi)型 名稱(chēng)
QMessageBox.information 消息框
QMessageBox.question 問(wèn)答框
QMessageBox.warning 警告框
QMessageBox.critical 錯(cuò)誤框
QMessageBox.about 關(guān)于框

3、與消息框進(jìn)行交互

choice = QMessageBox.question(self, 'Title', 'Content', QMessageBox.Yes | QMessageBox.No) 
if choice == QMessageBox.Yes:  
  pass
elif choice == QMessageBox.No: 
	pass

2、文本編輯框和文本瀏覽框

實(shí)例化控件

self.text_edit = QTextEdit(self) # 文本編輯框

self.text_browser = QTextBrowser(self) # 文本瀏覽框

設(shè)置信號(hào)

控件類(lèi)型 信號(hào) 描述
QTextEdit textChanged 文本發(fā)生改變

控件方法

控件類(lèi)型 方法 描述
QTextEdit setText(‘Content') 設(shè)置文本
QTextEdit toPlainText() 獲取文本
QTextEdit setTextColor(color) 設(shè)置文本顏色
QTextEdit setFont(font) 設(shè)置字體

3、各種按鈕

QPushButton,QToolButton,QRadioButton和QCheckBox均繼承自QAbstractButton類(lèi)

實(shí)例化控件

self.test_button = QPushButton('Test', self) # 實(shí)例化按鈕

self.test_button = QPushButton('&Download',self) # 實(shí)例化按鈕并設(shè)置快捷鍵為Alt+D

self.test_button = QToolButton(self) # 工具按鈕(初始不能傳入文本)

self.on_button = QRadioButton('on', self) # 單選按鈕

self.checkbox1 = QCheckBox('Checkbox 1', self) # 復(fù)選框的三種狀態(tài):全選中、半選中和無(wú)選中

設(shè)置信號(hào)

控件類(lèi)型 信號(hào) 描述
通用 Pressed 當(dāng)鼠標(biāo)指針在按鈕上并按下左鍵時(shí)觸發(fā)該信號(hào)
通用 Released 當(dāng)鼠標(biāo)左鍵被釋放時(shí)觸發(fā)該信號(hào)
通用 Clicked 當(dāng)鼠標(biāo)左鍵被按下然后釋放時(shí),或者快捷鍵被釋放時(shí)觸發(fā)該信號(hào)
通用 Toggled 當(dāng)按鈕的標(biāo)記狀態(tài)發(fā)生改變時(shí)觸發(fā)該信號(hào)
QCheckBox stateChanged 復(fù)選框狀態(tài)發(fā)生改變

控件方法

控件類(lèi)型 方法 描述
通用 isDown() 提示按鈕是否已按下
通用 isChecked() 提示按鈕是否已經(jīng)標(biāo)記
通用 isEnable() 提示按鈕是否可以被用戶點(diǎn)擊
通用 isCheckAble() 提示按鈕是否為可標(biāo)記的
通用 setAutoRepeat() 設(shè)置按鈕是否在用戶長(zhǎng)按時(shí)可以自動(dòng)重復(fù)執(zhí)行
通用 setShortcut(‘Ctrl+D') 設(shè)置按鈕快捷鍵
QPushButton setCheckable(True) 設(shè)置按鈕是否已經(jīng)被選中,如果設(shè)置True,則表示按鈕將保持已點(diǎn)擊和釋放狀態(tài)
QPushButton toggle() 在按鈕狀態(tài)之間進(jìn)行切換
QPushButton setIcon(QIcon(‘button.png')) 設(shè)置圖標(biāo)
QPushButton setEnabled() 設(shè)置按鈕是否可以使用,當(dāng)設(shè)置為False時(shí),按鈕變成不可用狀態(tài),點(diǎn)擊它不會(huì)發(fā)射信號(hào)
QPushButton isChecked() 判斷按鈕是否為標(biāo)記狀態(tài),若是則返回True,不是則返回False
QPushButton setDefault() 設(shè)置按鈕的默認(rèn)狀態(tài)
QPushButton setText(‘text') 設(shè)置按鈕的顯示文本
QPushButton text() 返回按鈕的顯示文本
QToolButton setArrowType(參數(shù)1) 設(shè)定button上顯示的箭頭類(lèi)型
QToolButton setToolButtonStyle(參數(shù)2) 設(shè)定button文本和圖標(biāo)顯示的樣式
QRadioButton setChecked(True) 單選按鈕設(shè)為選中狀態(tài)
QCheckBox setChecked(True) 將復(fù)選框設(shè)為選中或無(wú)選中狀態(tài)
QCheckBox setCheckState(Qt.Checked) 選中狀態(tài)Qt.Checked, 無(wú)選中狀態(tài)Qt.Unchecked和半選中狀態(tài)Qt.PartiallyChecked
QCheckBox setTristate(True) 讓一個(gè)復(fù)選框擁有三種狀態(tài)
QCheckBox setCheckState(Qt.PartiallyChecked) 讓一個(gè)復(fù)選框擁有三種狀態(tài)
QCheckBox checkState() 獲取當(dāng)前復(fù)選框的狀態(tài),返回值為int類(lèi)型,0為無(wú)選中狀態(tài),1為半選中狀態(tài),2為選中狀態(tài)
參數(shù)1 箭頭屬性
Qt.NoArrow 無(wú)箭頭
Qt.UpArrow 向上的箭頭
Qt.DownArrow 向下的箭頭
Qt.LeftArrow 向左的箭頭
Qt.RightArrow 向右的箭頭
參數(shù)2 樣式
Qt.ToolButtonIconOnly 只顯示圖標(biāo)
Qt.ToolButtonTextOnly 只顯示文本
Qt.ToolButtonTextBesideIcon 文本在圖標(biāo)下面
Qt.ToolButtonTextUnderIcon 文本在圖標(biāo)上面
Qt.ToolButtonFollowStyle 未知…

4、標(biāo)簽

實(shí)例化控件

self.label = QLabel(self) 

控件方法

控件類(lèi)型 方法 描述
QLabel setPixmap(QPixmap(‘on.png')) 給標(biāo)簽設(shè)置圖片
QLabel setAlignment(Qt.AlignCenter) 設(shè)置標(biāo)簽對(duì)齊方式

5、單行文本框

實(shí)例化控件

self.lineedit = QLineEdit(self)

控件方法

控件類(lèi)型 方法 描述
QLineEdit setFont(combobox.currentFont()) 設(shè)置字體
QLineEdit setPlaceholderText() 設(shè)置文本框顯示文字
QLineEdit setMaxLength() 設(shè)置文本框所允許輸入的最大字符數(shù)
QLineEdit setReadOnly() 設(shè)置文本為只讀
QLineEdit setText() 設(shè)置文本框的內(nèi)容
QLineEdit text() 返回文本框的內(nèi)容
QLineEdit setDragEnable() 設(shè)置文本框是否接受拖動(dòng)
QLineEdit selectAll() 全選
QLineEdit setFocus() 得到焦點(diǎn)
QLineEdit setAlignment(參數(shù)1) 按固定值方式對(duì)齊文本
QLineEdit setEchoMode(參數(shù)2) 設(shè)置文本框的顯示格式
QLineEdit setValidator(參數(shù)3) 設(shè)置文本框的驗(yàn)證器(驗(yàn)證規(guī)則),將限制任意可能輸入的文本
QLineEdit setInputMask(參數(shù)4) 設(shè)置掩碼
參數(shù)1 功能
Qt.AlignLeft 水平方向靠左對(duì)齊
Qt.AlignRight 水平方向靠右對(duì)齊
Qt.AlignCenter 水平方向居中對(duì)齊
Qt.AlignJustify 水平方向調(diào)整間距兩端對(duì)齊
Qt.AlignTop 垂直方向靠上對(duì)齊
Qt.AlignBottom 垂直方向靠下對(duì)齊
Qt.AlignVCenter 垂直方向居中對(duì)齊
參數(shù)2 功能
QLineEdit.Normal 正常顯示所輸入的字符,此為默認(rèn)選項(xiàng)
QLineEdit.NoEcho 不顯示任何輸入的字符,常用于密碼類(lèi)型的輸入,且長(zhǎng)度保密
QLineEdit.Password 顯示與平臺(tái)相關(guān)的密碼掩飾字符,而不是實(shí)際輸入的字符
QLineEdit.PasswordEchoOnEdit 在編輯時(shí)顯示字符,負(fù)責(zé)顯示密碼類(lèi)型的輸入
參數(shù)3 功能
QIntValidator 限制輸入整數(shù)
QDoubleValidator 限制輸入浮點(diǎn)數(shù)
QRegexpValidator 檢查輸入是否符合正則表達(dá)式
參數(shù)4 功能
000.000.000.000;_ ip地址,空白字符是‘_'
HH:HH:HH:HH:HH:HH; MAC地址
0000-00-00 日期,空白字符是空格
>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;# 許可證號(hào),空白字符是‘_',所有字母都轉(zhuǎn)換為大寫(xiě)

設(shè)置信號(hào)

控件類(lèi)型 信號(hào) 描述
QLineEdit selectionChanged 只要選擇改變了,這個(gè)信號(hào)就會(huì)發(fā)射
QLineEdit textChanged 當(dāng)修改文本內(nèi)容時(shí),這個(gè)信號(hào)就會(huì)發(fā)射
QLineEdit editingFinished 當(dāng)編輯文本結(jié)束時(shí),這個(gè)信號(hào)就會(huì)發(fā)射

6、下拉選擇框和數(shù)字調(diào)節(jié)框

實(shí)例化控件

self.combobox_1 = QComboBox(self) # 普通下拉框(無(wú)內(nèi)容)

self.combobox_2 = QFontComboBox(self) # 字體下拉框(有字體選擇)

self.spinbox = QSpinBox(self) # 數(shù)字調(diào)節(jié)框(默認(rèn)范圍0-99)

self.doublespinbox = QDoubleSpinBox(self) # 浮點(diǎn)數(shù)字調(diào)節(jié)框(默認(rèn)范圍0.00-99.99)

設(shè)置信號(hào)

控件類(lèi)型 信號(hào) 描述
QComboBox currentIndexChanged 序號(hào)發(fā)生變化
QComboBox currentTextChanged 文本發(fā)生變化
QSpinBox valueChanged 數(shù)字發(fā)生變化

控件方法

控件類(lèi)型 方法 描述
QComboBox addItem(self.choice) 添加一個(gè)選項(xiàng)
QComboBox addItems(self.choice_list) 添加多個(gè)選項(xiàng)
QComboBox currentIndex() 獲取當(dāng)前文本序號(hào)
QComboBox currentText() 獲取當(dāng)前文本
QComboBox currentFont() 獲取當(dāng)前字體
QDoubleSpinBox setDecimals(int) 設(shè)置小數(shù)位數(shù)
QSpinBox setRange(-99, 99) 設(shè)置范圍
QSpinBox setSingleStep(1) 設(shè)置步長(zhǎng),即每次點(diǎn)擊遞增或遞減多少值
QSpinBox setValue(66) 設(shè)置初始顯示值
QSpinBox value() 獲取值
QSpinBox setValue(value) 設(shè)置調(diào)節(jié)框的值

7、滑動(dòng)條和旋鈕

實(shí)例化控件

self.slider_1 = QSlider(Qt.Horizontal, self) # 水平滑動(dòng)條

self.slider_2 = QSlider(Qt.Vertical, self) # 垂直滑動(dòng)條

self.dial = QDial(self) # 旋鈕

設(shè)置信號(hào)

控件類(lèi)型 信號(hào) 描述
QSlider valueChanged 數(shù)值發(fā)生改變
QDial valueChanged 改變表盤(pán)數(shù)值

控件方法

控件類(lèi)型 方法 描述
QSlider setRange(0, 100) 設(shè)置滑動(dòng)條的范圍
QSlider setMinimum(0) 設(shè)置最小值
QSlider setMaximum(100) 設(shè)置最大值
QSlider value() 獲取值
QSlider setValue(value) 設(shè)置值
QDial setFixedSize(100, 100) 固定旋鈕的大小
QDial setRange(0, 100) 設(shè)置表盤(pán)數(shù)值范圍
QDial setMinimum(0) 設(shè)置最小值
QDial setMaximum(100) 設(shè)置最大值
QDial setNotchesVisible(True) 顯示刻度

8、定時(shí)器和進(jìn)度條

實(shí)例化控件

控件類(lèi)型 信號(hào) 描述
QTimer timeout timer.start()結(jié)束時(shí)觸發(fā)

控件方法

控件類(lèi)型 方法 描述
QTimer isActive() 判斷定時(shí)器是否處于激活狀態(tài)
QTimer start(100) 啟動(dòng)計(jì)時(shí)器持續(xù)100毫秒
QTimer stop() 停止計(jì)時(shí)器
QTimer setSingleShot(True) 觸發(fā)timeout信號(hào)后只調(diào)用一次update_func()
QProgressBar setMinimum(0) 設(shè)置最小值
QProgressBar setMaximum(100) 設(shè)置最大值
QProgressBar setRange(0, 100) 設(shè)置范圍
QProgressBar setValue(value) 設(shè)置進(jìn)度條當(dāng)前值
QProgressBar reset() 重置進(jìn)度條的值

9、數(shù)字顯示屏

實(shí)例化控件

self.lcd = QLCDNumber(self) # 數(shù)字顯示屏

控件方法

控件類(lèi)型 方法 描述
QLCDNumber setDigitCount(10) 設(shè)置顯示多少位數(shù)字
QLCDNumber display(1234567890) 顯示數(shù)字
QLCDNumber setSegmentStyle(參數(shù)1) 設(shè)置顯示屏數(shù)字樣式
QLCDNumber setSmallDecimalPoint(True) 設(shè)置小數(shù)點(diǎn)的顯示方式,若為T(mén)rue,則占位,若為False,則會(huì)單獨(dú)占位
QLCDNumber display(0.123456789) 顯示數(shù)字
QLCDNumber display(‘HELLO') 顯示字母
QLCDNumber setMode(參數(shù)2) 更改數(shù)字顯示方式
參數(shù)1 描述
QLCDNumber.Outline 0 讓內(nèi)容浮顯,其顏色同顯示屏背景顏色相同
QLCDNumber.Filled 1 讓內(nèi)容浮顯,顏色同窗口標(biāo)題顏色相同
QLCDNumber.Flat 2 讓內(nèi)容扁平化顯示,顏色同窗口標(biāo)題顏色相同
參數(shù)2 描述
QLCDNumber.Hex 0 十六進(jìn)制
QLCDNumber.Dec 1 十進(jìn)制
QLCDNumber.Oct 2 八進(jìn)制
QLCDNumber.Bin 3 二進(jìn)制

三、設(shè)置布局

1、實(shí)例化布局

v_layout = QVBoxLayout() # 垂直布局

h_layout = QHBoxLayout() # 水平布局

form_layout = QFormLayout() # 表單布局

grid_layout = QGridLayout() # 網(wǎng)格布局

2、給布局添加占位符|控件|布局

self.label.setAlignment(Qt.AlignCenter) # 設(shè)置居中方式

h_layout.addStretch(1) # 設(shè)置占位符

v_layout.addWidget(self.user_label) # 垂直布局添加控件

h_layout.addWidget(self.user_line) # 水平布局添加控件

all_v_layout.addLayout(v_layout) # 垂直布局添加垂直布局

all_h_layout.addLayout(h_layout) # 水平布局添加水平布局

form_layout.addRow(self.user_label, self.user_line) # 表單布局添加控件

grid_layout.addWidget(self.user_label, 0, 0, 1, 1) # 網(wǎng)格布局添加控件

grid_layout.addWidget(self.user_label, 0, 0) # 默認(rèn)是1行1列

QGridLayout的addWidget()方法遵循如下語(yǔ)法形式:

addWidget(widget, row, column, rowSpan, columnSpan)

widget就是要添加的控件;row為第幾行,0代表第一行;column為第幾列,0代表第一列;rowSpan表示要讓這個(gè)控件去占用幾行(默認(rèn)一行);columnSpan表示要讓這個(gè)控件去占用幾列(默認(rèn)一列)。

3、設(shè)為整個(gè)窗口的最終布局方式

self.setLayout(all_h_layout)

四、各種對(duì)話框

1、顏色對(duì)話框和字體對(duì)話框

color = QColorDialog.getColor() # 顏色對(duì)話框(十六進(jìn)制的值會(huì)保存在color變量中)
if color.isValid(): # 判斷color是否有效
	self.text_edit.setTextColor(color)

font, ok = QFontDialog.getFont() # 字體對(duì)話框
if ok:
	self.text_edit.setFont(font)

2、輸入對(duì)話框

方法 用法
getItem() 從下拉框中獲取選項(xiàng)輸入
getInt() 獲取整型值輸入
getDouble() 獲取浮點(diǎn)型值輸入
getText() 獲取字符串輸入
getMultiLineText() 獲取多行字符串輸入

實(shí)例:

content, ok = QInputDialog.getText(self, 'title', 'content')

content, ok = QInputDialog.getInt(self, 'title', 'content')

content, ok = QInputDialog.getDouble(self, 'title', 'content')

content, ok = QInputDialog.getMultiLineText(self, 'title', 'content')

Item, ok = QInputDialog.getItem(self, 'title', 'content', list, 0, False)

getItem(parent, str, str, iterable, int, bool)方法需要多設(shè)置幾個(gè)參數(shù),前三個(gè)與getText()相同,第四個(gè)參數(shù)為要加入的選項(xiàng)內(nèi)容,第五個(gè)參數(shù)為最初顯示的選項(xiàng),最后一個(gè)參數(shù)是選項(xiàng)內(nèi)容是否可編輯。

3、文件對(duì)話框

path, _ = QFileDialog.getSaveFileName(self, 'title', './', 'Excel Files (*.xlsx;*.xls);;All Files (*)') # 選擇保存文件

path, _ = QFileDialog.getOpenFileName(self, 'title', './', 'Excel Files (*.xlsx;*.xls);;All Files (*)') # 選擇文件

path, _ = QFileDialog.getOpenFileNames(self, 'title', './', 'Excel Files (*.xlsx;*.xls);;All Files (*)') # 選擇多個(gè)文件

path, _ = QFileDialog.getExistingDirectory(self, 'title', './') # 選擇文件夾

參數(shù):指定父類(lèi),文件對(duì)話框的標(biāo)題,對(duì)話框打開(kāi)時(shí)顯示的路徑,文件擴(kuò)展名過(guò)濾器

其中設(shè)置文件擴(kuò)展名過(guò)濾,用雙分號(hào)間隔。

'All Files (*);;PDF Files (*.pdf);;Text Files (*.txt)'

五、界面關(guān)閉事件

def closeEvent(self, QCloseEvent): # 關(guān)閉事件函數(shù)
	if not self.saved: # 如果未保存
		choice = QMessageBox.question(self, '', 'Do you want to save the text?', QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel)
		if choice == QMessageBox.Yes: # 如果需要繼續(xù)保存
			self.saved_func()	# 調(diào)用函數(shù)進(jìn)行保存
			QCloseEvent.accept()	# 接受關(guān)閉事件
		elif choice == QMessageBox.No: # 如果不需要繼續(xù)保存
			QCloseEvent.accept()	# 接受關(guān)閉事件
		else:
  		QCloseEvent.ignore()	# 忽略關(guān)閉事件

更多關(guān)于python圖形開(kāi)發(fā)GUI庫(kù)pyqt5的使用方法請(qǐng)查看下面的相關(guān)鏈接

相關(guān)文章

最新評(píng)論