qt c++ sub 代码
时间: 2023-12-29 10:04:51 浏览: 119
以下是一个简单的 Qt C++ 子窗口(Subwindow)的示例代码:
```cpp
#include <QtWidgets>
class SubWindow : public QMainWindow
{
public:
SubWindow(QWidget *parent = nullptr) : QMainWindow(parent)
{
// 设置窗口标题和大小
setWindowTitle(tr("Sub Window"));
setFixedSize(400, 300);
// 创建一个文本编辑器
m_textEdit = new QTextEdit(this);
setCentralWidget(m_textEdit);
// 创建一个工具栏
QToolBar *toolBar = addToolBar(tr("File"));
QAction *newAction = toolBar->addAction(tr("New"));
connect(newAction, &QAction::triggered, this, &SubWindow::newFile);
QAction *saveAction = toolBar->addAction(tr("Save"));
connect(saveAction, &QAction::triggered, this, &SubWindow::saveFile);
}
private slots:
void newFile()
{
// 清空文本编辑器
m_textEdit->clear();
}
void saveFile()
{
// 弹出保存文件对话框
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), "", tr("Text Files (*.txt)"));
if (fileName.isEmpty()) {
return;
}
// 打开文件并写入文本内容
QFile file(fileName);
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream out(&file);
out << m_textEdit->toPlainText();
file.close();
}
}
private:
QTextEdit *m_textEdit;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建一个主窗口和一个子窗口
QMainWindow *mainWindow = new QMainWindow;
SubWindow *subWindow = new SubWindow(mainWindow);
mainWindow->setCentralWidget(subWindow);
// 在主窗口中添加一个菜单和一个动作
QMenu *fileMenu = mainWindow->menuBar()->addMenu(tr("File"));
QAction *newAction = fileMenu->addAction(tr("New"));
connect(newAction, &QAction::triggered, subWindow, &SubWindow::newFile);
// 显示主窗口和子窗口
mainWindow->show();
subWindow->show();
return app.exec();
}
```
这段代码创建了一个主窗口和一个子窗口,子窗口中包含一个文本编辑器和一个工具栏,主窗口中包含一个菜单和一个动作。用户可以在子窗口中编辑文本内容,并且可以通过工具栏和菜单来执行一些操作,比如新建和保存文件。
阅读全文