Qt5开发及实例 14章 多国语言国际化
用C~(++) Builder开发多国语言用户界面程序

l 多 国语 言 用户 界 面程 序 设计
11 使 用 Reo reDL i r 来 实 现 . su c L W z d a
在前 面 的工 作 中 ,该 程 序的语 种 可 以做 到 与操 作 系统 一 致 , 有些 时候 , 但 如有外 挂支持 其他语 种 的平 台时 , 我们 可能 希 望 应用 软件 支持 与 操作 系统 不 同的语 种 , ”B i e 也 提供 了 C ul r d 动 态多语种 之 间的切换 功能 。 其具 体实 现可根据 不 同使 用要 求
为 了实 现语 种切 换 . 们在 编 写该 应用 程 序 时 , 我 在项 目中
添 加 一 个 位 于 C B i e 安 装 目 录 的 sm lsa p/ ih dt ul r d a pe/ p sR cE i 子 目录 下 的 R lip s ent a ,在 该 文 件 中 实 现 了 几 个 用 于 动 态 语 种 .
摘 要 : 用 C B i e 来 开 发 多 国语 言 界 面 应 用 程 序 , 户 无 须 重 新 编 译 即 可 方 便 快 速 地 实 现 界 面 和 数 据 的 多语 利 ul r d 用 言切 换 显 示 。详 细 介 绍 了使 用 C ule ”B i r自行 提 供 的 方 法及 有 关控 件 的 两 种 实 现 方 法 , 给 出 了一 个 可 动 态 添 加 多 d 并
而有 所不 同 。下 面举一个 简单 的例 子 , 该程序 有一 个选 择语种
的菜单 , 我们 要求 做 到在 菜单 中选 择 不 同语种 时 , 序 的界 面 程
能切换 到相应 的语种 。
L nu g 列表框中选择相应的语种 , ag ae 然后单击 N x按钮, et 直至结束。 这 时 C ule 将 自动建 立一 个 DL B i r d L项 目,该项 目包 含 了所 有 的表 单和一 个资 源文件 。我们可 以方便 地进行 修改 , 使 各项 显示信 息 如表单 和控 件 的 C pi a t n与 H n 等 属性 、 源 文 o it 资 件 中的 串表 等 内容 换成相 应 的语 言表示 。
Qt 5开发及实例 第14章 Qt 5操作Office实例

其中,document是一个表示当前活动文档的QAxObject对象。 同样,在使用完Word文档之后也要进行释放资源和关闭进程的善后处理,如下: document->dynamicCall("Close()"); myword->dynamicCall("Quit()"); //关闭文档 //退出进程
这样,就实现了对Excel各个级别对象的灵活操作和使用。 为避免资源无谓消耗和程序死锁,通常在编程结束时还必须通过语句释放该Excel进程所占据的 系统资源,如下:
workbook->dynamicCall("Close()"); myexcel->dynamicCall("Quit()"); //关闭工作簿 //退出进程
序 号 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ label InExcelLineEdit writeExcelPushButton readExcelPushButton OutExcelLabel label_2 InWordLineEdit writeWordPushButton readWordPushButton OutWordLabel 名 称 类 型 QLabel QLineEdit QPushButton QPushButton QLabel QLabel QLineEdit QPushButton QPushButton QLabel 属性设置 text: Excel 读写; font: 微软雅黑,12 text: 我爱最新的 Qt 5.11 text: 写 入
对电子表格的基本读写,在构造方法中添加如下代码:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); myexcel = new QAxObject("Excel.Application"); myworks = myexcel->querySubObject("WorkBooks"); myworks->dynamicCall("Add"); workbook = myexcel->querySubObject("ActiveWorkBook"); mysheets = workbook->querySubObject("Sheets"); }
qt开发实例

qt开发实例QT开发实例QT是一款跨平台的C++应用程序开发框架,它提供了丰富的类库和工具,可以帮助开发者快速开发高质量的应用程序。
本文将介绍几个常见的QT开发实例,包括窗口应用程序、控制台应用程序、网络应用程序和数据库应用程序。
一、窗口应用程序窗口应用程序是QT中最常见的一种应用类型。
通过QT Creator可以轻松创建窗口应用程序,并且可以使用QT Designer来设计用户界面。
下面是一个简单的窗口应用程序示例:1. 创建一个新项目:在QT Creator中选择“File”->“New File or Project”,然后选择“Qt Widgets Application”模板。
2. 设计用户界面:使用QT Designer来设计用户界面,例如添加按钮、标签、文本框等控件。
3. 编写代码:在MainWindow.cpp文件中编写代码来处理用户交互事件。
例如,当用户点击按钮时,可以触发一个函数来执行特定操作。
二、控制台应用程序控制台应用程序是一种没有图形界面的命令行工具。
它通常被用于批处理任务或系统管理任务。
下面是一个简单的控制台应用程序示例:1. 创建一个新项目:在QT Creator中选择“File”->“New File or Project”,然后选择“Qt Console Application”模板。
2. 编写代码:在main.cpp文件中编写代码来处理命令行参数和执行任务。
例如,可以使用QT提供的QProcess类来执行外部命令。
三、网络应用程序网络应用程序是一种可以通过网络连接到远程服务器或其他设备的应用程序。
QT提供了丰富的类库和工具来帮助开发者创建网络应用程序。
下面是一个简单的网络应用程序示例:1. 创建一个新项目:在QT Creator中选择“File”->“New File or Project”,然后选择“Qt Widgets Application”模板。
如何进行代码国际化以适应不同语言环境

如何进行代码国际化以适应不同语言环境代码国际化是指对软件代码进行修改和调整,使其能够适应不同的语言环境和文化习惯。
随着全球化的发展,越来越多的软件需要适应不同的语言和地区,因此,代码国际化变得越来越重要。
本文将介绍如何进行代码国际化,以帮助开发人员更好地适应多种语言环境。
一、使用国际化字符串国际化字符串是指在代码中使用站位符代替直接使用文本,这样可以方便地替换不同语言环境下的文本内容。
开发人员可以将所有需要翻译的文本提取出来,放在一个翻译文件中,然后根据不同语言环境加载对应的翻译文件。
这样,在切换语言环境时,代码只需要替换翻译文件,而不需要修改代码本身。
例如,代码中的一个提示信息可以使用如下的方式表示:```String message = NSLocalizedString("Hello, World!", null);```其中,"Hello, World!"是一个国际化字符串,在加载对应的翻译文件后,会将其替换为具体的文本。
二、使用本地化时间和日期格式时间和日期格式在不同的语言和地区中常常存在差异。
为了适应不同的语言环境,开发人员需要使用本地化的时间和日期格式,而不是固定的格式。
对于Java开发人员来说,可以使用java.time.format包中的DateTimeFormatter类来进行本地化的时间和日期格式化。
例如,要将一个日期格式化为本地化的字符串,可以按照以下方式进行操作:```DateTimeFormatter formatter =DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL).withLocale(Local e.getDefault());String formattedDate = formatter.format(LocalDate.now());```其中,ofLocalizedDate()方法用于指定日期的样式,withLocale()方法用于指定语言和地区。
Qt5开发及实例(第2版)-第5章Qt

void ImgProcessor::ShowOpenFile() { fileName =QFileDialog::getOpenFileName(this); if(!fileName.isEmpty()) { if(showWidget->text->document()->isEmpty()) { loadFile(fileName); } else { ImgProcessor *newImgProcessor =new ImgProcessor; newImgProcessor->show(); newImgProcessor->loadFile(fileName); } } }
5.1.3 菜单与工具栏的实现
将程序中用到的图片保存到该工程下的debug文件夹中,运行程序,结果如 图5.3所示。
5.2 Qt 5文件操作功能
5.2.1 新建文件
下面将介绍如何实现新建一个空白文件的功能。 (1)打开“imgprocessor.h”头文件,添“protected slots:”变量: protected slots: void ShowNewFile(); (2)在createActions()函数的“"新建"动作”最后添加事件关联: connect(NewFileAction,SIGNAL(triggered()),this,SLOT(ShowNewFile())); (3)实现新建文件功能的函数ShowNewFile()如下: void ImgProcessor::ShowNewFile() { ImgProcessor *newImgProcessor =new ImgProcessor; newImgProcessor->show(); }
pyqt5 python 案例

