我正在使用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
答案 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);
}
出于好奇,为什么不使用设计师添加这些?