2023年12月6日发(作者:)

QT程序详解(以MDI为案例)

  传统的应用程序设计中有多文档界面(Multi-document Interface,MDI)应用程序, 为设计 MDI 应用程序提供了支持。

目录

运行效果如下:

界面如下:

界面如下:

//在C++里,任何窗体或界面组件都是用类封装的,一个类一般有一个头文件(.h文件)和一个源程序文件(.cpp文件)

//.h文件是所设计的窗体类的头文件,.cpp文件是定义类的实现文件

//是主程序入口文件

#include "qwmainwindow.h"//引入所设计的窗体类的头文件

#include //QGuiApplication的子类,为基于QWidget的应用程序提供支持,包括界面的初始化等

//在有中文的类,头文件声明中加上 #pragma execution_character_set("utf-8") 解决汉子乱码问题/

int main(int argc, char* argv[])

{

QApplication a(argc, argv);//定义并创建应用程序/定义一个实例a,也就是应用程序对象

MainWindow w;//定义并创建窗口/定义一个MainWindow类的变量w,MainWindow是本实例设计的窗口的类名(基类:QMainWindow/QWidget/QDialog)

();//显示窗口

return ();//应用程序运行

}

qformdoc.h

#ifndef QFORMDOC_H

#define QFORMDOC_H

//头文件定义时的一个常用方法,为了避免重复包含同一个头文件。#pragma once具有类似的作用

//(1)防止重复定义的错误;

//(2)如果这个头文件变化,那么所有include这个文件的源文件都需要重新编译,即使没有去使用里面的任何内容

#include

//窗体继承的基类为QWidget,基类还有QMainWindow、QDialog,共三种

//一.QMainWindow:

//二.QWidget

//三.QDialog

//QMainWindow类提供一个带有菜单条,工具条和一个状态条的主应用程序窗口。主窗口通常提供一个大的中央窗口部件,以及周围菜单,工具条,和一个状态栏。Q

//QWidet类是所有用户界面对象的基类,窗口部件是用户界面的一个基本单元,它从窗口系统接收鼠标,键盘和其他消息,并在屏幕上绘制自己。一个窗口部件可以被

//QDialog类是对话框窗口的基类,对话框窗口主要用于短期任务和用户进行短期通讯的顶级窗口,QDialog可以是模态对话框或者是非模态对话框。QDialog支持扩展并

namespace Ui { class QFormDoc; }

//声明一个名称为Ui的命名空间,包含一个类QFormDoc,这个类QFormDoc并不是本文件里定义的QFormDoc,而是ui_**文件里定义的类,用于描述界面组件的

//

//QFormDoc类的定义

class QFormDoc : public QWidget//窗口类

//窗体类继承的基类为QWidget

//在C++里,任何窗体或界面组件都是用类封装的,一个类一般有一个头文件(.h文件)和一个源程序文件(.cpp文件)

//.h文件是所设计的窗体类的头文件,.cpp文件是定义类的实现文件

{

Q_OBJECT//使用宏Q_OBJECT,这是使用Qt的信号与槽机制的类都必须加入的一个宏

private://私有成员

QString mCurrentFile; //当前文件

bool mFileOpened = false; //文件已打开

public://公共成员

explicit QFormDoc(QWidget* parent = 0);//构造函数

//explicit修饰构造函数,禁止隐式类型转换

//默认值为0,表明没有父窗口

//QWidget的构造函数有两个参数:“QWidget * parent = 0”和“Qt::WindowFlags f = 0”。

~QFormDoc();//析构函数

void loadFromFile(QString& aFileName); //打开文件

QString currentFileName();//返回当前文件名

bool isFileOpened();//文件已经打开

void setEditFont();//设置字体

void textCut(); //cut

void textCopy(); //copy

void textPaste(); //paste

private:

Ui::QFormDoc* ui;

};

//前面一个参数是指父窗口部件,默认值为0,表明没有父窗口;后面一个参数是Qt::WindowFlags的枚举类型,分为窗口类型(窗口的样式)和窗口标志(更改窗口的

//定义一个指针,这个指针是用前面声明的namespace Ui里的QFormDoc类定义的,所以指针ui指向可视化设计的界面,后面会看到要访问界面上的组件,都需要通过这个

#endif // QFORMDOC_H

#include "qformdoc.h"//引入窗体类的头文件

#include "ui_qformdoc.h"//在对文件编译后生成的一个文件,引入到此

#include //垂直布局

#include //垂直布局

#include //QFile 类支持对文件进行读取、写入、删除、重命名、拷贝等操作,它既可以操作文件文件,也可以操作二进制文件。

#include //QTextStream提供了读写文本文件的接口

#include //QFontDialog类用于提供选择字体的对话框部件

#include //文件目录操作相关的类:用于提取文件的信息,包括路径/文件名/删除文件等功能

#include //QMessageBox类提供一个模态对话框,用于通知用户或询问用户一个问题并接收答案。

QFormDoc::QFormDoc(QWidget* parent) : QWidget(parent), ui(new Ui::QFormDoc)

//构造函数:执行父类QWidget的构造函数,创建一个Ui::QFormDoc类的对象ui,这个ui就是QFormDoc的private部分定义的指针变量ui

{

ui->setupUi(this);

//执行了Ui::QFormDoc类的setupUi()函数,这个函数实现窗口的生成与各种属性的设置/信号与槽的关联

this->setWindowTitle("New Doc"); //窗口标题

this->setAttribute(Qt::WA_DeleteOnClose); //关闭时自动删除

}

QFormDoc::~QFormDoc()//析构函数

{

// QMessageBox::information(this,"信息","文档窗口被释放");

delete ui;//删除用new创建的指针ui

}

void QFormDoc::loadFromFile(QString& aFileName)

{//打开文件

QFile aFile(aFileName); //以文件方式读出

//创建QFile对象时可以在构造函数里指定文件名,也可以用setFileName()指定文件

if ((QIODevice::ReadOnly | QIODevice::Text)) //以只读文本方式打开文件

{

QTextStream aStream(&aFile); //用文本流读取文件

ui->plainTextEdit->clear();//清空

ui->plainTextEdit->setPlainText(l()); //读取文本文件

();//关闭文件

mCurrentFile = aFileName;//保存当前文件名

QFileInfo fileInfo(aFileName); //文件信息

//创建QFile对象时可以指定一个文件名作为当前文件,也可以用setFile()指定文件

QString str = me(); //返回去除路径后的文件名

this->setWindowTitle(str);

mFileOpened = true;

}

}

QString QFormDoc::currentFileName()

{

return mCurrentFile;

}

bool QFormDoc::isFileOpened()

{ //文件是否已打开

return mFileOpened;

}

void QFormDoc::setEditFont()

{

QFont font;

font = ui->plainTextEdit->font();//获取控件的font

bool ok;//如果ok参数不为null,则在用户单击“确定”时将其引用的值设置为true,在用户单击“取消”的情况下将其设置为false。

font = QFontDialog::getFont(&ok, font);//执行模式字体对话框并返回字体。如果用户单击“确定”,则返回所选字体。 如果用户单击“取消”,则返回初始字体。

ui->plainTextEdit->setFont(font);

}

void QFormDoc::textCut()

{{ ui->plainTextEdit->cut();}void QFormDoc::textCopy(){ ui->plainTextEdit->copy();}void QFormDoc::textPaste(){ ui->plainTextEdit->paste();}ui_qformdoc/********************************************************************************** Form generated from reading UI file ''**** Created by: Qt User Interface Compiler version 5.12.1**** WARNING! All changes made in this file will be lost when recompiling UI file!********************************************************************************/#ifndef UI_QFORMDOC_H#define UI_QFORMDOC_H#include #include #include #include #include QT_BEGIN_NAMESPACEclass Ui_QFormDoc{public: QVBoxLayout *verticalLayout; QPlainTextEdit *plainTextEdit; void setupUi(QWidget *QFormDoc) { if (QFormDoc->objectName().isEmpty()) QFormDoc->setObjectName(QString::fromUtf8("QFormDoc")); QFormDoc->resize(931, 572); QFont font; ntSize(10); QFormDoc->setFont(font); verticalLayout = new QVBoxLayout(QFormDoc); verticalLayout->setSpacing(3); verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); verticalLayout->setContentsMargins(3, 3, 3, 3); plainTextEdit = new QPlainTextEdit(QFormDoc); plainTextEdit->setObjectName(QString::fromUtf8("plainTextEdit")); QFont font1; ily(QString::fromUtf8("3452562")); plainTextEdit->setFont(font1); verticalLayout->addWidget(plainTextEdit); retranslateUi(QFormDoc);

QMetaObject::connectSlotsByName(QFormDoc);

} // setupUi

void retranslateUi(QWidget *QFormDoc)

{

QFormDoc->setWindowTitle(QApplication::translate("QFormDoc", "new document", nullptr));

} // retranslateUi

};

namespace Ui {

class QFormDoc: public Ui_QFormDoc {};

} // namespace Ui

QT_END_NAMESPACE

#endif // UI_QFORMDOC_H

qwmainwindow.h

#ifndef QWMAINWINDOW_H

#define QWMAINWINDOW_H

#include

#include "qformdoc.h"

#include

//QMdiArea一般使用于主窗口中,用于容纳多个子窗口QMdiSubWindow

//MDI应用程序就是再主窗口里创建多个同类型的MDI子窗口,这些MDI子窗口在主窗口里显示,并共享主窗口上的工具栏和菜单等操作功能,主窗口上的操作都针对当前活

namespace Ui { class QWMainWindow; }

class QWMainWindow : public QMainWindow//窗口类继承的基类为QMainWindow

{

Q_OBJECT

private:

void closeEvent(QCloseEvent* event); //主窗口关闭时关闭所有子窗口

public://构造函数/析构函数

explicit QWMainWindow(QWidget* parent = 0);

~QWMainWindow();

private slots:

void on_actDoc_Open_triggered(); //打开文件

void on_actDoc_New_triggered(); //新建文件

void on_actCut_triggered(); //cut

void on_actFont_triggered(); //设置字体

void on_actCopy_triggered(); //copy

void on_actPaste_triggered(); //paste

void on_mdiArea_subWindowActivated(QMdiSubWindow* arg1); //子窗口被激活

void on_actViewMode_triggered(bool checked); //MDI 模式设置

void on_actCascade_triggered(); //级联形式显示子窗口

void on_actTile_triggered(); //平铺形式显示子窗口

void on_actCloseALL_triggered(); //关闭全部子窗口

private:

Ui::QWMainWindow* ui;

};

#endif // QWMAINWINDOW_H

#include "qwmainwindow.h"

#include "ui_qwmainwindow.h"

#include

#include

#include

void QWMainWindow::closeEvent(QCloseEvent* event)

{

ui->mdiArea->closeAllSubWindows(); //关闭所有子窗口

event->accept();

}

QWMainWindow::QWMainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::QWMainWindow)

{

ui->setupUi(this);

this->setCentralWidget(ui->mdiArea);// 一个Qt主窗口应用程序必须有一个中心窗口部件(Central Widget)。当你采用Qt Designer创建主窗口时,默认情况下,系统

this->setWindowState(Qt::WindowMaximized); //窗口最大化显示

ui->mainToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);//Qt ToolBar工具栏里同时显示图标和文字

// this->setAutoFillBackground(true);

}

QWMainWindow::~QWMainWindow()

{

delete ui;

}

void QWMainWindow::on_actDoc_Open_triggered()

{//打开文件

//必须先获取当前MDI子窗口,再使用打开文件对话框,否则无法获得活动的子窗口

bool needNew = false;// 是否需要新建子窗口

QFormDoc* formDoc;

{

needNew = formDoc->isFileOpened();//判断是否打开了文件文件已经打开

}

else

needNew = true;

QString curPath = QDir::currentPath();//返回当前目录名称

//QDir用于操作路径名、访问有关路径和文件的信息以及操作底层文件系统。它也可以用来访问Qt的资源系统。

QString aFileName = QFileDialog::getOpenFileName(this, tr("打开一个文件"), curPath,"C程序文件(*.h *cpp);;文本文件(*.txt);;所有文件(*.*)");

//使用QFileDialog的静态函数创建了一个模态对话框。该对话框初始状态会显示"/curPath"目录中的内容

//并且只会展示那些与字符串中指定的格式相匹配文件。对话框的父亲被设为this,并且窗口标题为"打开一个文件”,

if (y())

return; //如果未选择文件,退出

if (needNew) //需要新建子窗口

{

formDoc = new QFormDoc(this);//指定父窗口,必须在父窗口为Widget窗口提供一个显示区域

ui->mdiArea->addSubWindow(formDoc);

}

formDoc->loadFromFile(aFileName); //打开文件

formDoc->show(); //在单独的窗口中显示

ui->actCut->setEnabled(true);

ui->actCopy->setEnabled(true);

ui->actPaste->setEnabled(true);

ui->actFont->setEnabled(true);

if (ui->mdiArea->subWindowList().count() > 0) //如果有打开的主窗口,获取活动窗口/QMdiSubWindow::subWindowList()可以获得子窗口对象列表,从而可以判断子

formDoc = (QFormDoc*)ui->mdiArea->activeSubWindow()->widget();//如果有MDI子窗口,则总有一个活动窗口,通过QMdiSubWindow::activeSubWindow()可以获

ui->actFont->setEnabled(true);

}

