『壹』 matlab裡面uigetfile函數的使用
[FileName,PathName,FilterIndex] = uigetfile('*.xls');%獲取所選文件信息(文件名、路徑等)
if FilterIndex
[A,T]=xlsread([PathName,FileName]);%讀取xls文件,具體請看xlsread的幫助
end
『貳』 python如何調用ui文件
ui文件是Qt生成xml格式的文件,python要使用就得用pyside 或pyqt這其中一個庫才能將ui文件轉化為py文件,安裝pyside庫後,在命令行打這一句 : pyside-uic XXX.ui -o XXX_ui.py
『叄』 uigetfile是什麼意思
在matlab的GUI編程中的指令,你可以用help裡面查一下,這個事用來顯示檢索文件的對話框的,格式為:uigetfile('FilterSpec','DialogTitle')或者[FileName,PathName] = uigetfile(...),其中的FilterSpec為'*.m';'*.mdl';'*.mat';'*.*',等等即為文件的格式,DialogTitle為標題名,FileName,PathName分別為選擇的文件的文件名及路徑名
『肆』 python 按鈕彈出另外一個畫好的ui文件
您需要將Qt設計器文件轉換為Python文件。
為此,可以對ui文件使用命令行命令pyuic5,rc文件使用命令行命令pyrcc5。在要將ui文件轉換為Python,請執行以下操作:pyuic5import-from=widgets-xyour_file.ui-oyour_file.py。
『伍』 MATLAB中uigetfile()函數的解析
[FileName,PathName,FilterIndex] = uigetfile('*.xls');%獲取所選文件信息(文件名、路徑等)
if FilterIndex
[A,T]=xlsread([PathName,FileName]);%讀取xls文件,具體請看xlsread的幫助
end
『陸』 Python獲取文件信息
#-*- coding: utf-8 -*-
import os
#已知文件名的情況下,可以用這個函數
def getFileInfo(filepath):
info = {}
if os.path.isfile(filepath):
info['TimeCreated'] = os.path.getctime(filepath)
info['TimeModified'] = os.path.getatime(filepath)
info['Size'] = os.path.getsize(filepath)
return info
# 如果只知道文件根目錄,但是不知道具體的文件路徑,
# 可以先用os.listdir獲得文件和文件夾列表
#-------------------分界線----------------------
# 這是回答你的第二個問題。如何找到一個字元串中指定兩個字元中間的字元串
# 這里用的是正則表達式
import re
special = "*.?+$^[](){}|\/" #正則表達式中會出現的特殊字元
# 輸入參數為原始字元,leftmark表示左邊的分隔符號,rightmark表示右邊的分隔符號
#函數返回在leftmark和rightmark中間的內容,可能匹配滿足不止一次,沒有找到就返回空
def matchpattern(str1,leftmark,rightmark):
lf,rt = leftmark,rightmark
#如果需要匹配的字元在正則表達式中時特殊字元,需要給予轉義
if leftmark in special:
lf = '\%s'%leftmark
if rightmark in special:
rt = '\%s'%rightmark
pattern = re.compile(r''+lf + '.{0,}'+ rt)
matched = re.findall(pattern,str1)
result = []
if matched:
#如果匹配成功了,就去頭去尾,直接取中間的部分
for m in matched:
s = m.replace(leftmark, '')
s = s.replace(rightmark, '')
result.append(s)
return result
else:
return None
if __name__ == '__main__':
print matchpattern("#abcsdfs%sdfsdf*",'%','*')
『柒』 matlab uigetfile和uiputfile有什麼區別
感覺其實功能差不多,就是獲得選定文件的文件名和路徑,這個兩個命令自身不負責文件的讀取和存儲。
不過uigetfile不能在對話框中任意輸入文件名,必須選定已有文件,uiputfile則可以任意輸入。
『捌』 如何用python做ui界面tkinter
import time
import tkinter as tk
class Window:
def __init__(self, title='nms', width=300, height=120, staFunc=bool, stoFunc=bool):
self.w = width
self.h = height
self.stat = True
self.staFunc = staFunc
self.stoFunc = stoFunc
self.staIco = None
self.stoIco = None
self.root = tk.Tk(className=title)
def center(self):
ws = self.root.winfo_screenwidth()
hs = self.root.winfo_screenheight()
x = int( (ws/2) - (self.w/2) )
y = int( (hs/2) - (self.h/2) )
self.root.geometry('{}x{}+{}+{}'.format(self.w, self.h, x, y))
def packBtn(self):
self.btnSer = tk.Button(self.root, command=self.event, width=15, height=3)
self.btnSer.pack(padx=20, side='left')
btnQuit = tk.Button(self.root, text='關閉窗口', command=self.root.quit, width=15, height=3)
btnQuit.pack(padx=20, side='right')
def event(self):
self.btnSer['state'] = 'disabled'
if self.stat:
if self.stoFunc():
self.btnSer['text'] = '啟動服務'
self.stat = False
self.root.iconbitmap(self.stoIco)
else:
if self.staFunc():
self.btnSer['text'] = '停止服務'
self.stat = True
self.root.iconbitmap(self.staIco)
self.btnSer['state'] = 'active'
def loop(self):
self.root.resizable(False, False) #禁止修改窗口大小
self.packBtn()
self.center() #窗口居中
self.event()
self.root.mainloop()
『玖』 uigetfile
matlab編程中有時想調入電腦中的某個文件,這時不妨用windows傳統的文件打開對話框試一試:
[filename, pathname] = uigetfile( ...
{'*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','All Files' },...
'請選擇要修改的圖片(可多選)', ...
'MultiSelect', 'on');
此函數的用法為
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,DefaultName)
FileName:返回的文件名
PathName:返回的文件的路徑名
FilterIndex:選擇的文件類型
FilterSpec:文件類型設置
DialogTitle:打開對話框的標題
DefaultName:默認指向的文件名
例子:(接來自matlab的幫助)
1.最簡單的形式,只設置了一種可選擇的文件類型
[FileName,PathName] = uigetfile('*.m','Select the M-file');
2.設置多種文件類型
[filename, pathname] = ...
uigetfile({'*.m';'*.mdl';'*.mat';'*.*'},'File Selector');
3.可以為文件類型設置說明,注意書寫格式
[filename, pathname] = uigetfile( ...
{'*.m;*.fig;*.mat;*.mdl','MATLAB Files (*.m,*.fig,*.mat,*.mdl)';
'*.m', 'M-files (*.m)'; ...
'*.fig','Figures (*.fig)'; ...
'*.mat','MAT-files (*.mat)'; ...
'*.mdl','Models (*.mdl)'; ...
'*.*', 'All Files (*.*)'}, ...
'Pick a file');
4.可返回選擇的文件類型序號,並且可以設置文件多選,設置文件多選時注意,當只選了一個文件時,返回的filename為字元串,選擇多個文件時,返回的元胞類型。
[filename, pathname, filterindex] = uigetfile( ...
{ '*.mat','MAT-files (*.mat)'; ...
'*.mdl','Models (*.mdl)'; ...
'*.*', 'All Files (*.*)'}, ...
'Pick a file', ...
'MultiSelect', 'on');
5.可以設置默認文件名
uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','All Files' },'mytitle',...
'C:\Work\myfile.jpg')
更多文件對話框,可參考matlab幫助。
一點小技巧:當返回了一個文件的時候,可以用fullfile將路徑和文件名組合起來,如
[filename, pathname] = uigetfile('*.m', 'Pick an M-file');
if isequal(filename,0)
disp('User selected Cancel')
else
disp(['User selected', fullfile(pathname, filename)])
end
fullfile的用法如下
f = fullfile('C:', 'Applications', 'matlab', 'myfun.m')
f = C:\Applications\matlab\myfun.m
上傳一個自己編的小程序,用來實現圖片文件的批量縮放(幫班級上傳圖片,但是圖片太大了,太占空間,若一個一個縮小有太費事,於是就有了這個小程序,呵呵,僅為應用,未考慮異常處理)
%修改圖片的大小
%%
clc
clear all
close all
%%
scale=inputdlg('縮放比(大於1為放大,小於1為縮小)','請輸入縮放比',1,{'0.5'});
%%
[filename, pathname] = uigetfile( ...
{'*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','All Files' },...
'請選擇要修改的圖片(可多選)', ...
'MultiSelect', 'on');
%%
if ~iscell(filename)
filename1{1}=filename;
else
filename1=filename;
end
%%
for i=1:length(filename1)
image=imread(strcat(pathname,filename1{i}));
image_resize=imresize(image,eval_r(scale{1}));
imwrite(image_resize,strcat(pathname,datestr(now, 'mmddHH'),filename1{i}));
end
其中的inputdlg函數實現一個要求用戶輸入信息的對話框,用法如下
answer = inputdlg(prompt,dlg_title,num_lines,defAns,options)
prompt:輸入文本框的標簽
dlg_title:對話框的標題
num_lines:輸入文本框的行數
defAns:默認的文本框內容
options:一些可選的對話框選項
如
prompt={'Enter the matrix size for x^2:',...
'Enter the colormap name:'};
name='Input for Peaks function';
numlines=1;
defaultanswer={'20','hsv'};
options.Resize='on';
options.WindowStyle='normal';
options.Interpreter='tex';
answer=inputdlg(prompt,name,numlines,defaultanswer,options);
返回為字元串,如果想轉化為數字,可以是使用函數eval。
另外input函數也可以實現用戶信息輸入,不過是在命令行中輸入,也很簡單、常用。