PyQt 人機介面,可能很少人知道這個東西,如果有在這行打轉的人,都會知道這個東西,那麼對初學者告訴一下甚麼是PyQt,PyQt呢 其實就很像 VB 程式語言,他有很多部件,可以來完成你想要完成的事情。
例如:
以上所有的功能都是以圖像化呈現,很好理解,只是在程式碼中,會稍微複雜,因為產生的元件會變成一個個的 def 而你需要呼叫一個新的程式來控制他,因為本身 PyQt 沒辦法程式控制,他需要程式控制要利用呼叫的方式才可以。
舉例:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 738)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.Btn1 = QtWidgets.QPushButton(self.centralwidget)
self.Btn1.setGeometry(QtCore.QRect(50, 230, 93, 28))
self.Btn1.setObjectName("Btn1")
self.TB = QtWidgets.QTableWidget(self.centralwidget)
self.TB.setGeometry(QtCore.QRect(50, 270, 701, 411))
self.TB.setObjectName("TB")
self.TB.setColumnCount(0)
self.TB.setRowCount(0)
self.date_label = QtWidgets.QLabel(self.centralwidget)
self.date_label.setGeometry(QtCore.QRect(350, 0, 171, 51))
font = QtGui.QFont()
font.setFamily("Agency FB")
font.setPointSize(20)
self.date_label.setFont(font)
self.date_label.setObjectName("date_label")
self.Date_edit = QtWidgets.QCalendarWidget(self.centralwidget)
self.Date_edit.setGeometry(QtCore.QRect(50, 0, 296, 229))
self.Date_edit.setObjectName("Date_edit")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 25))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.Btn1.setText(_translate("MainWindow", "接收資料"))
self.date_label.setText(_translate("MainWindow", "TextLabel"))
上方這個是我的其中一個 PyQt 生成的 python 程式碼,可以看見這個程式都只有控制,沒有輸出,所以我們需要創建一個程式碼來進行呼叫,而且要達到父繼承的的效果。
import sys
import re
from functools import partial
from PyQt5.QtWidgets import *
from PyQt5.Qt import QWidget
from PyQt5 import QtGui,QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtSql import QSqlDatabase , QSqlQueryModel , QSqlQuery
from PyQt5.QtGui import *
from Btn_TEST import *
import MySQLdb
class MyMainWindow(QMainWindow,Ui_MainWindow):
def __init__(self,parent = None):
super(MyMainWindow,self).__init__(parent)
self.setupUi(self)
上面這是我寫的呼叫程式,你在呼叫他之前,你還需要先呼叫 PyQt 的相關程式碼,讓他匯入之後比較好日後使用,接著你看 Class 寫法,他裏頭要寫繼承的效果,原因是你這個呼叫的程式之後是要覆蓋他的做法的,介面的程式碼只是呈現用,但真正可以用的程式碼是你這個呼叫的比較有用,所以你要將它可以用的功能,都辦到你身上來,這就是父繼承的效果,後一篇我會先介紹一下父繼承的概念,讓他家比較清楚。
那麼今天就先跟大家看看PyQt程式的樣貌,下一篇我先插入一個父繼承做介紹。
那麼先謝謝大家觀看,我們下篇見。
PyQt 好用,但也難呼叫,慢慢了解,不難,只要有心。