我會用到
pushbutton: 選取圖片
lineEdit: 顯示選取圖片位址
qlabel: 顯示圖片用
以及今天要學到的
QFileDialog.getOpenFileName()來得到檔案的路徑
首先用qtdesigner:
範例程式碼:
# !/usr/bin/env python27
# -*- coding:utf-8 -*-
import sys
from PySide import QtGui
import main_ui
class MainWindow(QtGui.QMainWindow,main_ui.Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow,self).__init__(parent)
self.setupUi(self)
self.pushButton.clicked.connect(self.choose_file_path)
def choose_file_path(self):
path = QtGui.QFileDialog.getOpenFileName(self, 'Open png file', '', '*.png')
if path[0] == '':
return
self.lineEdit.setText(path[0])
pixmap = QtGui.QPixmap(path[0])
self.label.resize(pixmap.height(),pixmap.width())
self.label.setPixmap(pixmap)
if __name__=='__main__':
app = QtGui.QApplication(sys.argv)
mainwindow=MainWindow()
mainwindow.show()
app.exec_()
結果:
今天主要介紹:
QtGui.QFileDialog.getOpenFileName(self, 'Open png file', '', '*.png')
這一行
這是一行獲取檔案名稱及路徑的函式
根據父類,會開啟一個視窗,請你選擇文件或目錄
函式參數為:
(self, 選取視窗的windowTitle, 選取視窗的起始目錄路徑, 過濾器)
過濾器指的是可以開啟的檔案副檔名
例如:
" (*.png *.jpg *.bmp)" 表示只選擇副檔名為png,jpg,bmp的檔
getOpenFileName回返回一個元祖,包含兩個參數
1是所選檔案的目錄路徑及名稱
2是檔案的過濾器,也就是副檔名
我們得到了經由getOpenFileName返回的路徑後
產生一個Pixmap並放置於label上
一個簡單的圖片顯示器就完成拉
要補充的是與openfile成對的是
QFileDialog.getsavefilename()
一樣可開啟一個對話框,並經由返回的路徑寫檔案哦
今日良言:
Chase Excellence,Sucess will follow.
沒有留言:
張貼留言