用QPlainTextEdit对QTreeWidget进行输入,用C++实现
时间: 2024-05-06 22:19:34 浏览: 231
使用C++ QT模仿企业微信界面项目源码,用于学习QWidget的使用,含绘制,布局,信号,事件,重写,多线程,qss等技术
可能的实现:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTreeWidget treeWidget;
treeWidget.setHeaderLabels({"Name", "Value"});
QPlainTextEdit plainTextEdit;
plainTextEdit.setPlaceholderText("Enter name and value separated by a space");
QPushButton addButton("Add");
QObject::connect(&addButton, &QPushButton::clicked, [&](){
QStringList parts = plainTextEdit.toPlainText().split(' ');
if (parts.size() == 2) {
QTreeWidgetItem *item = new QTreeWidgetItem(&treeWidget);
item->setText(0, parts.at(0));
item->setText(1, parts.at(1));
}
});
QWidget widget;
QHBoxLayout *layout = new QHBoxLayout(&widget);
layout->addWidget(&plainTextEdit);
layout->addWidget(&addButton);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(&treeWidget);
mainLayout->addWidget(&widget);
QWidget window;
window.setLayout(mainLayout);
window.show();
return app.exec();
}
```
这个示例中,我们创建了一个`QTreeWidget`和一个`QPlainTextEdit`。`QPlainTextEdit`用来输入名称和值,`QTreeWidget`用来显示添加的项,每个项有两列,分别是名称和值。
我们还创建了一个`QPushButton`,用来触发添加操作。在按钮的点击事件处理函数中,我们从`QPlainTextEdit`中获取输入的文本,并使用空格分隔成两个部分,分别设置在`QTreeWidgetItem`的两个列中。如果输入不符合预期,我们什么也不做。
最后,我们将`QTreeWidget`和`QWidget`垂直排列,将`QPlainTextEdit`和`QPushButton`水平排列,并将它们放在一个垂直布局中。这个布局最终被设置为`QMainWindow`的主布局,并显示在屏幕上。
阅读全文