PyQt5簡單例程

python2和python3均可以,先安裝PyQT5:html

sudo apt-get install python-pyqt5 python3-pyqt5

安裝PyQT4:python

sudo apt-get install python-qt4 python3-pyqt4

使用mayavi要安裝下面依賴庫:app

sudo apt-get install python3-pyqt5.qtsvg python-pyqt5.qtsvg

Qt界面設計編輯器

       在Qt的界面開發開發中,設計界面能夠使用Qt Creator或者Designer,本質是同樣的,本文中使用Designer。svg

        新建一個Main Window項目,保存爲testPyQt5.ui(參考博客中創建的是Widget項目)函數

       

      在界面上添加一個pushButton,名爲btn,添加一個testEdit,名爲textEdit工具

      

 

      經過上圖中的來爲pushButton添加一個槽函數btn_click(),該圖標就是信號和槽編輯器。ui

     進入信號槽編輯模式後,左鍵按住pushButton而後往外拖到一個地方鬆開,便會出現下圖中的樣子this

   

 上圖中左邊爲名爲btn的pushButton的信號,選中clicked()信號,右邊即爲與該信號綁定的槽函數。spa

  因爲該信號暫時並沒與任何槽函數相鏈接,因此右邊的槽函數框中是空白的。此時就須要本身新建一個槽函數了。點擊編輯,會彈出一個界面中,點擊槽對應的框下面的   ,會生成一個函數,名字修改成btn_click()

        

   而後確認。在返回的界面中,在槽函數那一欄中選擇剛纔自定義的btn_click()函數

    

    確認並保存。而後將testPyQt5.ui文件放到本身的項目目錄下。

 

 

  • Qt的 ui文件轉化爲python文件

 

      PyQt5提供了將ui文件轉化爲python文件的工具--pyuic5,在python安裝目錄下的scripts文件夾下,記得將pyuic5所在的路徑添加到系統環境變量中。

     進入項目目錄下(前一步中已將testPyQt5.ui放到項目目錄下)

      輸入:

pyuic5 testPyQt5.ui -o testPyQt5.py

      便會在當前目錄下生成名爲testPyQt5.py的文件。

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'testPyQt5.ui'
#
# Created by: PyQt5 UI code generator 5.5.1
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(604, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit.setGeometry(QtCore.QRect(190, 140, 181, 91))
        self.textEdit.setObjectName("textEdit")
        self.btn = QtWidgets.QPushButton(self.centralwidget)
        self.btn.setGeometry(QtCore.QRect(190, 90, 99, 27))
        self.btn.setObjectName("btn")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 604, 31))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        self.btn.clicked.connect(MainWindow.btn_click)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.btn.setText(_translate("MainWindow", "PushButton"))

      若是前面自PyCharm中配置了PyQt5,就能夠直接郵件testPyQt5.ui,External Tools->PyUIC,就自動生成了.py文件。

  • 在Python中使用Qt設計生成的界面(testPyQt5.py)
  •  主程序代碼以下:
#encoding: utf-8
# pyuic5 testPyQt5.ui -o testPyQt5.py

from testPyQt5 import Ui_MainWindow  # 導入uitestPyQt5.ui轉換爲uitestPyQt5.py中的類

from PyQt5 import QtWidgets
import sys


class Mywindow(QtWidgets.QMainWindow, Ui_MainWindow):
    # 創建的是Main Window項目,故此處導入的是QMainWindow
    # 參考博客中創建的是Widget項目,所以哪裏導入的是QWidget
    def __init__(self):
        super(Mywindow, self).__init__()
        self.setupUi(self)

    def btn_click(self):  # 定義槽函數btn_click(),也能夠理解爲重載類Ui_MainWindow中的槽函數btn_click()
        self.textEdit.setText("hi,PyQt5~")


app = QtWidgets.QApplication(sys.argv)
window = Mywindow()
window.show()
sys.exit(app.exec_())

 效果以下圖:

 

 

版權聲明:本文爲博主原創文章,轉載請註明出處。 https://blog.csdn.net/w1019220367/article/details/55106716

PyQt5教程——事件和信號(5)

相關文章
相關標籤/搜索