2014-12-12 3 views
-1

мои оправдания, если этот вопрос очень прост. У меня есть GUI с несколькими кнопками (QT с PySide). Я хочу подключить 2 кнопки с одной функцией, которая должна делать одно и то же с одной разницей. Для этого мне нужно передать аргумент. Вот такой код:GUI: передача аргументов функции при нажатии кнопки

def test(flag): 
    if flag: 
     do something 
    else: 
     do something else 

# button calls: 
self.ui.button1.clicked.connect(test(True)) 
self.ui.button2.clicked.connect(test(False)) 

Я пробовал вещи, как указано выше, но он не нравится тест (правда). Я также играл с лямбдами, и я застреваю в том же месте. До сих пор я называл две отдельные функции, но это не очень хорошая практика. Любая помощь приветствуется.

Thanks

Это работает! Гораздо проще, чем я думал. Большое спасибо.

+0

Что вы имеете в виду, если застреваете? Лямбдас должен работать. – Trilarion

ответ

1

Вы сказали, что вы использовали лямбды, пытались ли вы это

self.ui.button1.clicked.connect(lambda:test(True)) 
self.ui.button2.clicked.connect(lambda:test(False)) 

Это должно работать.

Смежные вопросы