QTreeWidget 底部的小面板

Small panel at the bottom of a QTreeWidget

我正在使用 QT 5.4.2 并尝试在底部创建一个小面板 一个子类化的 QTreeWidget。 这是代码:

void HmiScenarioAutoscriptPanel::searchEmitter() {
    QWidget *child = new QWidget(ui->emitterTreeWidget);
    //QMainWindow* child = new QMainWindow;
    QLabel *labelSearch = new QLabel("Search");
    QLineEdit *lineSearch = new QLineEdit();

    lineSearch->setFixedSize(100, 20);

    QHBoxLayout* layout = new QHBoxLayout(ui->emitterTreeWidget);
    layout->setAlignment(Qt::AlignBottom);

    layout->addWidget(child);
   layout->addWidget(labelSearch);
   layout->addWidget(lineSearch);

}

标签和搜索字段正确显示在树的底部, 但是字段与树节点重叠(见下图)。

知道为什么会出现这种行为吗?

再见 阿尔夫

enter image description here

不建议在树形控件上设置布局。它就像按钮、标签等其他控件一样。

我看到您正在使用设计器。在树形小部件下添加一个空白小部件(searchWidget)然后

void HmiScenarioAutoscriptPanel::searchEmitter() {
    QWidget *child = new QWidget(ui->searchWidget);
    //QMainWindow* child = new QMainWindow;
    QLabel *labelSearch = new QLabel("Search", searchWidget);
    QLineEdit *lineSearch = new QLineEdit(searchWidget);

    lineSearch->setFixedSize(100, 20);

    QHBoxLayout* layout = new QHBoxLayout(ui->searchWidget);
    layout->setAlignment(Qt::AlignBottom);

    layout->addWidget(child);
   layout->addWidget(labelSearch);
   layout->addWidget(lineSearch);    
}

出于好奇,你为什么不使用设计器添加这些?