QT 跳到子窗口选中某一个lineEdit
时间: 2023-07-04 15:06:05 浏览: 41
可以通过在子窗口中定义一个 `QLineEdit` 对象,然后在主窗口中连接一个槽函数来实现这个功能。具体步骤如下:
1. 在子窗口的构造函数中定义一个 `QLineEdit` 对象,例如:
```
MySubWindow::MySubWindow(QWidget *parent) : QWidget(parent)
{
// 创建 QLineEdit 对象
m_lineEdit = new QLineEdit(this);
}
```
2. 在主窗口中定义一个槽函数,用于接收子窗口发送的信号,并将焦点设置到子窗口的 `QLineEdit` 对象上,例如:
```
MyMainWindow::onJumpToLineEdit()
{
// 将焦点设置到子窗口的 QLineEdit 上
m_subWindow->m_lineEdit->setFocus();
}
```
3. 在子窗口中定义一个信号,用于通知主窗口跳转到指定的 `QLineEdit` 对象,例如:
```
class MySubWindow : public QWidget
{
Q_OBJECT
signals:
void jumpToLineEdit();
private:
QLineEdit *m_lineEdit;
};
```
4. 在子窗口的某个事件处理函数中触发信号,例如:
```
void MySubWindow::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Return) {
// 发送 jumpToLineEdit 信号,通知主窗口跳转到 QLineEdit
emit jumpToLineEdit();
}
}
```
这样,当子窗口接收到 Enter 键的按下事件时,就会触发 `jumpToLineEdit` 信号,通知主窗口将焦点设置到子窗口的 `QLineEdit` 上。