void QWMainWindow::on_actDoc_New_triggered()

{ //新建文件

QFormDoc* formDoc = new QFormDoc(this); //新建子窗口

ui->mdiArea->addSubWindow(formDoc); //文档窗口添加到MDI

formDoc->show(); //在单独的窗口中显示

ui->actCut->setEnabled(true);

ui->actCopy->setEnabled(true);

ui->actPaste->setEnabled(true);

ui->actFont->setEnabled(true);

}

void QWMainWindow::on_actCut_triggered()

{ //cut

QFormDoc* formDoc = (QFormDoc*)ui->mdiArea->activeSubWindow()->widget();//获得当前活动子窗口

formDoc->textCut();

}

void QWMainWindow::on_actFont_triggered()

{//设置字体

QFormDoc* formDoc = (QFormDoc*)ui->mdiArea->activeSubWindow()->widget();

formDoc->setEditFont();

}

void QWMainWindow::on_actCopy_triggered()

{//copy

QFormDoc* formDoc = (QFormDoc*)ui->mdiArea->activeSubWindow()->widget();

formDoc->textCopy();

}

void QWMainWindow::on_actPaste_triggered()

{//paste

QFormDoc* formDoc = (QFormDoc*)ui->mdiArea->activeSubWindow()->widget();

formDoc->textPaste();

}

void QWMainWindow::on_mdiArea_subWindowActivated(QMdiSubWindow* arg1)

{//当前活动子窗口切换时

Q_UNUSED(arg1);//宏 Q_UNUSED消除因定义但却未引用的局部变量而引起的警告

if (ui->mdiArea->subWindowList().count() == 0)

{ //若子窗口个数为零

ui->actCut->setEnabled(false);

ui->actCopy->setEnabled(false);

ui->actPaste->setEnabled(false);

ui->actFont->setEnabled(false);

ui->statusBar->clearMessage();

}

else

{

QFormDoc* formDoc = static_cast(ui->mdiArea->activeSubWindow()->widget());

ui->statusBar->showMessage(formDoc->currentFileName()); //显示主窗口的文件名

}

}

void QWMainWindow::on_actViewMode_triggered(bool checked)

{//MDI 显示模式

if (checked) //Tab多页显示模式

{

ui->mdiArea->setViewMode(QMdiArea::TabbedView); //Tab多页显示模式

ui->mdiArea->setTabsClosable(true); //页面可关闭

ui->actCascade->setEnabled(false);

ui->actTile->setEnabled(false);

ui->actTile->setEnabled(false);

}

else 子窗口模式

{

ui->mdiArea->setViewMode(QMdiArea::SubWindowView); //子窗口模式

ui->actCascade->setEnabled(true); //

ui->actTile->setEnabled(true); //

}

}

void QWMainWindow::on_actCascade_triggered()

{ //窗口级联展开

ui->mdiArea->cascadeSubWindows();

}

void QWMainWindow::on_actTile_triggered()

{//平铺展开

ui->mdiArea->tileSubWindows();

}

void QWMainWindow::on_actCloseALL_triggered()

{//关闭全部子窗口

ui->mdiArea->closeAllSubWindows();

}

ui_qwmainwindow

/********************************************************************************

** Form generated from reading UI file ''

**

** Created by: Qt User Interface Compiler version 5.9.1

**

** WARNING! All changes made in this file will be lost when recompiling UI file!

********************************************************************************/

#ifndef UI_QWMAINWINDOW_H

#define UI_QWMAINWINDOW_H

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

QT_BEGIN_NAMESPACE

class Ui_QWMainWindow

