Russian Qt Forum
Октябрь 02, 2024, 01:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как установить курсор в LineEdit при запуске  (Прочитано 6340 раз)
Dark2011
Гость
« : Ноябрь 30, 2012, 10:04 »

в общем есть такая вот программулька - при запуске фокус почеу то постоянно устанавливается на верхнюю кнопку, хоть я и делал ее setDefaul(false)

а мне хотелось бы чтоб при запуске фокус был сразу на LineEdit и чтобы там сразу курсор воода был установлен, без клика мышки

Код:

    settingsButton = new QPushButton(tr("Port settings"));
    settingsButton->setDefault(false);
    settingsLayout = new QHBoxLayout;
    settingsLayout->addWidget(settingsButton);

    sendLabel = new QLabel(tr("Send text:"));
    sendLineEdit = new QLineEdit;
    sendLabel->setBuddy(sendLineEdit);
    lineEditLayout = new QHBoxLayout;
    lineEditLayout->addWidget(sendLabel);
    lineEditLayout->addWidget(sendLineEdit);

   sendButton = new QPushButton(tr("Send"));
   sendButton->setEnabled(false);
   sendButton->setDefault(true);
   sendButtonLayout = new QHBoxLayout;
   sendButtonLayout->addStretch();
   sendButtonLayout->addWidget(sendButton);

   ..../Много кода/....

   mainLayout =  new QVBoxLayout;
   mainLayout->addLayout(settingsLayout);
   mainLayout->addSpacing(5);
   mainLayout->addLayout(lineEditLayout);
   mainLayout->addLayout(sendButtonLayout);
  ..../Много кода/....
   setLayout(mainLayout);
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Ноябрь 30, 2012, 10:07 »

lineEditLayout->setFocus ()
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Dark2011
Гость
« Ответ #2 : Ноябрь 30, 2012, 10:23 »

у layout нет такого метода, я пробывал так сделать поставив lineEdit->setFocus() ... причем в setFocus перепробывал все флаги)...не выходит((
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Ноябрь 30, 2012, 10:26 »

Не то скопипастил, sendLineEdit же.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Dark2011
Гость
« Ответ #4 : Ноябрь 30, 2012, 10:50 »

....я пробывал так сделать поставив lineEdit->setFocus() ... причем в setFocus перепробывал все флаги)...не выходит((

все равно первоначально фокус на первой кнопке
Записан
LEO
Гость
« Ответ #5 : Ноябрь 30, 2012, 12:03 »

измени порядок обхода в дизайнере, так чтобы Lineedit твой был первым, а кнопка или что там у тебя шла потом...
Записан
torwig
Самовар
**
Offline Offline

Сообщений: 134



Просмотр профиля
« Ответ #6 : Ноябрь 30, 2012, 12:16 »

Переопределить showEvent() можно.
 lineEdit->setFocus() там вписать.
Записан
Dark2011
Гость
« Ответ #7 : Ноябрь 30, 2012, 17:14 »

Переопределить showEvent() можно.
 lineEdit->setFocus() там вписать.

Да это помогло, спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 22.