我有一个工具栏小部件,我希望它包含在所有数据表单中 由于QTDesigner不允许在designer中使用自定义小部件,所以我想在代码中添加它 上述数据表单将添加到主表单的MDI区域中 努力理解PyQT的工作原理
data_toolbar.py的代码如下
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_FormToolBar(object):
def __init__(self, toolbar_type, button_type):
super().__init__()
self.toolbar_type = toolbar_type
self.toolbar_type = self.toolbar_type.lower()
self.button_type = button_type
self.button_type = self.button_type.lower()
self.next_left = 0
if (self.button_type == "" or self.button_type == "n"):
self.buttonheight = 41
self.buttonwidht = 60
if (self.button_type == "i"):
self.buttonheight = 29
self.buttonwidht = 30
def setupUi(self, FormToolBar):
_translate = QtCore.QCoreApplication.translate
try:
FormToolBar.setObjectName("FormToolBar")
except Exception as e:
print(e)
FormToolBar.resize(730, 55)
self.frame = QtWidgets.QFrame(FormToolBar)
self.frame.setGeometry(QtCore.QRect(0, 0, 721, 51))
self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame.setObjectName("frame")
FormToolBar.setWindowTitle(_translate("FormToolBar", "Form"))
self.nextleft = 0
if (
self.toolbar_type == 'data' or self.toolbar_type == 'data_print' or self.toolbar_type == 'data_nav' or self.toolbar_type == 'data_nav_print'):
self.btn_New = QtWidgets.QToolButton(self.frame)
self.btn_New.setGeometry(QtCore.QRect(self.nextleft, 0, self.buttonwidht, self.buttonheight))
icon3 = QtGui.QIcon()
icon3.addPixmap(QtGui.QPixmap("D:/tools9/NEW.BMP"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_New.setIcon(icon3)
if (self.button_type != "i"):
self.btn_New.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.btn_New.setObjectName("btn_New")
self.btn_New.setText(_translate("FormToolBar", "New"))
self.nextleft = self.nextleft + self.buttonwidht
self.btn_Find = QtWidgets.QToolButton(self.frame)
self.btn_Find.setGeometry(QtCore.QRect(self.nextleft, 0, self.buttonwidht, self.buttonheight))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("D:/tools9/find.bmp"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_Find.setIcon(icon)
if (self.button_type != "i"):
self.btn_Find.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.btn_Find.setObjectName("btn_Find")
self.btn_Find.setText(_translate("FormToolBar", "Find"))
self.nextleft = self.nextleft + self.buttonwidht + 2
if (self.toolbar_type == 'data' or self.toolbar_type == 'data_print') != True:
self.btn_First = QtWidgets.QToolButton(self.frame)
self.btn_First.setGeometry(QtCore.QRect(self.nextleft, 0, self.buttonwidht, self.buttonheight))
icon4 = QtGui.QIcon()
icon4.addPixmap(QtGui.QPixmap("D:/tools9/Ffc/Graphics/TOP.BMP"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_First.setIcon(icon4)
if (self.button_type != "i"):
self.btn_First.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.btn_First.setObjectName("btn_First")
self.btn_First.setText(_translate("FormToolBar", "First"))
self.nextleft = self.nextleft + self.buttonwidht
self.btn_Prev = QtWidgets.QToolButton(self.frame)
self.btn_Prev.setGeometry(QtCore.QRect(self.nextleft, 0, self.buttonwidht, self.buttonheight))
icon7 = QtGui.QIcon()
icon7.addPixmap(QtGui.QPixmap("D:/tools9/Ffc/Graphics/PREVIOUS.BMP"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_Prev.setIcon(icon7)
if (self.button_type != "i"):
self.btn_Prev.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.btn_Prev.setObjectName("btn_Prev")
self.btn_Prev.setText(_translate("FormToolBar", "Previous"))
self.nextleft = self.nextleft + self.buttonwidht
self.btn_Next = QtWidgets.QToolButton(self.frame)
self.btn_Next.setGeometry(QtCore.QRect(self.nextleft, 0, self.buttonwidht, self.buttonheight))
icon5 = QtGui.QIcon()
icon5.addPixmap(QtGui.QPixmap("D:/tools9/Ffc/Graphics/next.bmp"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_Next.setIcon(icon5)
if (self.button_type != "i"):
self.btn_Next.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.btn_Next.setObjectName("btn_Next")
self.btn_Next.setText(_translate("FormToolBar", "Next"))
self.nextleft = self.nextleft + self.buttonwidht
self.btn_Last = QtWidgets.QToolButton(self.frame)
self.btn_Last.setGeometry(QtCore.QRect(self.nextleft, 0, self.buttonwidht, self.buttonheight))
icon10 = QtGui.QIcon()
icon10.addPixmap(QtGui.QPixmap("D:/tools9/Ffc/Graphics/BOTTOM.BMP"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_Last.setIcon(icon10)
if (self.button_type != "i"):
self.btn_Last.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.btn_Last.setText(_translate("FormToolBar", "Last"))
self.btn_Last.setObjectName("btn_Last")
self.nextleft = self.nextleft + self.buttonwidht + 2
if (
self.toolbar_type == 'data' or self.toolbar_type == 'data_print' or self.toolbar_type == 'data_nav' or self.toolbar_type == 'data_nav_print'):
self.btn_Modify = QtWidgets.QToolButton(self.frame)
self.btn_Modify.setGeometry(QtCore.QRect(self.nextleft, 0, self.buttonwidht, self.buttonheight))
icon9 = QtGui.QIcon()
icon9.addPixmap(QtGui.QPixmap("D:/tools9/OPEN.BMP"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_Modify.setIcon(icon9)
if (self.button_type != "i"):
self.btn_Modify.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.btn_Modify.setObjectName("btn_Modify")
self.btn_Modify.setText(_translate("FormToolBar", "Modify"))
self.nextleft = self.nextleft + self.buttonwidht
self.btn_Delete = QtWidgets.QToolButton(self.frame)
self.btn_Delete.setGeometry(QtCore.QRect(self.nextleft, 0, self.buttonwidht, self.buttonheight))
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap("D:/tools9/CUT.BMP"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_Delete.setIcon(icon1)
if (self.button_type != "i"):
self.btn_Delete.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.btn_Delete.setObjectName("btn_Delete")
self.btn_Delete.setText(_translate("FormToolBar", "Delete"))
self.nextleft = self.nextleft + self.buttonwidht
self.btn_Save = QtWidgets.QToolButton(self.frame)
self.btn_Save.setGeometry(QtCore.QRect(self.nextleft, 0, self.buttonwidht, self.buttonheight))
icon11 = QtGui.QIcon()
icon11.addPixmap(QtGui.QPixmap("D:/tools9/SAVE.BMP"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_Save.setIcon(icon11)
if (self.button_type != "i"):
self.btn_Save.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.btn_Save.setObjectName("btn_Save")
self.btn_Save.setText(_translate("FormToolBar", "Save"))
self.nextleft = self.nextleft + self.buttonwidht
self.btn_Cancel = QtWidgets.QToolButton(self.frame)
self.btn_Cancel.setGeometry(QtCore.QRect(self.nextleft, 0, self.buttonwidht, self.buttonheight))
icon8 = QtGui.QIcon()
icon8.addPixmap(QtGui.QPixmap("D:/tools9/UNDO.BMP"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_Cancel.setIcon(icon8)
if (self.button_type != "i"):
self.btn_Cancel.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.btn_Cancel.setObjectName("btn_Cancel")
self.btn_Cancel.setText(_translate("FormToolBar", "Cancel"))
self.nextleft = self.nextleft + self.buttonwidht
if (
self.toolbar_type == 'data_print' or self.toolbar_type == 'data_nav_print' or self.toolbar_type == 'nav_print'):
self.btn_Print = QtWidgets.QToolButton(self.frame)
self.btn_Print.setGeometry(QtCore.QRect(self.nextleft, 0, self.buttonwidht, self.buttonheight))
icon6 = QtGui.QIcon()
icon6.addPixmap(QtGui.QPixmap("D:/tools9/PRINT.BMP"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_Print.setIcon(icon6)
if (self.button_type != "i"):
self.btn_Print.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.btn_Print.setObjectName("btn_Print")
self.btn_Print.setText(_translate("FormToolBar", "Print"))
self.nextleft = self.nextleft + self.buttonwidht
self.btn_Exit = QtWidgets.QToolButton(self.frame)
self.btn_Exit.setGeometry(QtCore.QRect(self.nextleft, 0, self.buttonwidht, self.buttonheight))
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap("D:/tools9/CLOSE.BMP"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_Exit.setIcon(icon2)
if (self.button_type != "i"):
self.btn_Exit.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.btn_Exit.setObjectName("btn_Exit")
self.btn_Exit.setText(_translate("FormToolBar", "Exit"))
self.nextleft = self.nextleft + self.buttonwidht
QtCore.QMetaObject.connectSlotsByName(FormToolBar)
FormToolBar.setTabOrder(self.btn_New, self.btn_Find)
if (self.toolbar_type == 'data' or self.toolbar_type == 'data_print') != True:
FormToolBar.setTabOrder(self.btn_Find, self.btn_First)
FormToolBar.setTabOrder(self.btn_First, self.btn_Prev)
FormToolBar.setTabOrder(self.btn_Prev, self.btn_Next)
FormToolBar.setTabOrder(self.btn_Next, self.btn_Last)
FormToolBar.setTabOrder(self.btn_Last, self.btn_Modify)
if (self.toolbar_type == 'data' or self.toolbar_type == 'data_print'):
FormToolBar.setTabOrder(self.btn_Find, self.btn_Modify)
FormToolBar.setTabOrder(self.btn_Modify, self.btn_Delete)
FormToolBar.setTabOrder(self.btn_Delete, self.btn_Save)
FormToolBar.setTabOrder(self.btn_Save, self.btn_Cancel)
else:
FormToolBar.setTabOrder(self.btn_Last, self.btn_Modify)
FormToolBar.setTabOrder(self.btn_Modify, self.btn_Delete)
FormToolBar.setTabOrder(self.btn_Delete, self.btn_Save)
FormToolBar.setTabOrder(self.btn_Save, self.btn_Cancel)
if (
self.toolbar_type == 'data_print' or self.toolbar_type == 'data_nav_print' or self.toolbar_type == 'nav_print'):
FormToolBar.setTabOrder(self.btn_Cancel, self.btn_Print)
FormToolBar.setTabOrder(self.btn_Print, self.btn_Exit)
else:
FormToolBar.setTabOrder(self.btn_Cancel, self.btn_Exit)
FormToolBar.resize(self.nextleft + 10, 55)
self.frame.setGeometry(QtCore.QRect(0, 0, self.nextleft + 8, 54))
def reconfig(self, parent):
self.po = parent
parentwidth = parent.frameGeometry().width()
parentheight = parent.frameGeometry().height()
mywidth = self.frame.frameGeometry().width()
myheight = self.frame.frameGeometry().height()
width = ((parentwidth / 2) - (mywidth / 2))
height = parentheight - (myheight + 30)
self.frame.move(width, height)
self.btn_Exit.clicked.connect(sys.exit)
self.frame.update()
我想将其添加到下面的子表单代码中
from PyQt5 import QtCore, QtGui, QtWidgets
from data_toolbar import Ui_FormToolBar
class Ui_DataForm(object):
def setupUi(self, DataForm):
DataForm.setObjectName("DataForm")
DataForm.resize(577, 366)
DataForm.setStyleSheet("")
self.label_2 = QtWidgets.QLabel(DataForm)
self.label_2.setGeometry(QtCore.QRect(10, 79, 56, 23))
self.label_2.setObjectName("label_2")
self.lcdNumber = QtWidgets.QLCDNumber(DataForm)
self.lcdNumber.setGeometry(QtCore.QRect(10, 50, 64, 23))
self.lcdNumber.setObjectName("lcdNumber")
self.pushButton = QtWidgets.QPushButton(DataForm)
self.pushButton.setGeometry(QtCore.QRect(300, 192, 75, 23))
self.pushButton.setStyleSheet("")
self.pushButton.setObjectName("pushButton")
self.label = QtWidgets.QLabel(DataForm)
self.label.setGeometry(QtCore.QRect(300, 85, 47, 16))
self.label.setObjectName("label")
self.lineEdit = QtWidgets.QLineEdit(DataForm)
self.lineEdit.setGeometry(QtCore.QRect(300, 166, 133, 20))
self.lineEdit.setObjectName("lineEdit")
self.comboBox = QtWidgets.QComboBox(DataForm)
self.comboBox.setGeometry(QtCore.QRect(300, 140, 69, 20))
self.comboBox.setObjectName("comboBox")
self.tb = QtWidgets.QWidget()
self.tb.setGeometry(QtCore.QRect(0, 290, 577, 80))
self.tb.setObjectName("tb")
ui = Ui_FormToolBar("data_print", "n")
ui.setupUi(self.tb)
ui.reconfig(self)
self.tb.show()
self.retranslateUi(DataForm)
QtCore.QMetaObject.connectSlotsByName(DataForm)
def retranslateUi(self, DataForm):
_translate = QtCore.QCoreApplication.translate
DataForm.setWindowTitle(_translate("DataForm", "DataForm"))
self.label_2.setText(_translate("DataForm", "TextLabel"))
self.pushButton.setText(_translate("DataForm", "PushButton"))
self.label.setText(_translate("DataForm", "TextLabel"))
似乎什么都不起作用,任何人都可以给出一个类似的例子或链接 实现同样目标的标准方法
目前没有回答
相关问题 更多 >
编程相关推荐