pyqt5 python 案例1. PyQt5入门案例:创建一个简单的窗口在PyQt5中,可以使用QWidget类创建一个简单的窗口。
以下是一个简单的示例代码,可以创建一个空白的窗口。
```pythonimport sysfrom PyQt5.QtWidgets import QApplication, QWidgetif __name__ == '__main__':app = QApplication(sys.argv)window = QWidget()window.setWindowTitle('简单窗口')window.setGeometry(100, 100, 300, 200)window.show()sys.exit(app.exec_())```2. PyQt5案例:添加按钮和标签在PyQt5中,可以使用QPushButton和QLabel类来创建按钮和标签。
以下是一个示例代码,创建一个窗口,其中包含一个按钮和一个标签。
```pythonimport sysfrom PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabeldef button_clicked():label.setText('按钮被点击了!')if __name__ == '__main__':app = QApplication(sys.argv)window = QWidget()window.setWindowTitle('按钮和标签')window.setGeometry(100, 100, 300, 200)button = QPushButton('点击我', window)button.setGeometry(100, 50, 100, 30)button.clicked.connect(button_clicked)label = QLabel('标签', window)label.setGeometry(100, 100, 100, 30)window.show()sys.exit(app.exec_())```3. PyQt5案例:创建一个简单的登录窗口在PyQt5中,可以使用QLineEdit、QPushButton和QMessageBox类来创建一个简单的登录窗口。
第5章 使用Qt基本GUI工具

如果你是自己采用编译源代码的方式安装 Qt,并且没有设置快捷方式的话,你可以从 命令行启动 Qt Designer。方法是进入到命令行方式,或者打开一个终端,进入你 Qt 安装 的目录,以笔者的 Red Flag 为例,进入 /usr/bin/目录,输入 ./designer-qt4,即可启 动 Qt Designer。
注意,不同的 Linux 发行版的菜单设置以及可执行文件命名可能会有所不同。
3.设置 Qt Designer
启动 Qt Designer 后,首先需要需要对它进行设置。
Qt Designer 支持两种界面排列形式:一种是多个顶极窗口并列分布形式;一种是与
Windows 上常见的 IDE 类似的单窗口(即多停靠窗锚接)形式。 多个顶级窗口的样子如图 5-2 所示,Qt Designer 的各个子窗口都作为独立的顶级窗口
名称与图标
功能
新建窗体
打开窗体 保存窗体
表 5-3 示出了编辑工具栏功能说明。
表 5-3 编辑工具栏功能说明
名称与图标
功能
撤销上一次操作
恢复操作
剪切 复制 粘贴 放到后面 放到前面 编辑窗口部件 编辑信号/槽 编辑伙伴 编辑标签顺序
表 5-4 示出了窗体布局工具栏功能说明。
表 5-4 窗体布局工具栏功能说明
表 5-5 窗口部件的属性设置
部件类别
objectName
text(WindowTitle)
Widget
myForm
布局示例
Label
label_name
姓名
Label
label_phone
电话
LineEdit
lineEdit_name
python中qt5用法

