PyQt5创建GUI界面之一

2017-02-10  本文已影响0人  ray121

一, 利用designer设计的GUI

1.1 使用designer设计一个简单的GUI界面,含有一个'Quit'按钮


1.png

1.2 把MyFirstGui.ui文件转成MyFirstGui.py文件并修改MyFirstGui.py文件


2.png
1.3 创建文件调用MyFirstGui.py
from PyQt5 import QtWidgets
from MyFirstGui import Ui_MainWindow

class myWindow(QtWidgets.QWidget, Ui_MainWindow):
    def __init__(self):
        super(myWindow, self).__init__()
        self.new = Ui_MainWindow()
        self.new.setupUi(self)

if __name__=="__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    myshow = myWindow()
    myshow.show()
    sys.exit(app.exec_())
3.png

二, 创建点击事件

2.1 修改文件调用MyFirstGui.py

from PyQt5 import QtWidgets
from MyFirstGui import Ui_MainWindow

class myWindow(QtWidgets.QWidget, Ui_MainWindow):
    def __init__(self):
        super(myWindow, self).__init__()
        self.new = Ui_MainWindow()
        self.new.setupUi(self)
        #将事件处理器与事件相连接
        self.new.pushButton.clicked.connect(self.button_clicked)

    #定义事件处理器
    def button_clicked(self):
        x = self.new.pushButton.x()
        y = self.new.pushButton.y()
        x += 50
        y += 50
        #点击时,移动按钮
        self.new.pushButton.move(x,y)

if __name__=="__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    myshow = myWindow()
    myshow.show()
    sys.exit(app.exec_())
2.1.png

三, 创建一个温度转换窗口

3.1 利用designer设计界面TempGui.ui


3.1.png

3.2 把TempGui.ui文件转成TempGui.py文件


3.2.png
3.3 创建文件调用TempGui.py
from PyQt5 import QtWidgets
from TempGui import Ui_MainWindow

class myWindow(QtWidgets.QWidget, Ui_MainWindow):
    def __init__(self):
        super(myWindow, self).__init__()
        self.new = Ui_MainWindow()
        self.new.setupUi(self)
        #将事件处理器与事件相连接
        self.new.btnCtoF.clicked.connect(self.btnCtoF_Clicked)
        self.new.btnFtoC.clicked.connect(self.btnFtoC_Clicked)

    #定义CtoF时间处理器
    def btnCtoF_Clicked(self):
        cel = float(self.new.editCel.text())
        fahr = cel * 9.0 / 5 + 32
        self.new.spinFahr.setValue(int(fahr + 0.5))

    #定义CtoF时间处理器
    def btnFtoC_Clicked(self):
        fahr = self.new.spinFahr.value()
        cel = (fahr - 32) * 5 / 9.0
        cel_text = '%.2f'%cel
        self.new.editCel.setText(str(cel_text))


if __name__=="__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    myshow = myWindow()
    myshow.show()
    sys.exit(app.exec_())
3.5.png

四, 创建带菜单窗口

4.1 利用designer添加菜单并生成.py文件

4.1.png
4.2 修改文件调用MyFirstGui.py
init方法中,将事件处理器与事件相连
        self.new.actionC_to_F.triggered.connect(self.btnCtoF_Clicked)
        self.new.actionF_to_C.triggered.connect(self.btnFtoC_Clicked)
        self.new.actionExit.triggered.connect(self.menuExit_selected)

添加定义exit处理事件

    def menuExit_selected(self):
        self.close()
4.2.png

五, 创建热键

5.1 利用designer定义热键(代码不需要修改)
通过Object Inspector选中后修改:
把menuFile进行修改title=File为title=&File
把menuConvert修改title=Convert为title=&Convert;
把actionExit的Text=Exit修改为Text=&Text;
把actionC_to_F的Text=C_to_F修改为Text=&C_to_F;
把actionF_to_C的Text=F_to_C修改为Text=&F_to_C;


5.1.png

5.2 运行效果


5.2.png
上一篇下一篇

猜你喜欢

热点阅读