65 lines
1.8 KiB
Python
65 lines
1.8 KiB
Python
|
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)
|