python中qt5用法Qt是一个用于开发GUI应用程序的跨平台框架,它提供了丰富的库和工具,使得开发者可以轻松地创建美观、易用的应用程序。
Qt5是Qt框架的最新版本,提供了许多新功能和改进,使得开发者可以更加高效地开发应用程序。
一、安装Qt5库要使用Python中的Qt5,首先需要安装Qt5库。
可以通过安装PyQt5包来实现。
PyQt5是一个Python绑定库,它提供了Qt5库的大部分功能,使得Python开发者可以轻松地使用Qt5库来开发GUI应用程序。
在Linux上,可以使用包管理器来安装PyQt5。
例如,在Ubuntu 上可以使用以下命令来安装PyQt5:```shellsudoapt-getinstallpython3-pyqt5```在Windows上,可以从PyQt5官方网站下载安装程序,并按照说明进行安装。
二、创建GUI应用程序使用PyQt5创建GUI应用程序非常简单。
首先,需要导入PyQt5模块,并创建一个QWidget对象作为主窗口。
然后,可以使用布局、控件和事件处理函数来构建GUI界面。
以下是一个简单的示例程序,它创建一个包含一个标签和一个按钮的主窗口:```pythonimportsysfromPyQt5.QtWidgetsimportQApplication,QWidget,QLabel,QPus hButtonclassExample(QWidget):def__init__(self):super().__init__()self.initUI()definitUI(self):self.setGeometry(300,300,300,200)self.setWindowTitle('PyQt5Example')label=QLabel('Hello,PyQt5!',self)label.move(100,100)btn=QPushButton('Quit',self)btn.clicked.connect(QApplication.instance().quit)btn.move(100,40)self.show()if__name__=='__main__':app=QApplication(sys.argv)ex=Example()sys.exit(app.exec_())```这个程序创建了一个包含一个标签和一个按钮的主窗口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“.ts”文件,对其中的字符串逐条进行翻译并保存。 (3)利用lrelease工具处理翻译好的“.ts”文件,生成格式更为紧凑的 “.qm”文件。
14.2 实 例
14.2.1 实例1 (1)新建一个GUI工程TestHello.pro,然后在UI文件上添加两个按钮并分 别把文本修改为hello、china,如图所示。
14.2 实 例
(2)修改TestHello.pro文件,添加: TRANSLATIONS =TestHello.ts (3)编译。记住一定要先编译假如没有编译而进行下面的步骤, 生成的ts文件只是一个只有标题栏的框架。 (4) 编译完成后,假如是windows下就cmd ,假如是linux就开终 端。单击“开始”->“所有程序”->命令打开“Qt Commond Prompt”窗口,cd 进入TestHello.pro工程目录,执行命令: lupdate TestHello.pro (5)选择Qt自带的Linguist菜单项,并运行它,在主界面上选择文 件-->打开 设置源语言和目标语言, (6)在第二栏选择要翻译的字符串。在下面两行中输入对应的翻 译文字,然后单击上面的 按钮。 (7)选择文件-->发布菜单项,生成“testHello.qm”文件
(4)利用QTranslator::load()和QCoreApplication::installTranslator()读取对应的
翻译之后的资源文件。
14.1.2 翻译工作:“*.qm”文件的生成
(1)利用lupdate工具从源代码中扫描并提取需要翻译的字符串,生成“.ts” 文件。
(2)利用linguist工具来协助完成翻译工作,即打开前面用lupdate生成的
第十四章 Qt 5 多国语言国际化1 Nhomakorabea.1 概念
14.2 实例
第14章 Qt 5多国语言国际化
14.1 概念
14.1.1 国际化的支持的实现
(1)使用QString对象表示所有用户可见的文本。由于QString内部使用 Unicode编码实现,所以它可以用于表示所有需要向用户呈现的文本。 (2)使用tr()函数获取所有需要翻译的文本。在Qt的翻译机制下,QObject::tr() 函数可以帮程序员取得翻译之后的文本。 (3)使用QString::arg()组织动态文本。有些时候,一段文本需要由一些静态 文本和动态变量组合起来,如常见的情况“printf(“The value of i is: %d”, i)”。 QString m = tr(“Mission status: “ )+ x + tr(“of “) + y +tr(”are completed”);
14.2 实 例
(8)修改的源代码。 添加前,具体代码如下: #include <Qtranslator> int main(int argc, char *argv[]) { QApplication a(argc, argv); QTranslator *translator = new QTranslator; translator>load("D:/Qt/CH14/CH1401/TestHello/TestHello.qm"); a.installTranslator(translator); MainWindow w; w.show(); return a.exec(); }