QTreeWidget底部的小面板

时间:2016-02-22 17:11:34

标签: qt search add 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);

}

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

知道这种行为的原因吗?

侨 ALF

enter image description here

1 个答案:

答案 0 :(得分:0)

不建议在树窗口小部件上设置布局。它就像其他控件,如按钮,标签等。

我看到你正在使用设计师。在树窗口小部件下添加一个空白窗口小部件(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);    
}

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