{

public:

QAction *actDoc_New;

QAction *actQuit;

QAction *actDoc_Open;

QAction *actFont;

QAction *actCut;

QAction *actCopy;

QAction *actPaste;

QAction *actViewMode;

QAction *actCascade; QAction *actCascade; QAction *actTile; QAction *actCloseALL; QWidget *centralWidget; QMdiArea *mdiArea; QToolBar *mainToolBar; QStatusBar *statusBar; void setupUi(QMainWindow *QWMainWindow) { if (QWMainWindow->objectName().isEmpty()) QWMainWindow->setObjectName(QStringLiteral("QWMainWindow")); QWMainWindow->resize(388, 249); actDoc_New = new QAction(QWMainWindow); actDoc_New->setObjectName(QStringLiteral("actDoc_New")); QIcon icon; e(QStringLiteral(":/images/images/"), QSize(), QIcon::Normal, QIcon::Off); actDoc_New->setIcon(icon); actQuit = new QAction(QWMainWindow); actQuit->setObjectName(QStringLiteral("actQuit")); QIcon icon1; e(QStringLiteral(":/images/images/"), QSize(), QIcon::Normal, QIcon::Off); actQuit->setIcon(icon1); actDoc_Open = new QAction(QWMainWindow); actDoc_Open->setObjectName(QStringLiteral("actDoc_Open")); QIcon icon2; e(QStringLiteral(":/images/images/"), QSize(), QIcon::Normal, QIcon::Off); actDoc_Open->setIcon(icon2); actFont = new QAction(QWMainWindow); actFont->setObjectName(QStringLiteral("actFont")); actFont->setEnabled(false); QIcon icon3; e(QStringLiteral(":/images/images/"), QSize(), QIcon::Normal, QIcon::Off); actFont->setIcon(icon3); actCut = new QAction(QWMainWindow); actCut->setObjectName(QStringLiteral("actCut")); actCut->setEnabled(false); QIcon icon4; e(QStringLiteral(":/images/images/"), QSize(), QIcon::Normal, QIcon::Off); actCut->setIcon(icon4); actCopy = new QAction(QWMainWindow); actCopy->setObjectName(QStringLiteral("actCopy")); actCopy->setEnabled(false); QIcon icon5; e(QStringLiteral(":/images/images/"), QSize(), QIcon::Normal, QIcon::Off); actCopy->setIcon(icon5); actPaste = new QAction(QWMainWindow); actPaste->setObjectName(QStringLiteral("actPaste")); actPaste->setEnabled(false); QIcon icon6; e(QStringLiteral(":/images/images/"), QSize(), QIcon::Normal, QIcon::Off); actPaste->setIcon(icon6); actViewMode = new QAction(QWMainWindow); actViewMode->setObjectName(QStringLiteral("actViewMode")); actViewMode->setCheckable(true); QIcon icon7; e(QStringLiteral(":/images/images/"), QSize(), QIcon::Normal, QIcon::Off); actViewMode->setIcon(icon7); actCascade = new QAction(QWMainWindow); actCascade->setObjectName(QStringLiteral("actCascade")); QIcon icon8; e(QStringLiteral(":/images/images/"), QSize(), QIcon::Normal, QIcon::Off); actCascade->setIcon(icon8); actTile = new QAction(QWMainWindow); actTile->setObjectName(QStringLiteral("actTile")); QIcon icon9; QIcon icon9; e(QStringLiteral(":/images/images/"), QSize(), QIcon::Normal, QIcon::Off); actTile->setIcon(icon9); actCloseALL = new QAction(QWMainWindow); actCloseALL->setObjectName(QStringLiteral("actCloseALL")); QIcon icon10; e(QStringLiteral(":/images/images/"), QSize(), QIcon::Normal, QIcon::Off); actCloseALL->setIcon(icon10); centralWidget = new QWidget(QWMainWindow); centralWidget->setObjectName(QStringLiteral("centralWidget")); mdiArea = new QMdiArea(centralWidget); mdiArea->setObjectName(QStringLiteral("mdiArea")); mdiArea->setGeometry(QRect(45, 10, 291, 176)); QWMainWindow->setCentralWidget(centralWidget); mainToolBar = new QToolBar(QWMainWindow); mainToolBar->setObjectName(QStringLiteral("mainToolBar")); mainToolBar->setAutoFillBackground(true); mainToolBar->setToolButtonStyle(Qt::ToolButtonIconOnly); QWMainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar); statusBar = new QStatusBar(QWMainWindow); statusBar->setObjectName(QStringLiteral("statusBar")); QWMainWindow->setStatusBar(statusBar); mainToolBar->addAction(actDoc_New); mainToolBar->addAction(actDoc_Open); mainToolBar->addAction(actCloseALL); mainToolBar->addSeparator(); mainToolBar->addAction(actCut); mainToolBar->addAction(actCopy); mainToolBar->addAction(actPaste); mainToolBar->addAction(actFont); mainToolBar->addSeparator(); mainToolBar->addAction(actViewMode); mainToolBar->addAction(actCascade); mainToolBar->addAction(actTile); mainToolBar->addSeparator(); mainToolBar->addAction(actQuit); retranslateUi(QWMainWindow); QObject::connect(actQuit, SIGNAL(triggered()), QWMainWindow, SLOT(close())); QMetaObject::connectSlotsByName(QWMainWindow); } // setupUi void retranslateUi(QMainWindow *QWMainWindow) { QWMainWindow->setWindowTitle(QApplication::translate("QWMainWindow", "MDI345272224347224255272217", Q_NULLPTR)); actDoc_New->setText(QApplication::translate("QWMainWindow", "3462262662262", Q_NULLPTR));#ifndef QT_NO_TOOLTIP#endif // QT_NO_TOOLTIP actQuit->setText(QApplication::translate("QWMainWindow", "351272", Q_NULLPTR));#ifndef QT_NO_TOOLTIP actQuit->setToolTip(QApplication::translate("QWMainWindow", "3554347263273347273237", Q_NULLPTR));#endif // QT_NO_TOOLTIP actDoc_Open->setText(QApplication::translate("QWMainWindow", "3462246241243", Q_NULLPTR));#ifndef QT_NO_TOOLTIP actDoc_Open->setToolTip(QApplication::translate("QWMainWindow", "3462246241243", Q_NULLPTR));#endif // QT_NO_TOOLTIP actFont->setText(QApplication::translate("QWMainWindow", "345255227344275223355256", Q_NULLPTR));#ifndef QT_NO_TOOLTIP actFont->setToolTip(QApplication::translate("QWMainWindow", "345255227344275223355256", Q_NULLPTR));#endif // QT_NO_TOOLTIP actCut->setText(QApplication::translate("QWMainWindow", "3452207", Q_NULLPTR));#ifndef QT_NO_TOOLTIP actCut->setToolTip(QApplication::translate("QWMainWindow", "3452207", Q_NULLPTR)); actDoc_New->setToolTip(QApplication::translate("QWMainWindow", "346226266226247252227345217243", Q_N actCut->setToolTip(QApplication::translate("QWMainWindow", "3452207", Q_NULLPTR));#endif // QT_NO_TOOLTIP actCopy->setText(QApplication::translate("QWMainWindow", "3452442", Q_NULLPTR));#ifndef QT_NO_TOOLTIP actCopy->setToolTip(QApplication::translate("QWMainWindow", "3452442", Q_NULLPTR));#endif // QT_NO_TOOLTIP actPaste->setText(QApplication::translate("QWMainWindow", "34726223", Q_NULLPTR));#ifndef QT_NO_TOOLTIP actPaste->setToolTip(QApplication::translate("QWMainWindow", "34726223", Q_NULLPTR));#endif // QT_NO_TOOLTIP actViewMode->setText(QApplication::translate("QWMainWindow", "MDI346257", Q_NULLPTR));#ifndef QT_NO_TOOLTIP#endif // QT_NO_TOOLTIP actCascade->setText(QApplication::translate("QWMainWindow", "3472722473500", Q_NULLPTR));#ifndef QT_NO_TOOLTIP#endif // QT_NO_TOOLTIP actTile->setText(QApplication::translate("QWMainWindow", "34527723452600", Q_NULLPTR));#ifndef QT_NO_TOOLTIP#endif // QT_NO_TOOLTIP actCloseALL->setText(QApplication::translate("QWMainWindow", "345255345250", Q_NULLPTR));#ifndef QT_NO_TOOLTIP#endif // QT_NO_TOOLTIP } // retranslateUi};namespace Ui { class QWMainWindow: public Ui_QWMainWindow {};} // namespace UiQT_END_NAMESPACE#endif // UI_QWMAINWINDOW_H actViewMode->setToolTip(QApplication::translate("QWMainWindow", "34725222734523462153512 actCascade->setToolTip(QApplication::translate("QWMainWindow", "34725222734522473500", Q_NU actTile->setToolTip(QApplication::translate("QWMainWindow", "347252227345226335600", Q_NULLPT actCloseALL->setToolTip(QApplication::translate("QWMainWindow", "3452553462345217243", Q_N