Извините за длинный пост, но хотел дать как можно больше
Здесь не много кода, но я пытаюсь очистить огромную функцию кнопок в PyQt5 Gui
У меня есть вывод GUI, и все работает хорошо, и сейчас я пытаюсь удалить повторяющийся код и создаю функцию для создания кнопок.
В исправном Имя initUI у меня около 20 кнопок. Как видно из кода, старый способ создавал каждый из них по отдельности.
Я создал функцию, в которую отправляются параметры, и затем создает их.
Это работает отдельно от аргумента defRun, отправленного кнопке. Это передача вызова другой функции Я выделил >>>> arg <<<< это не совсем в коде </em>
class iac2tf(QMainWindow):
def __init__(self):
super(iac2tf, self).__init__()
self.initUI()
self.setGeometry(0, 0, 1700, 1000)........
def button (self, buttonName, buttonText, >>>>defRun<<<<, buttonWidth, buttonHeight, buttonx, buttony):
self.buttonName = QtWidgets.QPushButton(buttonText,self)
>>>>self.buttonName.clicked.connect(lambda:self.defRun)<<<<
self.buttonName.resize(buttonWidth,buttonHeight)
self.buttonName.move(buttonx,buttony)
self.buttonName.show()
def initUI(self):
#passed style
self.openFilebutton = self.button('openFile', 'Open File', >>>'open()'<<<< ,110,30,5,50)
#Old style
self.ProcessFile = QtWidgets.QPushButton('Process File',self)
self.ProcessFile.clicked.connect(self.processFile)
self.ProcessFile.resize(110,30)
self.ProcessFile.move(5, 80)
/......
....../
def open(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
file, _ = QFileDialog.getOpenFileNames(self, 'Ope.......
app = QApplication(sys.argv)
win = iac2tf()
win.show()
Я пытался передать Зная, что некоторые потерпят неудачу, но хотел охватить все базы и был раздражен
GUI открывается с
<built-in function open>
При нажатии кнопки
File "/home/bob/present/proj/WorksArea/gui.py", line 38, in <lambda>
self.buttonName.clicked.connect(lambda:self.defRun)
AttributeError: 'iac2tf' object has no attribute 'defRun'
self.openFilebutton = self.button('openFile', 'Open File', str(open()) ,110,30,5,50)
TypeError: Required argument 'file' (pos 1) not found
GUI открывается с
<bound method iac2tf.open of <__main__.iac2tf object at 0x7f87e73da948>>
при нажатии кнопки
Traceback (most recent call last):
File "/home/bob/present/proj/WorksArea/gui.py", line 38, in <lambda>
self.buttonName.clicked.connect(lambda:self.defRun)
AttributeError: 'iac2tf' object has no attribute 'defRun'
Открыть меню выбора файлов ie Начать открытое веселье c
GUI запускается
<bound method iac2tf.open of <__main__.iac2tf object at 0x7fdcb2dee948>>
при нажатии кнопки
Traceback (most recent call last):
File "/home/bob/present/proj/WorksArea/gui.py", line 38, in <lambda>
self.buttonName.clicked.connect(lambda:self.defRun)
AttributeError: 'iac2tf' object has no attribute 'defRun'
- 'self.open'
- ' self.open () '
- ' open () '
- ' open '
открывает GUI без ошибки
при нажатии кнопки
Traceback (most recent call last):
File "/home/bob/present/proj/WorksArea/gui.py", line 38, in <lambda>
self.buttonName.clicked.connect(lambda:self.defRun)
AttributeError: 'iac2tf' object has no attribute 'defRun'
открывает GUI с
<built-in function open>
при нажатии кнопки
Traceback (most recent call last):
File "/home/bob/present/proj/WorksArea/gui.py", line 38, in <lambda>
self.buttonName.clicked.connect(lambda:self.defRun)
AttributeError: 'iac2tf' object has no attribute 'defRun'
self.openFilebutton = self.button('openFile', 'Open File', open() ,110,30,5,50)
TypeError: Required argument 'file' (pos 1) not found
- переход к локальному веселью c вар все выше, но как есть: (