Как заставить vi привязки клавиш работать в mysql клиенте?

Проблема вызвана тем, что макеты не используются в RantContainer. Также желательно установить ограничения в rant-content вместо rant-container.

class RantContainer:
    def __init__(self):
        # Bad idea to subclass widget because it breaks painting
        # i.e. the background color goes bye bye
        # I'd love to. I really would. But just no.
        container = QtWidgets.QWidget()
        container.setObjectName("rant-container")
        self.container = container

        rant_content = QtWidgets.QLabel()
        rant_content.setObjectName("rant-content")
        rant_content.setWordWrap(True)
        # rant_content.setFont(rant_font)
        self.rant_content = rant_content
        rant_content.setFixedWidth(600) # <---
        rant_content.setMinimumHeight(150) # <---

        upvote_btn = QtWidgets.QPushButton()
        upvote_btn.setObjectName("upvote-btn")
        # upvote_btn.setFont(vote_button_font)
        upvote_btn.setText("++")
        self.upvote_btn = upvote_btn

        downvote_btn = QtWidgets.QPushButton()
        downvote_btn.setObjectName("upvote-btn")
        # downvote_btn.setFont(vote_button_font)
        downvote_btn.setText("--")
        self.downvote_btn = downvote_btn

        score_label = QtWidgets.QLabel(alignment=QtCore.Qt.AlignCenter)
        score_label.setObjectName("rant-score")
        score_label.setText("69")
        # score_label.setFont(score_font)
        self.score_label = score_label

        vlay = QtWidgets.QVBoxLayout()
        vlay.addWidget(upvote_btn)
        vlay.addWidget(score_label)
        vlay.addWidget(downvote_btn)
        vlay.addStretch()

        hlay = QtWidgets.QHBoxLayout(container)
        hlay.addLayout(vlay)
        hlay.addWidget(rant_content)

QSS:

QWidget#rant-container{
    background-color: white;
}
QWidget#rant-container:hover{
    background-color: #f2f2f2;
}

Или:

class RantContainer:
    def __init__(self):
        # Bad idea to subclass widget because it breaks painting
        # i.e. the background color goes bye bye
        # I'd love to. I really would. But just no.
        container = QtWidgets.QWidget()
        container.setObjectName("rant-container")
        self.container = container

        rant_content = QtWidgets.QLabel()
        rant_content.setObjectName("rant-content")
        rant_content.setWordWrap(True)
        # rant_content.setFont(rant_font)
        self.rant_content = rant_content

        upvote_btn = QtWidgets.QPushButton()
        upvote_btn.setObjectName("upvote-btn")
        # upvote_btn.setFont(vote_button_font)
        upvote_btn.setText("++")
        self.upvote_btn = upvote_btn

        downvote_btn = QtWidgets.QPushButton()
        downvote_btn.setObjectName("upvote-btn")
        # downvote_btn.setFont(vote_button_font)
        downvote_btn.setText("--")
        self.downvote_btn = downvote_btn

        score_label = QtWidgets.QLabel(alignment=QtCore.Qt.AlignCenter)
        score_label.setObjectName("rant-score")
        score_label.setText("69")
        # score_label.setFont(score_font)
        self.score_label = score_label

        vlay = QtWidgets.QVBoxLayout()
        vlay.addWidget(upvote_btn)
        vlay.addWidget(score_label)
        vlay.addWidget(downvote_btn)
        vlay.addStretch()

        hlay = QtWidgets.QHBoxLayout(container)
        hlay.addLayout(vlay)
        hlay.addWidget(rant_content)

QSS:

QWidget#rant-container{
    background-color: white;
}
QWidget#rant-container:hover{
    background-color: #f2f2f2;
}

QWidget#rant-content{
    min-height: 180px;
    min-width: 660px;
    max-width: 660px;
}
30
задан codeforester 16 February 2018 в 19:01
поделиться

2 ответа

Быстрый Google показывает это ... не знаю, поможет ли это.

Скопировано здесь для удобства:

Добавьте следующее в OS X 10.5:

$ cat .editrc
bind -v

Это будет работать для OS X 10.4 и других операционных систем:

$ cat .inputrc
set editing-mode vi
37
ответ дан Madbreaks 27 November 2019 в 23:47
поделиться

Это не дает прямого ответа на ваш вопрос, но вы можете взглянуть на плагин dbext .

Этот плагин содержит функции / отображения / команды, позволяющие Vim получить доступ к нескольким базам данных.

[...]

dbext обеспечивает общий интерфейс между вашим редактором и базой данных. Если ваша компания / проект переходит на новую платформу баз данных, вам не нужно изучать новые инструменты баз данных. При редактировании SQL (и без выхода из Vim) вы можете выполнять команды базы данных, выполнять запросы, отображать результаты и просматривать объекты базы данных. dbext понимает различные языки программирования и может анализировать и запрашивать у пользователя переменные [host] и выполнять результирующий оператор. Подробности смотрите ниже.

Клиент базы данных внутри Vim!

1
ответ дан Matteo Riva 27 November 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: