Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. import sys
  2. from functools import partial
  3.  
  4. from PyQt5 import QtWidgets, QtGui, QtCore
  5.  
  6.  
  7. class MainWindow(QtWidgets.QMainWindow):
  8. def __init__(self, parent=None):
  9. super(MainWindow, self).__init__(parent)
  10. self.central_widget = QtWidgets.QWidget(self)
  11. self.setCentralWidget(self.central_widget)
  12. self.mw_open_new_dialog_button = QtWidgets.QPushButton('Open New dialog', self)
  13. self.mw_line_edit = QtWidgets.QLineEdit(self)
  14. self.hlayout = QtWidgets.QHBoxLayout(self)
  15. self.hlayout.addWidget(self.mw_open_new_dialog_button)
  16. self.hlayout.addWidget(self.mw_line_edit)
  17. self.central_widget.setLayout(self.hlayout)
  18.  
  19. self.mw_open_new_dialog_button.clicked.connect(self.open_new_dialog)
  20.  
  21.  
  22. def open_new_dialog(self):
  23. self.dlg = Dialog()
  24. #self.dlg.clicked.connect(partial(self.write_something, self.dlg.line_edit.text())) # <<<<<<< This does not work
  25. self.dlg.clicked.connect(lambda: self.write_something(self.dlg.line_edit.text()))
  26. #self.dlg.clicked.connect(self.wrapper(self.dlg.line_edit.text()))# <<<<<<<<<<This does not work
  27. self.dlg.exec()
  28.  
  29. @QtCore.pyqtSlot()
  30. def write_something(self, text):
  31. self.mw_line_edit.setText(text)
  32.  
  33. def wrapper(self, text):
  34. return lambda: self.write_something(text)
  35.  
  36.  
  37.  
  38. class Dialog(QtWidgets.QDialog):
  39.  
  40. clicked = QtCore.pyqtSignal()
  41. def __init__(self, parent=None):
  42. super(QtWidgets.QDialog, self).__init__(parent)
  43. self.hlayout = QtWidgets.QHBoxLayout(self)
  44. self.line_edit = QtWidgets.QLineEdit(self)
  45. self.push_button = QtWidgets.QPushButton('Click me', self)
  46. self.hlayout.addWidget(self.line_edit)
  47. self.hlayout.addWidget(self.push_button)
  48. self.label = QtWidgets.QLabel('I am a Qlabel', self)
  49. self.hlayout.addWidget(self.label)
  50. self.setLayout(self.hlayout)
  51. self.push_button.clicked.connect(self.clicked)
  52.  
  53. def write_something(self, text):
  54. print(text)
  55.  
  56.  
  57.  
  58. app = QtWidgets.QApplication(sys.argv)
  59.  
  60. main_window = MainWindow()
  61. main_window.show()
  62. sys.exit(app.exec())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement