亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

本文主要列出來python圖形開發(fā)GUI庫pyqt5的窗體,控件屬性與方法如果你想看看python圖形開發(fā)GUI庫pyqt5的基礎使用方法可以查看我們的另一篇文章 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__()
    # 設置主界面
    # 設置控件
    # 設置布局
    # 設置信號
	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_()) # 原有

一、設置主界面

self.setWindowTitle('title') # 設置窗體名稱

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

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

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

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

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

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

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

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

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

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

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

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

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

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

二、設置控件

1、QMessageBox消息框

1、基本格式

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

第一個參數(shù)填self,表示該信息框屬于我們這里的Demo窗口;第二個參數(shù)類型為字符串,填入的是該信息框的標題;第三個參數(shù)類型也是字符串,填入的是信息框的提示內容;最后個參數(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 關于框

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) # 文本瀏覽框

設置信號

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

控件方法

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

3、各種按鈕

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

實例化控件

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

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

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

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

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

設置信號

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

控件方法

控件類型 方法 描述
通用 isDown() 提示按鈕是否已按下
通用 isChecked() 提示按鈕是否已經標記
通用 isEnable() 提示按鈕是否可以被用戶點擊
通用 isCheckAble() 提示按鈕是否為可標記的
通用 setAutoRepeat() 設置按鈕是否在用戶長按時可以自動重復執(zhí)行
通用 setShortcut(‘Ctrl+D') 設置按鈕快捷鍵
QPushButton setCheckable(True) 設置按鈕是否已經被選中,如果設置True,則表示按鈕將保持已點擊和釋放狀態(tài)
QPushButton toggle() 在按鈕狀態(tài)之間進行切換
QPushButton setIcon(QIcon(‘button.png')) 設置圖標
QPushButton setEnabled() 設置按鈕是否可以使用,當設置為False時,按鈕變成不可用狀態(tài),點擊它不會發(fā)射信號
QPushButton isChecked() 判斷按鈕是否為標記狀態(tài),若是則返回True,不是則返回False
QPushButton setDefault() 設置按鈕的默認狀態(tài)
QPushButton setText(‘text') 設置按鈕的顯示文本
QPushButton text() 返回按鈕的顯示文本
QToolButton setArrowType(參數(shù)1) 設定button上顯示的箭頭類型
QToolButton setToolButtonStyle(參數(shù)2) 設定button文本和圖標顯示的樣式
QRadioButton setChecked(True) 單選按鈕設為選中狀態(tài)
QCheckBox setChecked(True) 將復選框設為選中或無選中狀態(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')) 給標簽設置圖片
QLabel setAlignment(Qt.AlignCenter) 設置標簽對齊方式

5、單行文本框

實例化控件

self.lineedit = QLineEdit(self)

控件方法

控件類型 方法 描述
QLineEdit setFont(combobox.currentFont()) 設置字體
QLineEdit setPlaceholderText() 設置文本框顯示文字
QLineEdit setMaxLength() 設置文本框所允許輸入的最大字符數(shù)
QLineEdit setReadOnly() 設置文本為只讀
QLineEdit setText() 設置文本框的內容
QLineEdit text() 返回文本框的內容
QLineEdit setDragEnable() 設置文本框是否接受拖動
QLineEdit selectAll() 全選
QLineEdit setFocus() 得到焦點
QLineEdit setAlignment(參數(shù)1) 按固定值方式對齊文本
QLineEdit setEchoMode(參數(shù)2) 設置文本框的顯示格式
QLineEdit setValidator(參數(shù)3) 設置文本框的驗證器(驗證規(guī)則),將限制任意可能輸入的文本
QLineEdit setInputMask(參數(shù)4) 設置掩碼
參數(shù)1 功能
Qt.AlignLeft 水平方向靠左對齊
Qt.AlignRight 水平方向靠右對齊
Qt.AlignCenter 水平方向居中對齊
Qt.AlignJustify 水平方向調整間距兩端對齊
Qt.AlignTop 垂直方向靠上對齊
Qt.AlignBottom 垂直方向靠下對齊
Qt.AlignVCenter 垂直方向居中對齊
參數(shù)2 功能
QLineEdit.Normal 正常顯示所輸入的字符,此為默認選項
QLineEdit.NoEcho 不顯示任何輸入的字符,常用于密碼類型的輸入,且長度保密
QLineEdit.Password 顯示與平臺相關的密碼掩飾字符,而不是實際輸入的字符
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;# 許可證號,空白字符是‘_',所有字母都轉換為大寫

設置信號

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

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

實例化控件

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

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

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

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

設置信號

控件類型 信號 描述
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ù)
QSpinBox setRange(-99, 99) 設置范圍
QSpinBox setSingleStep(1) 設置步長,即每次點擊遞增或遞減多少值
QSpinBox setValue(66) 設置初始顯示值
QSpinBox value() 獲取值
QSpinBox setValue(value) 設置調節(jié)框的值

7、滑動條和旋鈕

實例化控件

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

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

self.dial = QDial(self) # 旋鈕

設置信號

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

控件方法

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

8、定時器和進度條

實例化控件

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

控件方法

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

9、數(shù)字顯示屏

實例化控件

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

控件方法

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

三、設置布局

1、實例化布局

v_layout = QVBoxLayout() # 垂直布局

h_layout = QHBoxLayout() # 水平布局

form_layout = QFormLayout() # 表單布局

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

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

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

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

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、設為整個窗口的最終布局方式

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

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ù):指定父類,文件對話框的標題,對話框打開時顯示的路徑,文件擴展名過濾器

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

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

五、界面關閉事件

def closeEvent(self, QCloseEvent): # 關閉事件函數(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()	# 調用函數(shù)進行保存
			QCloseEvent.accept()	# 接受關閉事件
		elif choice == QMessageBox.No: # 如果不需要繼續(xù)保存
			QCloseEvent.accept()	# 接受關閉事件
		else:
  		QCloseEvent.ignore()	# 忽略關閉事件

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

相關文章

最新評論