欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pycharm開發(fā)一個簡單界面和通用mvc模板(操作方法圖解)

 更新時間:2020年05月27日 11:20:04   作者:teamlet  
這篇文章主要介紹了pycharm開發(fā)最簡單的界面和通用mvc模板的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

文章首先使用pycharm的 PyQt5 Designer 做一個簡單的界面,然后引入所謂的“mvc框架”。

一、設(shè)計登錄界面

下面開始第一個話題,使用pycharm的 PyQt5 Designer 做一個簡單的界面。

上一篇最后,在pycharm中配置了PyQt5 Designer 和 uic,接下來,使用這些工具,開發(fā)一個界面。

1、首先打開 Designer1) 在左側(cè)任意位置(下圖桔色框內(nèi))點擊右鍵,彈出菜單,在External Tools 選中 PyQt5 Designer

在這里插入圖片描述

2) 打開 Designer

在這里插入圖片描述

3) 選擇Main Windows ,點擊創(chuàng)建

在這里插入圖片描述

4)新窗口

在這里插入圖片描述

5)修改窗口標(biāo)題

在這里插入圖片描述

6)保存到項目的main目錄下,名稱為 Main.ui

在這里插入圖片描述
在這里插入圖片描述

7) 轉(zhuǎn)換圖形文件為源代碼

右鍵選中 Main.ui ,彈出菜單,選中 External Tools --> uic

在這里插入圖片描述

生成源代碼 Ui_Main.py
底部提示:Process finished with exit code 0 , 其中 0 表示成功。
如果是 -1 表示執(zhí)行失敗。

在這里插入圖片描述

8)查看源代碼

Designer圖形工具設(shè)計后生成的源代碼,圖像定義的核心代碼是 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)總結(jié)

前面,用 PyQt5 Designer 設(shè)計了一個界面,保存為 ui 文件;
通過 uic 將 ui 文件轉(zhuǎn)換成 py 代碼。

這個py代碼還不能執(zhí)行,因為這些代碼只是創(chuàng)建了界面的組件。

需要編寫控制代碼,才能顯示界面。

二、通用mvc框架

引入mvc框架的可以解決圖形界面代碼覆蓋的問題,實現(xiàn)界面和控制邏輯分離。

界面生成后,如果把控制邏輯也寫進(jìn)界面代碼,下一次修改保存界面就會把控制邏輯代碼覆蓋。

因此,防止代碼覆蓋的角度,需要將控制邏輯和界面代碼分離,這樣無論如何怎樣修改界面代碼,也不影響控制邏輯的代碼。

第二點,從設(shè)計模式為出發(fā)點,考慮客戶端應(yīng)用以及組件的控制方式,mvc模式是最佳的實踐。通過將代碼按照界面(View)、數(shù)據(jù)模型(Model)和控制邏輯(Control)進(jìn)行劃分,每一個部分關(guān)注應(yīng)用的不同功能,代碼分工清晰,責(zé)任明確。

1)新建控制代碼

右鍵點擊 main 目錄,彈出菜單,選擇 New -> Python File

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

2)通用模板

在Main.py中,增加如下內(nèi)容:

# -*- 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__是系統(tǒng)賦給啟動模塊的變量值;
 app = QtWidgets.QApplication(sys.argv) # 如果是啟動文件,則創(chuàng)建 Application 實例 app
 window = MainWindow()     # 創(chuàng)建 MainWindow 的實例 window
 window.show()       # 顯示窗口
 sys.exit(app.exec_())     # 捕獲 app 退出狀態(tài)

這是一個通用的、最簡單的模板。
通過 from Ui_Main import Ui_MainWindow導(dǎo)入圖形界面的定義類。
通過繼承的方式使用界面類,class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow),并在初始化方法中,調(diào)用圖形定義代碼 setupUi()

3) 設(shè)置源代碼根目錄

右鍵點擊 main 目錄,選擇 Make Directory as --> Sources Root
在這里插入圖片描述

4) 運行

在這里插入圖片描述
在這里插入圖片描述
上面第3)、4)步圖中的 main.py 應(yīng)為 Main.py。

總結(jié)

到此這篇關(guān)于pycharm開發(fā)一個簡單界面和通用mvc模板(操作方法圖解)的文章就介紹到這了,更多相關(guān)pycharm開發(fā)界面和通用mvc模板內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 生成器和迭代器的原理解析

    python 生成器和迭代器的原理解析

    這篇文章主要介紹了python 生成器和迭代器的原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Django安裝配置mysql的方法步驟

    Django安裝配置mysql的方法步驟

    這篇文章主要介紹了Django安裝配置mysql的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • python自動化測試之Selenium詳解

    python自動化測試之Selenium詳解

    這篇文章主要為大家詳細(xì)介紹了python自動化測試之Selenium,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 在k8s上部署pytorch分布式程序的完整步驟記錄

    在k8s上部署pytorch分布式程序的完整步驟記錄

    Kubernetes的核心優(yōu)勢在于其能夠提供一個可擴(kuò)展、靈活且高度可配置的平臺,使得應(yīng)用程序的部署、擴(kuò)展和管理變得前所未有的簡單下面這篇文章主要給大家介紹了關(guān)于在k8s上部署pytorch分布式程序的完整步驟,需要的朋友可以參考下
    2024-08-08
  • Python個人博客程序開發(fā)實例后臺編寫

    Python個人博客程序開發(fā)實例后臺編寫

    這篇文章主要介紹了怎樣用Python來實現(xiàn)一個完整的個人博客系統(tǒng),我們通過實操上手的方式可以高效的鞏固所學(xué)的基礎(chǔ)知識,感興趣的朋友一起來看看吧
    2022-12-12
  • python中os.path.join()函數(shù)實例用法

    python中os.path.join()函數(shù)實例用法

    在本篇文章里小編給大家整理的是一篇關(guān)于python中os.path.join()函數(shù)實例用法,有興趣的朋友們可以跟著學(xué)習(xí)參考下。
    2021-05-05
  • Django中使用haystack+whoosh實現(xiàn)搜索功能

    Django中使用haystack+whoosh實現(xiàn)搜索功能

    這篇文章主要介紹了Django之使用haystack+whoosh實現(xiàn)搜索功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • 遍歷python字典幾種方法總結(jié)(推薦)

    遍歷python字典幾種方法總結(jié)(推薦)

    下面小編就為大家?guī)硪黄闅vpython字典幾種方法總結(jié)(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • pandas時間序列之如何將int轉(zhuǎn)換成datetime格式

    pandas時間序列之如何將int轉(zhuǎn)換成datetime格式

    這篇文章主要介紹了pandas時間序列之如何將int轉(zhuǎn)換成datetime格式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Django使用模板后無法找到靜態(tài)資源文件問題解決

    Django使用模板后無法找到靜態(tài)資源文件問題解決

    這篇文章主要介紹了Django使用模板后無法找到靜態(tài)資源文件問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07

最新評論