Я пытаюсь создать графический интерфейс с PyQt4, изначально я использовал конструктор QT, чтобы выполнить мой общий макет, а затем модифицировать код. Я заметил, что существует много повторяющегося кода, который будет заменен на увядание класса или метода, но я не уверен, что было бы лучше или как правильно реализовать любой путь должным образом. вот пример повторяющегося кода (его очень большая программа)Устранение повторяющегося кода в python
self.ch2_R = QtGui.QLineEdit(Form)
self.ch2_R.setSizePolicy(sizePolicy)
self.ch2_R.setText(_fromUtf8(""))
self.ch2_R.setFrame(True)
self.ch2_R.setAlignment(QtCore.Qt.AlignCenter)
self.ch2_R.setReadOnly(True)
self.ch2_R.setObjectName(_fromUtf8("ch2_R"))
print self.ch2_R
self.ch3_R = QtGui.QLineEdit(Form)
self.ch3_R.setSizePolicy(sizePolicy)
self.ch3_R.setText(_fromUtf8(""))
self.ch3_R.setFrame(True)
self.ch3_R.setAlignment(QtCore.Qt.AlignCenter)
self.ch3_R.setReadOnly(True)
self.ch3_R.setObjectName(_fromUtf8("ch3_R"))
self.ch4_R = QtGui.QLineEdit(Form)
self.ch4_R.setSizePolicy(sizePolicy)
self.ch4_R.setText(_fromUtf8(""))
self.ch4_R.setFrame(True)
self.ch4_R.setAlignment(QtCore.Qt.AlignCenter)
self.ch4_R.setReadOnly(True)
self.ch4_R.setObjectName(_fromUtf8("ch4_R"))
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.ch2_R.sizePolicy().hasHeightForWidth())
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.ch3_R.sizePolicy().hasHeightForWidth())
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.ch4_R.sizePolicy().hasHeightForWidth())
self.gridLayout.addWidget(self.ch2_R, 4, 5, 1, 4)
self.gridLayout.addWidget(self.ch3_R, 5, 5, 1, 4)
self.gridLayout.addWidget(self.ch4_R, 6, 5, 1, 4)
этот код все в пределах
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Form(object):
def setupUi(self, Form):
Моя intial попытка была creaet метод внутри класса Ui_Form как этот
def myQtlineEdit(self, name, form, sizePolicy):
self.name = QtGui.QLineEdit(Form)
self.name.setSizePolicy(sizePolicy)
self.name.setText(_fromUtf8(""))
self.name.setFrame(True)
self.name.setAlignment(QtCore.Qt.AlignCenter)
self.name.setReadOnly(True)
self.name.setObjectName(_fromUtf8("%s" %name))
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.name.sizePolicy().hasHeightForWidth())
self myQtlineEdit("ch2_R", form, sizePolicy)
Он сделал создать текстовое поле, я искал, но
self.gridLayout.addWidget(self.ch2_R, 4, 5, 1, 4)
дал бы мне ошибку, говоря, что ch2_R did not exsist
Спасибо.
Nice, спасибо большое! – Lpaulson