PyQt的使用:
Qtdesigner的使用:
Qt的UI设计和Android的UI设计一般是一样的,可以用两种方法,一种所见即所得,另一种就是纯代码。所见即所得的方式设计简单的界面跟容易一些,
纯代码的话,可以设计出来非常精美的设计。
由于我用来是完成大作业,只要能够完成基本的功能就可以了,不用设计太复杂的界面。
Qtdesigner设计出来的UI界面需要命令才能转成python代码,
我的Qtdesigner是pyqt5,所以用的就是pyuic5
pyuic5 xxx.ui -o xxx.py
这样就生成了python代码,你以为这样就能就能显示界面了,那可不是!还记得python是面向对象的吗?也就是有了类还得需要新建一个对象出来。
常见的做法是在另一个文件里,把刚才生成的代码当做一个包import进来。
from PyQt5 import QtWidgets ,QtGui
from xianshi import Ui_MainWindow
from PyQt5.QtWidgets import QFileDialog
from PIL import Image
class MyWindow(QtWidgets.QMainWindow,Ui_MainWindow):
def __init__(self):
super(MyWindow,self).__init__()
self.setupUi(self)
self.image=None
def openimage(self):
# 打开文件路径
#设置文件扩展名过滤,注意用双分号间隔
imgName,imgType= QFileDialog.getOpenFileName(self,
"打开图片",
"",
" *.jpg;;*.png;;*.jpeg;;*.bmp;;All Files (*)")
print(imgName)
im=Image.open(imgName)
self.image=imgName
print(im.size)
scene=QtWidgets.QGraphicsScene(self)
pixmap=QtGui.QPixmap(imgName)
#.scaled(im.size[1], im.size[1])
item=QtWidgets.QGraphicsPixmapItem(pixmap)
scene.addItem(item)
#png = QtGui.QPixmap(imgName).scaled(im.size[1], im.size[1])
#self.graphicsView.scale(im.size[1], im.size[1])
self.graphicsView.setScene(scene)
#利用graphicsView显示图片
def processing(self):
print(self.image)
scene=QtWidgets.QGraphicsScene(self)
pixmap=QtGui.QPixmap(self.image)
#.scaled(im.size[1], im.size[1])
item=QtWidgets.QGraphicsPixmapItem(pixmap)
scene.addItem(item)
#png = QtGui.QPixmap(imgName).scaled(im.size[1], im.size[1])
#self.graphicsView.scale(im.size[1], im.size[1])
self.graphicsView_2.setScene(scene)
#利用graphicsView显示图片
if __name__=="__main__":
import sys
app=QtWidgets.QApplication(sys.argv)
myshow=MyWindow()
myshow.show()
sys.exit(app.exec_())