from PySide6.QtWidgets import QApplication, QDialog, QPushButton, QHBoxLayout
import sys


class TestDialog(QDialog):
    def __init__(self) -> None:
        super().__init__()

        hide_button = QPushButton("Hide")
        close_button = QPushButton("Close")

        hide_button.clicked.connect(self._hide_button_clicked)
        close_button.clicked.connect(self._close_button_clicked)

        main_layout = QHBoxLayout()
        main_layout.addWidget(hide_button)
        main_layout.addWidget(close_button)

        self.setLayout(main_layout)

    def _hide_button_clicked(self) -> None:
        self.hide()
        self.show()

    def _close_button_clicked(self) -> None:
        self.close()

def main() -> None:
    QApplication(sys.argv)

    win = TestDialog()
    win.exec()

    print("Finished")


if __name__ == "__main__":
    main()
