Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [PyQt] как сделать горячие клавиши в QTextEdit 
:(
    Опции темы
hlop4ik
Дата 20.5.2011, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.5.2011

Репутация: нет
Всего: нет



Задача:
хочу по нажатию сочетания клавиш например Ctrl+K переместить курсор QTextEdit'а например влево на символ (Ctrl+K = нажатие стрелочки влево)

Код

class MyTextEdit(QtGui.QTextEdit):
    def __init__(self, parent):
        QtGui.QTextEdit.__init__(self, parent)
        self.ctrlIsPressed = False

    def keyPressEvent(self, event):
        if (event.key() == QtCore.Qt.Key_K) and self.ctrlIsPressed:
        # и вот тут надо что то написать, что б курсор передвинулся
        # наверное либо сэмулировать нажатие стрелочки
        # либо как то програмно передвинуть курсор

        else:
            QtGui.QTextEdit.keyPressEvent(self, event)


подскажите как быть

Это сообщение отредактировал(а) hlop4ik - 20.5.2011, 15:42
PM MAIL   Вверх
vedun
Дата 21.5.2011, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 23.12.2010

Репутация: нет
Всего: 2



Наверно как то так:
Код

# -*- coding: utf-8 -*-

from PyQt4 import QtCore, QtGui

class MyTextEdit(QtGui.QTextEdit):
  
  def __init__(self, parent):
    QtGui.QTextEdit.__init__(self, parent)


  def keyPressEvent(self, event):
    if (  (event.key() == QtCore.Qt.Key_K) and  (event.modifiers() == QtCore.Qt.ControlModifier)):
      cursor = self.textCursor()
      pos = cursor.position()
      cursor.setPosition(pos - 1)
      self.setTextCursor(cursor)
    else:
      super(MyTextEdit, self).keyPressEvent(event)


class MainWindow(QtGui.QMainWindow):

  def __init__(self):
    super(MainWindow, self).__init__()
    self.widget = MyTextEdit(self)
    self.setCentralWidget(self.widget)


if __name__ == '__main__':

    import sys

    app = QtGui.QApplication(sys.argv)

    mainWindow = MainWindow()
    mainWindow.show()

    sys.exit(app.exec_())


PM ICQ Skype Jabber   Вверх
hlop4ik
Дата 22.5.2011, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.5.2011

Репутация: нет
Всего: нет



большое спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Разработка GUI | Следующая тема »


 




[ Время генерации скрипта: 0.0391 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.