import sys
import os

from PySide2.QtWidgets import (QApplication, QTextEdit, QPushButton,
                             QVBoxLayout, QWidget)
from PySide2.QtCore import (qVersion, Qt)

# Set to anything other than -1 to make the clear button work
os.putenv("QT_MAC_WANTS_LAYER", "-1")

# qt.qpa.drawing output differs significantly depending
# on QT_MAC_WANTS_LAYER
os.putenv("QT_LOGGING_RULES", "qt.qpa.drawing=true")

app = QApplication(sys.argv)

edit = QTextEdit()
edit.setText(qVersion())

button = QPushButton("clear")
button.clicked.connect(edit.clear)

button2 = QPushButton("queued clear")
button2.clicked.connect(edit.clear, type=Qt.QueuedConnection)

layout = QVBoxLayout()
layout.addWidget(button)
layout.addWidget(button2)
layout.addWidget(edit)

w = QWidget()
w.setLayout(layout)

w.show()
w.raise_()

app.exec_()
