QLineEdit焦点事件

Fin*_*der 0 qt qt4

我有两个小部件mainwindow123和二等.在我的MainWidget.cpp中有一个lineedit和button字段.最初我可以将焦点设置在行编辑上.但是在来自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();

     }
Run Code Online (Sandbox Code Playgroud)

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();
}
Run Code Online (Sandbox Code Playgroud)

Kam*_*mek 5

这是因为你点击它后你的焦点转到了按钮.你可以通过以下方式实现:

  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. 连接按钮单击信号到QLineEdit的setFocus插槽