Найти - Пользователи
Полная версия: Помогите разобраться!!!
Начало » GUI » Помогите разобраться!!!
1
kaw
Есть QListWidget в нем рисую меню, но никак не удаеться с сигналом передать в функцию параметр self.CopyToo('dbf') выкидывает ошибку
The debugged program raised the exception unhandled TypeError “argument 3 of QObject.connect() has an invalid type”
            dmenu = self.menu.addMenu(u'Копировать в')
self.connect (dmenu.addAction(u'Эл.Накладные') , SIGNAL('triggered()'), self.CopyToo('dbf'))
self.menu.exec_(QCursor.pos())

@pyqtSignature("QString")
def CopyToo(self, name):
s = self.listWidget.item(self.a).text()
if name =='dbf':
i=0
if name == 'def':
i=1
if name == 'msg':
i=2
if self.listWidget.item(i).text() != 'noting':
sql = "UPDATE %s SET adres = '%s' where nom = %s" % (name,s,self.Fd_Edit_Nm.text())
else:
sql = "INSERT INTO %s(nom, adres) VALUES ('%s', '%s')" % (name,self.Fd_Edit_Nm.text(),s)
try:
self.cur.execute(sql)
self.con.commit()
except:
self.msg.question(self, 'Message', u'Ошибка записи! " %s' % (sql))
self.on_Fd_Button_Fd_clicked() /code
kaw
пока решил проблему так

        dmenu = self.menu.addMenu(u'Копировать в')
self.connect (dmenu.addAction(u'Эл.Накладные') , SIGNAL('triggered()'), self.dbf)
self.menu.exec_(QCursor.pos())

def dbf (self):
self.CopyToo('dbf')
poltergeist
Вы кажется что-то путаете в терминологии. Соединять надо сигнал (действие, событие) к слоту (слот, функция). Тут всё происходит асинхронно.

Так может и надо решать, хотя решать тут нечего. Есть ещё вариант использовать лямбду:
self.connect (dmenu.addAction(u'Эл.Накладные') , SIGNAL('triggered()'), lambda: self.CopyToo('dbf'))
- но это не так очевидно как хотелось бы…

Вы же ничего не соединяете, а ошибочно пытаетесь результат функции передать в качестве слота:
self.connect (dmenu.addAction(u'Эл.Накладные') , SIGNAL('triggered()'), self.CopyToo('dbf'))
Ferroman
И название темы никудышное.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB