天天看點

pythonocc入門指導:3.建立屬于自己的主界面及對話框及安裝qtdesigner

總目錄 >> PythonOCC入門進階到實戰(目前已更新入門篇、基礎篇和進階篇)

上一篇:運作一個執行個體

在實際的項目中,我們想要實作良好的與使用者的互動,圖形界面是我們不能忽視的部分。接下來的内容,我們會講到

1. 安裝圖形界面設計工具——QTdesigner

2.主界面添加菜單欄

3.彈出自定義對話框

一、安裝QTdesigner

我們安裝的pythonocc虛拟環境已經包含了pyqt的相關檔案,但是缺少了qtdesigner

qtdesigner也就是可視化的圖形界面設計器,可以讓你通過簡單的拖拉拽實作圖形界面的設計(如:主界面,對話框等),具體安裝步驟如下:

1.下載下傳一個pyqt5-tool.whl檔案:

連結:https://pan.baidu.com/s/1V-xdaFbR1R_3xswbQvyfTA

提取碼:5t3z

将此檔案放在anaconda prompt 預設進入的檔案夾(比如我的是 C:\Users\Administrator)

2.激活工具

然後程式代碼(在 anaconda prompt中輸入):

activate pythonocc #激活pythonocc環境
           
pip install  PyQt5_Tools-5.7.dev1-py3-none-any.whl 在此環境中安裝此包
           
pythonocc入門指導:3.建立屬于自己的主界面及對話框及安裝qtdesigner

然後在(我的是在這裡)

D:\ProgramData\Anaconda3\envs\pythonocc\Lib\site-packages\PyQt5-tools\designer

找到qtdesigner

pythonocc入門指導:3.建立屬于自己的主界面及對話框及安裝qtdesigner

3.在pycharm中添加該工具

打開pycharm,進入externa tool 建立一個新的項目,按照圖檔中的内容命名即可:

在program選項中找到designer.exe(我的是在

D:\ProgramData\Anaconda3\envs\pythonocc\Lib\site-packages\PyQt5-tools\designer\designer.exe

在working directory 輸入:

$FileDir$

然後ok–>apply後,試着運作一下

pythonocc入門指導:3.建立屬于自己的主界面及對話框及安裝qtdesigner

在左側區域右鍵,打開qtdesigner

pythonocc入門指導:3.建立屬于自己的主界面及對話框及安裝qtdesigner

出現如下界面則為成功:

pythonocc入門指導:3.建立屬于自己的主界面及對話框及安裝qtdesigner

二、主界面添加菜單欄

代碼如下:(同時你可以在這裡獲得代碼檔案:https://download.csdn.net/download/weixin_42755384/10838771)

#首頁添加菜單欄,并在子菜單中可以打開檔案選擇對話框
from OCC.Display.SimpleGui import init_display
from OCC.gp import gp_Pnt
from PyQt5.QtWidgets import QFileDialog

if __name__ == '__main__':
    display, start_display, add_menu, add_function_to_menu = init_display()
    P0=gp_Pnt(0,0,1)
    P1 =gp_Pnt(0, 30, 20)

    menu_name = '打開'
    menu_name2 = '繪制模型'
    add_menu(menu_name)
    add_menu(menu_name2)
    add_function_to_menu(menu_name, QFileDialog.getOpenFileName)
    start_display()
           

效果圖如下:

pythonocc入門指導:3.建立屬于自己的主界面及對話框及安裝qtdesigner

三、彈出自定義對話框

(以下程式檔案可在該處下載下傳:(有兩個檔案)https://download.csdn.net/download/weixin_42755384/10838823)

1.使用pyqtdesigner 設計一個對話框

如(一)中所介紹,從external tool中打開qtdesigner,選擇dialog with button

pythonocc入門指導:3.建立屬于自己的主界面及對話框及安裝qtdesigner

随便設計一個頁面

pythonocc入門指導:3.建立屬于自己的主界面及對話框及安裝qtdesigner

設計好後,使用pyuic(此處不詳述,可以自行百度)将ui界面轉成py程式

mydialog.py

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

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

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
        self.buttonBox.setGeometry(QtCore.QRect(30, 240, 341, 32))
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
        self.buttonBox.setObjectName("buttonBox")
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(180, 110, 93, 28))
        self.pushButton.setObjectName("pushButton")

        self.retranslateUi(Dialog)
        self.buttonBox.accepted.connect(Dialog.accept)
        self.buttonBox.rejected.connect(Dialog.reject)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

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

2.主函數(并在主函數中調用自定義對話框)

test2.py

(實作點選一個點彈出自定義對話框)

import sys
from OCC.Display.SimpleGui import init_display
from OCC.gp import gp_Pnt
from mydialog import* #調用自定義對話框


def mydialog(shp,*argus):
    for point in shp:
        myDialog = QtWidgets.QDialog()
        ui = Ui_Dialog()
        ui.setupUi(myDialog)  # setupUi()是由.ui檔案生成的類的構造函數(初始化界面)
        myDialog.show()
        sys.exit(myDialog.exec_())  # 如果沒有這個函數,則對話框閃退


if __name__ == '__main__':
    display, start_display, add_menu, add_function_to_menu = init_display()
    P0=gp_Pnt(0,0,1)
    P1 =gp_Pnt(0, 30, 20)
    menu_name = '打開'
    menu_name2 = '繪制模型'
    add_menu(menu_name)
    add_menu(menu_name2)
    display.DisplayShape(P0)
    display.SetSelectionModeVertex()  # 啟動點的選中功能
    display.register_select_callback(mydialog)   #點選執行對話框
    start_display()
           

結果如圖所示:

pythonocc入門指導:3.建立屬于自己的主界面及對話框及安裝qtdesigner