**pyqt 引入 qt designer 设计ui的方式

1. 继承的方式
from PyQt5.QtWidgets import QApplication, QWidget
import sys
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Form(object):
    def setupUi(self, Form):		# Form 设置这些控件需要在什么上显示,方便组合
        Form.setObjectName("Form")
        Form.resize(335, 100)
        self.label = QtWidgets.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(60, 40, 54, 12))
        self.label.setObjectName("label")
        self.lineEdit = QtWidgets.QLineEdit(Form)
        self.lineEdit.setGeometry(QtCore.QRect(170, 40, 113, 20))
        self.lineEdit.setObjectName("lineEdit")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.label.setText(_translate("Form", "输入"))


class Window(QWidget, Ui_Form):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)		# self 传入 QWidget 控件对象,让 Ui_Form 中的对象在上面显示


app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
2. 使用组合的方式
from PyQt5.QtWidgets import QApplication, QWidget
import sys
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(335, 100)
        self.label = QtWidgets.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(60, 40, 54, 12))
        self.label.setObjectName("label")
        self.lineEdit = QtWidgets.QLineEdit(Form)
        self.lineEdit.setGeometry(QtCore.QRect(170, 40, 113, 20))
        self.lineEdit.setObjectName("lineEdit")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.label.setText(_translate("Form", "输入"))

class Window(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.ui = Ui_Form()
        self.ui.setupUi(self)

app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
3. 使用ui文件
from PyQt5.QtWidgets import QApplication, QWidget
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.uic import loadUi

class Window(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        loadUi('testWin.ui', self)

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

testWin.ui


<ui version="4.0">
 <class>Formclass>
 <widget class="QWidget" name="Form">
  <property name="geometry">
   <rect>
    <x>0x>
    <y>0y>
    <width>335width>
    <height>100height>
   rect>
  property>
  <property name="windowTitle">
   <string>Formstring>
  property>
  <widget class="QLabel" name="label">
   <property name="geometry">
    <rect>
     <x>60x>
     <y>40y>
     <width>54width>
     <height>12height>
    rect>
   property>
   <property name="text">
    <string>输入string>
   property>
  widget>
  <widget class="QLineEdit" name="lineEdit">
   <property name="geometry">
    <rect>
     <x>170x>
     <y>40y>
     <width>113width>
     <height>20height>
    rect>
   property>
  widget>
 widget>
 <resources/>
 <connections/>
ui>

控件中 parent 的作用,可以用于指定在那个控件上显示

import sys
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5 import QtWidgets


class Case_Win(QWidget):
    def __init__(self):
        super().__init__(parent=None)
        self.widget = Win2Qline(self)


class Win2Qline:						# 普通python 类
    def __init__(self, form):			# 传入 form
        formLayout = QtWidgets.QFormLayout(form)	# 初始化传入 parent,即可指定该控件在那里显示

        qlabel = QtWidgets.QLabel()
        qlabel.setText("条形码")
        self.barcode_id = QtWidgets.QLineEdit()
        formLayout.addRow(qlabel, self.barcode_id)

        qlabel = QtWidgets.QLabel()
        qlabel.setText("本地通信模块")
        self.local_id = QtWidgets.QLineEdit()
        formLayout.addRow(qlabel, self.local_id)

        self.first_edit = self.barcode_id
        self.last_edit = self.local_id


if __name__ == '__main__':
    app = QApplication(sys.argv)
    case_win = Case_Win()
    case_win.show()
    sys.exit(app.exec())

你可能感兴趣的:(pyqt,qt,pyqt)