Exemplo n.º 1
0
def qt_input(app, title, placeholder=None, tool_window=False):
    code = None
    code_le = QLineEdit()

    def return_pressed_handler():
        nonlocal code
        code = code_le.text()
        code_le.close()

    code_le.setWindowTitle(title)
    if placeholder is not None:
        code_le.setPlaceholderText(placeholder)
    if tool_window:
        code_le.setWindowFlags(code_le.windowFlags() | Qt.Tool
                               | Qt.WindowStaysOnTopHint)
    code_le.returnPressed.connect(return_pressed_handler)
    code_le.show()
    code_le.setAttribute(Qt.WA_QuitOnClose)
    code_le.setFocusPolicy(Qt.StrongFocus)
    code_le.setFocus()
    code_le.raise_()
    code_le.activateWindow()
    app.exec_()

    return code
Exemplo n.º 2
0
class App(QWidget):
    def __init__(self):
        super().__init__()
        self.input = QLineEdit(self)
        self.hk = Hook()
        self.init_ui()

    def init_ui(self):
        self.setWindowFlags(Qt.FramelessWindowHint)
        self.setWindowFlags(Qt.SplashScreen | Qt.WindowStaysOnTopHint)

        self.resize(500, 110)
        self.center()

        self.setAutoFillBackground(True)
        widget_colour = self.palette()
        color = QColor('#1D1F21')
        widget_colour.setColor(self.backgroundRole(), color)
        self.setPalette(widget_colour)

        # input
        self.input.resize(450, 70)
        self.input.move(self.rect().center() - self.input.rect().center())
        self.input.returnPressed.connect(self.search)

        self.input.setStyleSheet(
            "border: 0px;  background: #282a2e; color: #969896; font-size : 30px"
        )

        self.hk.handler = self.on_keyboard_event
        self.hk.hook()

    def keyPressEvent(self, event):
        if event.key() == Qt.Key_Escape:
            self.input.setText("")
            self.destroy_gui()

    def center(self):
        qr = self.frameGeometry()
        cp = QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())

    def on_keyboard_event(self, args):
        if isinstance(args, KeyboardEvent):
            if args.current_key == 'Space' and args.event_type == 'key down' and 'Lcontrol' in args.pressed_key:
                self.display_gui()

    def search(self):
        if self.input.text() == "close":
            sys.exit()

        path = UserPath(self.input.text()).match()
        if path != "":
            self.destroy_gui()
            subprocess.Popen(path)
            self.input.setText("")

    def destroy_gui(self):
        self.hide()

    def display_gui(self):
        self.show()
        self.input.activateWindow()