Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from functools import partial
- from PyQt5 import QtWidgets, QtGui, QtCore
- class MainWindow(QtWidgets.QMainWindow):
- def __init__(self, parent=None):
- super(MainWindow, self).__init__(parent)
- self.central_widget = QtWidgets.QWidget(self)
- self.setCentralWidget(self.central_widget)
- self.mw_open_new_dialog_button = QtWidgets.QPushButton('Open New dialog', self)
- self.mw_line_edit = QtWidgets.QLineEdit(self)
- self.hlayout = QtWidgets.QHBoxLayout(self)
- self.hlayout.addWidget(self.mw_open_new_dialog_button)
- self.hlayout.addWidget(self.mw_line_edit)
- self.central_widget.setLayout(self.hlayout)
- self.mw_open_new_dialog_button.clicked.connect(self.open_new_dialog)
- def open_new_dialog(self):
- self.dlg = Dialog()
- #self.dlg.clicked.connect(partial(self.write_something, self.dlg.line_edit.text())) # <<<<<<< This does not work
- self.dlg.clicked.connect(lambda: self.write_something(self.dlg.line_edit.text()))
- #self.dlg.clicked.connect(self.wrapper(self.dlg.line_edit.text()))# <<<<<<<<<<This does not work
- self.dlg.exec()
- @QtCore.pyqtSlot()
- def write_something(self, text):
- self.mw_line_edit.setText(text)
- def wrapper(self, text):
- return lambda: self.write_something(text)
- class Dialog(QtWidgets.QDialog):
- clicked = QtCore.pyqtSignal()
- def __init__(self, parent=None):
- super(QtWidgets.QDialog, self).__init__(parent)
- self.hlayout = QtWidgets.QHBoxLayout(self)
- self.line_edit = QtWidgets.QLineEdit(self)
- self.push_button = QtWidgets.QPushButton('Click me', self)
- self.hlayout.addWidget(self.line_edit)
- self.hlayout.addWidget(self.push_button)
- self.label = QtWidgets.QLabel('I am a Qlabel', self)
- self.hlayout.addWidget(self.label)
- self.setLayout(self.hlayout)
- self.push_button.clicked.connect(self.clicked)
- def write_something(self, text):
- print(text)
- app = QtWidgets.QApplication(sys.argv)
- main_window = MainWindow()
- main_window.show()
- sys.exit(app.exec())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement