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

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

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

本文主要列出來python圖形開發(fā)GUI庫pyqt5的窗體,控件屬性與方法如果你想看看python圖形開發(fā)GUI庫pyqt5的基礎(chǔ)使用方法可以查看我們的另一篇文章 python圖形開發(fā)GUI庫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è)置信號
	def main(self):
  	# 槽函數(shù)
if __name__ == '__main__':
  app = QApplication(sys.argv)
  demo = Demo()  
  demo.show()   
  sys.exit(app.exec_())

程序啟動畫面

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è)置窗體名稱

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

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() # 獲取窗口左上角坐標

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

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

二、設(shè)置控件

1、QMessageBox消息框

1、基本格式

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

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

QMessageBox.Ok

QMessageBox.Yes

QMessageBox.No

QMessageBox.Close

QMessageBox.Cancel

QMessage.Open

QMessage.Save

2、各種類型的框

類型 名稱
QMessageBox.information 消息框
QMessageBox.question 問答框
QMessageBox.warning 警告框
QMessageBox.critical 錯誤框
QMessageBox.about 關(guān)于框

3、與消息框進行交互

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

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

實例化控件

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

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

設(shè)置信號

控件類型 信號 描述
QTextEdit textChanged 文本發(fā)生改變

控件方法

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

3、各種按鈕

QPushButton,QToolButton,QRadioButton和QCheckBox均繼承自QAbstractButton類

實例化控件

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

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

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

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

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

設(shè)置信號

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

控件方法

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

4、標簽

實例化控件

self.label = QLabel(self) 

控件方法

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

5、單行文本框

實例化控件

self.lineedit = QLineEdit(self)

控件方法

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

設(shè)置信號

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

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

實例化控件

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

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

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

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

設(shè)置信號

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

控件方法

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

7、滑動條和旋鈕

實例化控件

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

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

self.dial = QDial(self) # 旋鈕

設(shè)置信號

控件類型 信號 描述
QSlider valueChanged 數(shù)值發(fā)生改變
QDial valueChanged 改變表盤數(shù)值

控件方法

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

8、定時器和進度條

實例化控件

控件類型 信號 描述
QTimer timeout timer.start()結(jié)束時觸發(fā)

控件方法

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

9、數(shù)字顯示屏

實例化控件

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

控件方法

控件類型 方法 描述
QLCDNumber setDigitCount(10) 設(shè)置顯示多少位數(shù)字
QLCDNumber display(1234567890) 顯示數(shù)字
QLCDNumber setSegmentStyle(參數(shù)1) 設(shè)置顯示屏數(shù)字樣式
QLCDNumber setSmallDecimalPoint(True) 設(shè)置小數(shù)點的顯示方式,若為True,則占位,若為False,則會單獨占位
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)容浮顯,顏色同窗口標題顏色相同
QLCDNumber.Flat 2 讓內(nèi)容扁平化顯示,顏色同窗口標題顏色相同
參數(shù)2 描述
QLCDNumber.Hex 0 十六進制
QLCDNumber.Dec 1 十進制
QLCDNumber.Oct 2 八進制
QLCDNumber.Bin 3 二進制

三、設(shè)置布局

1、實例化布局

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) # 默認是1行1列

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

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

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

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

self.setLayout(all_h_layout)

四、各種對話框

1、顏色對話框和字體對話框

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

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

2、輸入對話框

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

實例:

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è)置幾個參數(shù),前三個與getText()相同,第四個參數(shù)為要加入的選項內(nèi)容,第五個參數(shù)為最初顯示的選項,最后一個參數(shù)是選項內(nèi)容是否可編輯。

3、文件對話框

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 (*)') # 選擇多個文件

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

參數(shù):指定父類,文件對話框的標題,對話框打開時顯示的路徑,文件擴展名過濾器

其中設(shè)置文件擴展名過濾,用雙分號間隔。

'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ù)進行保存
			QCloseEvent.accept()	# 接受關(guān)閉事件
		elif choice == QMessageBox.No: # 如果不需要繼續(xù)保存
			QCloseEvent.accept()	# 接受關(guān)閉事件
		else:
  		QCloseEvent.ignore()	# 忽略關(guān)閉事件

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

相關(guān)文章

最新評論