Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Dark2011 от Ноябрь 30, 2012, 10:04



Название: Как установить курсор в LineEdit при запуске
Отправлено: 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);


Название: Re: Как установить курсор в LineEdit при запуске
Отправлено: Пантер от Ноябрь 30, 2012, 10:07
lineEditLayout->setFocus ()


Название: Re: Как установить курсор в LineEdit при запуске
Отправлено: Dark2011 от Ноябрь 30, 2012, 10:23
у layout нет такого метода, я пробывал так сделать поставив lineEdit->setFocus() ... причем в setFocus перепробывал все флаги)...не выходит((


Название: Re: Как установить курсор в LineEdit при запуске
Отправлено: Пантер от Ноябрь 30, 2012, 10:26
Не то скопипастил, sendLineEdit же.


Название: Re: Как установить курсор в LineEdit при запуске
Отправлено: Dark2011 от Ноябрь 30, 2012, 10:50
....я пробывал так сделать поставив lineEdit->setFocus() ... причем в setFocus перепробывал все флаги)...не выходит((

все равно первоначально фокус на первой кнопке


Название: Re: Как установить курсор в LineEdit при запуске
Отправлено: LEO от Ноябрь 30, 2012, 12:03
измени порядок обхода в дизайнере, так чтобы Lineedit твой был первым, а кнопка или что там у тебя шла потом...


Название: Re: Как установить курсор в LineEdit при запуске
Отправлено: torwig от Ноябрь 30, 2012, 12:16
Переопределить showEvent() можно.
 lineEdit->setFocus() там вписать.


Название: Re: Как установить курсор в LineEdit при запуске
Отправлено: Dark2011 от Ноябрь 30, 2012, 17:14
Переопределить showEvent() можно.
 lineEdit->setFocus() там вписать.

Да это помогло, спасибо!