美文网首页
PyQt5创建GUI界面之一

PyQt5创建GUI界面之一

作者: ray121 | 来源:发表于2017-02-10 19:01 被阅读0次

    一, 利用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

    相关文章

      网友评论

          本文标题:PyQt5创建GUI界面之一

          本文链接:https://www.haomeiwen.com/subject/ondwittx.html