Форум сайта python.su
Задача:
хочу по нажатию сочетания клавиш например 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)
Офлайн
from PyQt4 import Qt as qt
import sys
app = qt.QApplication(sys.argv)
mw = qt.QMainWindow()
fr = qt.QFrame()
lt = qt.QVBoxLayout()
te = qt.QTextEdit("Some text")
fr.setLayout(lt)
lt.addWidget(te)
mw.setCentralWidget(fr)
ac = qt.QAction("Insert AAA",te)
ac.setShortcut(qt.QKeySequence("Ctrl+K"))
te.addAction(ac)
def on_action_triggered(checked):
tc = te.textCursor()
tc.movePosition(qt.QTextCursor.Left, qt.QTextCursor.MoveAnchor,1)
te.setTextCursor(tc)
ac.triggered.connect(on_action_triggered)
mw.show()
app.exec_()
Офлайн
спасибо!!!
Офлайн