Qt Creator在窗口一添加一个行编辑器和按钮,在窗口二添加一个标签,点击按钮会收集行编辑器中的文本,将其设置为标签的文本并关闭窗口一,使用C++完成
时间: 2024-02-15 09:05:48 浏览: 67
好的,我可以为你提供实现代码,你可以在Qt Creator中创建一个新的Qt Widgets应用程序,然后将以下代码复制到mainwindow.cpp文件中:
```
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QVBoxLayout>
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 创建窗口一的控件
QLineEdit *lineEdit = new QLineEdit();
QPushButton *button = new QPushButton("确定");
// 创建布局并添加控件
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(lineEdit);
layout->addWidget(button);
// 创建窗口一并设置布局
QWidget *widget = new QWidget();
widget->setLayout(layout);
setCentralWidget(widget);
// 连接按钮点击事件
connect(button, &QPushButton::clicked, this, [=](){
// 获取行编辑器中的文本
QString text = lineEdit->text();
if(text.isEmpty()){
QMessageBox::warning(this, "警告", "文本不能为空!");
}else{
// 在窗口二中创建标签并设置文本
QLabel *label = new QLabel(text);
QWidget *window = new QWidget();
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(label);
window->setLayout(layout);
window->show();
// 关闭窗口一
close();
}
});
}
MainWindow::~MainWindow()
{
delete ui;
}
```
然后在mainwindow.h文件中添加以下声明:
```
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
```
这样就完成了窗口一和窗口二之间的交互。
阅读全文