QLineEdit Focus Event - PullRequest
       0

QLineEdit Focus Event

0 голосов
/ 06 октября 2010

У меня есть два виджета mainwindow123 и второго класса. В моем MainWidget.cpp есть одно поле lineedit и поле кнопки. Изначально я могу установить фокус на строку редактирования. Но после того, как пришел из second.cpp Widget, я не смог установить фокус на lineedit. Пожалуйста, помогите мне .. В каком месте я сделал ошибку? Заранее спасибо.

Это мой код MainWidget.cpp

MainWidget::MainWidget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::MainWidget)
    {
        ui->setupUi(this);
        s = new second();
        connect(ui->pushButton, SIGNAL(clicked()),this,SLOT(callSecond()));

    }

    MainWidget::~MainWidget()
    {
        delete ui;
    }
    void MainWidget::callSecond()
    {
       s->show();

     }

second.cpp

second::second(QWidget *parent) :
    QWidget(parent)
{
    QPushButton *first = new QPushButton("first");
    first->setStyleSheet(
         "background-color:black;"

    );
    QGridLayout *d = new QGridLayout();

    d->addWidget(frist,0,0,1,1);
    setLayout(d);
    connect(first,SIGNAL(clicked()),this,SLOT(first()));
}

void second:: first()
{
    this->hide();
}

1 Ответ

5 голосов
/ 06 октября 2010

Это потому, что ваш фокус переходит к кнопке после того, как вы ее нажали.Вы можете добиться этого с помощью:

  1. Настройка focusProxy http://doc.qt.io/qt-4.8/qwidget.html#setFocusProxy
  2. Отключение сильной фокусировки на кнопке: http://doc.qt.io/qt-4.8/qwidget.html#focusPolicy-prop
  3. Подключение кнопок к нажатию сигнала для установки слота Focusваш QLineEdit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...