QT在子窗口上输入一串字符,输入完成后将主窗口分割成两部分,右边展示刚刚输入的信息。
时间: 2023-09-17 08:13:34 浏览: 98
可以使用Qt中的QSplitter控件来实现主窗口的分割,并且将刚刚输入的信息展示在右边的区域中。
首先,在Qt的设计模式中,将主窗口中的布局设置为QVBoxLayout,然后在其中添加一个QSplitter控件。QSplitter控件可以通过拖动分割条来改变子窗口的大小和位置。
接下来,在QSplitter控件中添加两个QWidget子窗口,分别是左边的QWidget和右边的QWidget。左边的QWidget可以添加其他控件,用于用户输入一串字符。右边的QWidget可以添加一个QTextEdit控件,用于展示刚刚输入的信息。
最后,在左边的QWidget中添加一个QPushButton控件,用于触发输入完成的事件。在按钮的clicked信号中,获取用户在输入框中输入的字符串,并将其添加到右边的QTextEdit控件中即可。
以下是示例代码:
```
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QSplitter>
#include <QtWidgets/QWidget>
#include <QtWidgets/QTextEdit>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 创建主窗口
QMainWindow mainWindow;
mainWindow.setWindowTitle("Splitter Example");
QWidget *mainWidget = new QWidget(&mainWindow);
mainWindow.setCentralWidget(mainWidget);
// 创建主窗口的布局
QVBoxLayout *mainLayout = new QVBoxLayout(mainWidget);
QSplitter *splitter = new QSplitter(Qt::Horizontal, mainWidget);
mainLayout->addWidget(splitter);
// 创建左边的子窗口
QWidget *leftWidget = new QWidget(splitter);
QVBoxLayout *leftLayout = new QVBoxLayout(leftWidget);
QLineEdit *lineEdit = new QLineEdit(leftWidget);
leftLayout->addWidget(lineEdit);
QPushButton *button = new QPushButton("OK", leftWidget);
leftLayout->addWidget(button);
// 创建右边的子窗口
QWidget *rightWidget = new QWidget(splitter);
QVBoxLayout *rightLayout = new QVBoxLayout(rightWidget);
QTextEdit *textEdit = new QTextEdit(rightWidget);
rightLayout->addWidget(textEdit);
// 连接按钮的clicked信号
QObject::connect(button, &QPushButton::clicked, [&](){
QString inputString = lineEdit->text();
textEdit->append(inputString);
});
// 显示主窗口
mainWindow.show();
return a.exec();
}
```
阅读全文