import sys
from PyQt5.Qt import *
from PyQt5 import QtGui, QtWidgets


class MyPopup(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        lay = QtWidgets.QVBoxLayout()
        self.setLayout(lay)
        lay.setContentsMargins(0, 0, 0, 0)
        le = QtWidgets.QLineEdit()
        le.setText("Abracadabra")
        le.setReadOnly(True)
        # le.setStyleSheet("QLineEdit { qproperty-frame: false }")
        le.setFrame(False)
        le.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)

        # lay.addStretch()
        but = QtWidgets.QPushButton("OK")
        hlay = QtWidgets.QHBoxLayout()
        hlay.setContentsMargins(0, 5, 5, 5)

        hlay.addStretch()
        hlay.addWidget(but)

        lay.addWidget(le)
        lay.addLayout(hlay)
    # def paintEvent(self, e):
    #     dc = QtGui.QPainter(self)
    #     dc.drawLine(0, 0, 100, 100)
    #     dc.drawLine(100, 0, 0, 100)


class MainWindow(QMainWindow):
    def __init__(self, *args):
        QtWidgets.QMainWindow.__init__(self, *args)
        self.cw = QtWidgets.QWidget(self)
        self.setCentralWidget(self.cw)
        self.btn1 = QtWidgets.QPushButton("Click me", self.cw)
        self.btn1.setGeometry(QRect(0, 0, 100, 30))
        self.btn1.clicked.connect(self.doit)
        self.w = None

    def doit(self):
        print("Opening a new popup window...")
        self.w = MyPopup()
        self.w.setGeometry(QRect(100, 100, 400, 200))
        self.w.show()


class App(QApplication):
    def __init__(self, *args):
        QtWidgets.QApplication.__init__(self, *args)
        self.main = MainWindow()
        # self.lastWindowClosed.connect(self.byebye)
        self.main.show()

    def byebye(self):
        self.exit(0)


def main(args):
    global app
    app = App(args)
    app.exec_()


if __name__ == "__main__":
    main(sys.argv)