У меня есть приложение, которое должно открыть адрес веб-браузера после нажатия кнопки. Основная функция выглядеть следующим образом:PySide Не удалось подключить сигнал, нажатый()
class MainWindow(QtGui.QDialog):
def __init__(self, parent = None):
super(MainWindow, self).__init__(parent = parent)
self.button_layout = QtGui.QHBoxLayout(self)
self.webButton = PicButton(QtGui.QPixmap("images/button.png"))
self.filmButton.clicked.connect(openWebpage("http://some.web.adress"))
self.button_layout.addWidget(self.webButton)
И функция для открытия веб-браузера выглядит следующим образом:
def openWebpage(address):
try:
import webbrowser
webbrowser.open(address)
except ImportError as exc:
sys.stderr.write("Error: failed to import settings module ({})".format(exc))
После выполнения этого кода, ни окно приложения видимым, веб-браузер запускает сразу, и консоль возвращается:
Failed to connect signal clicked().
Простые функции, подключенные к этой кнопке, работают правильно (например, печать текста на консоль). Есть идеи?
Is 'self.filmButton.clicked.connect (openWebpage (" http: //some.web.adress "))' correct? Я имею в виду именно 'openWebpage (« http: //some.web.adress »)' -part. Я думал, что разрешено использовать его как 'self.filmButton.clicked.connect (openWebpage)'. Кроме того, укажите тип «filmButton». –
[Проверить это] (http://stackoverflow.com/questions/13894866/pyside-connection-error-runtimeerror-failed-to-connect-signal-clicked#comment19156148_13894993), @VictorPolevoy прав. –