Pyside 用QLabel加上Pixmap顯示png圖片

今天要來實作一下qt的圖片顯示功能

我會用到
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.

沒有留言:

張貼留言

About

努力在程式的大海
用力的揮動雙手
找出屬於自己的航線

Blog Archive

Traffic