Есть форма в QtCreator, на ней lineEdit и кнопки. Как сделать, чтобы lineEdit всегда оставался в фокусе (чтобы каретка мигала), независимо от нажатий на кнопки, перемещения или любых других действий с формой?
Попробоуйте вызвать у кнопки метод после создания:
button->setFocusPolicy(Qt::NoFocus);
Или выставить соотвествующее поле в QtCreator. Тем самым кнопку не будет получать фокус.
А может быть, добавить перехват нажатия клавиши на клавиатуре главному окну и вписать туда передачу фокуса lineEdite?
"Мигать" курсор не будет, но по идее можно добиться того, чтобы текст всегда вписывался туда, куда нужно, где до этого ни был фокус.
void Widget::keyPressEvent(QKeyEvent *ev)
{
lineEdit->setFocus();
lineEdit->setText(ev->text());
}
void Widget::keyReleaseEvent(QKeyEvent *ev)
{
// или так
}
Widget
тут надо заменить вашей главной формой
Можно сделать свой "жадный" виджет, который ни с кем фокусом делиться не будет.
class LineEdit : public QLineEdit{
public:
explicit LineEdit(QWidget *parent = 0):
QLineEdit(parent)
{}
protected:
void focusOutEvent(QFocusEvent *){
setFocus();
}
};
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Сейчас моё обращение к БД выглядит так:
В сигнатуре указано int MPI_Init( int* argc, char*** argv), что как бе намекает на то, что я данную функцию могу вызвать только внутри int main(int argc, char** argv)
Требуется организовать множественное наследование на языке С++ по данной схеме:
Имеется некоторое число floatНеобходимо написать программу, которая заменяет в представлении этого числа последний байт на значение "0xAA" и, после...