設計一個完整的圖形化顯示肯定需要多個窗口啊,ui啊 為了方便進行設計,qtside6提供了很多便捷控件
彈出對話框
導入庫
from PySide6.QtWidgets import QMessageBox
界面
1 def __init__(self): 2 super().__init__() # 調用父類的__init__方法,初始化QWidget 3 4 btn = QPushButton('彈出對話框') # 創建按鈕 5 btn.clicked.connect(self.test) # 連接按鈕的clicked信號到槽函數 6 7 ml = QVBoxLayout() # 創建主佈局 8 ml.addWidget(btn) # 添加到主佈局中 9 10 self.setLayout(ml) # 設置主佈局 11 12 def test(self): 13 QMessageBox.question(self, '提示', '這是一個對話框') 14 # QMessageBox.information(self, '提示', '這是一個對話框', QMessageBox.StandardButton.Ok) 15 # QMessageBox.warning(self, '提示', '這是一個對話框', QMessageBox.StandardButton.Ok) 16 # QMessageBox.critical(self, '提示', '這是一個對話框', QMessageBox.StandardButton.Ok) 17 # QMessageBox.about(self, '提示', '這是一個對話框')
可以發現屬性有很多種下面介紹一下,其實沒有太大的區別,只有提示圖標的變化
information
warning
about
根據第一個函數和其他函數的不同用法,可以發現參數不同的作用
QMessageBox.information(self, '提示', '這是一個對話框', QMessageBox.StandardButton.Ok | QMessageBox.StandardButton.No | QMessageBox.StandardButton.Cancel)
這樣我就設置了一個多按鈕的彈出框

交互
那麼我們設置好了界面如何進行交互呢,其實QMessageBox.屬性名()是有返回值的,返回值為按鍵名稱【QMessageBox.StandardButton.按鍵名】,我們就可以根據返回值判斷設置邏輯
文件交互
導入庫
from PySide6.QtWidgets import QFileDialog
界面
def __init__(self): super().__init__() # 調用父類的__init__方法,初始化QWidget self.resize(200, 150) btn = QPushButton('選擇文件') # 創建按鈕 btn.clicked.connect(self.test) ml = QVBoxLayout() # 創建主佈局 ml.addWidget(btn) self.setLayout(ml) # 設置主佈局 def test(self): fname = QFileDialog.getOpenFileName(self, '選擇文件', './', 'Text Files (*.txt);;All Files (*)') # fname = QFileDialog.getOpenFileNames(self, '選擇文件', './', 'Text Files (*.txt);;All Files (*)') # fname = QFileDialog.getExistingDirectory(self, '選擇文件', './') # fname = QFileDialog.getSaveFileName(self, '選擇文件', './', 'Text Files (*.txt);;All Files (*)') print(fname)
不同的屬性對應不同的命令

選擇之後我們可以得到返回值
getOpenFileName 返回一個元組,第一個是文件地址,第二個是通過那個過濾類型中選擇的

getOpenFileNames 返回一個元組,第一個元素是一個列表,各個文件的地址;第二個同樣是過濾類型名稱
![]()
getExistingDirectory 的參數為(窗體名稱(sefl),‘標題名稱’,‘打開文件夾的默認路徑’)

getExistingDirectory 返回值為選擇的文件夾地址 
getSaveFileName 與打開文件類似,返回值同樣為一個元組,第一個為保存文件地址,第二個為過濾類型。不同的是如果有同名文件夾,會提示是否覆蓋,是會覆蓋,否會返回一個有兩個空元素的元組

選擇否,並關閉彈出的界面的返回值 ![]()