Russian Qt Forum

Qt => Вопросы новичков => Тема начата: nvek от Апрель 23, 2019, 13:39



Название: QAction и вставка строки с выделением в TextEdit
Отправлено: nvek от Апрель 23, 2019, 13:39
в контекстном меню я выбираю функцию, допустим cos(число)
нажимаю , текст вставляется , "число" должно выделиться.
но если на следующей строке такое действие выполняю, то выделяется первая строка...  ???
Курсор не знает какую строку выделять, выделяет первую

CustomMenu - наследник QAction я сделал для того чтобы таким образом кастовать к своему типу, в котором свои поля...  ::)
Код:
void CustomMenu::paste()
{
CustomAction *act = qobject_cast<CustomAction*>(sender());
QString tmplt = act->_tmplt;

// находим выделение на начало и конец
int start = tmplt.indexOf(act->_select);
int last = act->_select.size() + start;

_textEdit->textCursor().insertText(tmplt);

QTextCursor cursor = _textEdit->textCursor();
cursor.setPosition( start );
cursor.setPosition(last, QTextCursor::KeepAnchor);
_textEdit->setTextCursor(cursor);
}



Название: Re: QAction и вставка строки с выделением в TextEdit
Отправлено: Fregloin от Май 07, 2019, 15:35
Зачем делать наследника? Если хотите хранить какие то свои данные в QAction, храните их через data()/setData().