python可视化界面编程 pycharm_pycharm开发一个简单界面和通用mvc模板(操作方法图解)...
文章首先使用pycharm的 PyQt5 Designer 做一個簡單的界面,然后引入所謂的“mvc框架”。
一、設計登錄界面
下面開始第一個話題,使用pycharm的 PyQt5 Designer 做一個簡單的界面。
上一篇最后,在pycharm中配置了PyQt5 Designer 和 uic,接下來,使用這些工具,開發一個界面。
1、首先打開 Designer1) 在左側任意位置(下圖桔色框內)點擊右鍵,彈出菜單,在External Tools 選中 PyQt5 Designer
2) 打開 Designer
3) 選擇Main Windows ,點擊創建
4)新窗口
5)修改窗口標題
6)保存到項目的main目錄下,名稱為 Main.ui
7) 轉換圖形文件為源代碼
右鍵選中 Main.ui ,彈出菜單,選中 External Tools --> uic
生成源代碼 Ui_Main.py
底部提示:Process finished with exit code 0 , 其中 0 表示成功。
如果是 -1 表示執行失敗。
8)查看源代碼
Designer圖形工具設計后生成的源代碼,圖像定義的核心代碼是 setupUi()方法。
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\projects\pycharm\p377test\main\Main.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# 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(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
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", "登錄"))
9)總結
前面,用 PyQt5 Designer 設計了一個界面,保存為 ui 文件;
通過 uic 將 ui 文件轉換成 py 代碼。
這個py代碼還不能執行,因為這些代碼只是創建了界面的組件。
需要編寫控制代碼,才能顯示界面。
二、通用mvc框架
引入mvc框架的可以解決圖形界面代碼覆蓋的問題,實現界面和控制邏輯分離。
界面生成后,如果把控制邏輯也寫進界面代碼,下一次修改保存界面就會把控制邏輯代碼覆蓋。
因此,防止代碼覆蓋的角度,需要將控制邏輯和界面代碼分離,這樣無論如何怎樣修改界面代碼,也不影響控制邏輯的代碼。
第二點,從設計模式為出發點,考慮客戶端應用以及組件的控制方式,mvc模式是最佳的實踐。通過將代碼按照界面(View)、數據模型(Model)和控制邏輯(Control)進行劃分,每一個部分關注應用的不同功能,代碼分工清晰,責任明確。
1)新建控制代碼
右鍵點擊 main 目錄,彈出菜單,選擇 New -> Python File
2)通用模板
在Main.py中,增加如下內容:
# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets
import sys
from Ui_Main import Ui_MainWindow
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
# ---------------------------------------------------------------------------------
#
# 初始化
#
# ---------------------------------------------------------------------------------
def __init__(self):
super(MainWindow, self).__init__()
self.setupUi(self)
if __name__ == '__main__': # 判斷本文件是否是啟動入口,__main__是系統賦給啟動模塊的變量值;
app = QtWidgets.QApplication(sys.argv) # 如果是啟動文件,則創建 Application 實例 app
window = MainWindow() # 創建 MainWindow 的實例 window
window.show() # 顯示窗口
sys.exit(app.exec_()) # 捕獲 app 退出狀態
這是一個通用的、最簡單的模板。
通過 from Ui_Main import Ui_MainWindow導入圖形界面的定義類。
通過繼承的方式使用界面類,class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow),并在初始化方法中,調用圖形定義代碼 setupUi()
3) 設置源代碼根目錄
右鍵點擊 main 目錄,選擇 Make Directory as --> Sources Root
4) 運行
上面第3)、4)步圖中的 main.py 應為 Main.py。
總結
到此這篇關于pycharm開發一個簡單界面和通用mvc模板(操作方法圖解)的文章就介紹到這了,更多相關pycharm開發界面和通用mvc模板內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
總結
以上是生活随笔為你收集整理的python可视化界面编程 pycharm_pycharm开发一个简单界面和通用mvc模板(操作方法图解)...的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 关于逐项作用函数的用法
 - 下一篇: 深入浅出mysql第二,mysql-深入