让Qt程序显示中文右键菜单

工作环境:Window XP

1、Qt件“?:\QtSDK\Desktop\Qt\4.8.0\mingw\translations\qt_zh_CN.qm”复制一份到项目目录下

2、添加一个资源文件,命名为trans.qrc,将文件qt_zh_CN.qm添加至资源文件,保存所有文件。

3、修改主函数main.cpp代码如下,表示要加载相应的资源文件。

#include <QtGui/QApplication>
#include "mainwindow.h"
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
 
    QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));

 
 
    QTranslator trans;
    trans.load(":/qt_zh_CN");
    a.installTranslator(&trans);

 
 
    MainWindow w;
    w.show();
 
    return a.exec();
}
 
4、重新编译、运行程序即可。 

如果你想要在Qt应用程序中实现右键菜单的子菜单响应槽函数,可以按照以下步骤进行操作: 1. 创建一个菜单对象,并将其添加到应用程序的主窗口上。 2. 添加一个子菜单项,并为其设置一个唯一的标识符(ID)。 3. 为子菜单项添加一个信号槽连接,其中信号是 triggered(),槽是响应函数。 4. 在响应函数中编写逻辑代码以响应子菜单项的点击事件。 以下是一个示例代码,用于在Qt应用程序中实现右键菜单的子菜单响应槽函数: ```cpp // 创建一个菜单对象 QMenu *menu = new QMenu(this); // 添加一个子菜单项 QAction *subMenu = new QAction("Sub Menu", this); subMenu->setObjectName("subMenu"); subMenu->setData(QVariant(1)); // 将子菜单项添加到菜单中 menu->addAction(subMenu); // 为子菜单项添加信号槽连接 connect(subMenu, &QAction::triggered, this, &MainWindow::onSubMenuClicked); // 响应函数中编写逻辑代码 void MainWindow::onSubMenuClicked() { QAction* action = qobject_cast<QAction*>(sender()); if(action && action->objectName() == "subMenu") { int id = action->data().toInt(); // 处理子菜单项的点击事件 // ... } } ``` 在上面的示例代码中,我们创建了一个菜单对象,并添加了一个名为“Sub Menu”的子菜单项。然后,我们为子菜单项添加了一个信号槽连接,并在响应函数中编写逻辑代码来处理子菜单项的点击事件。在响应函数中,我们首先使用 qobject_cast() 函数将 sender() 转换为 QAction 对象,然后检查其 objectName 是否为“subMenu”,以确保我们只处理正确的子菜单项。最后,我们可以使用 data() 函数获取子菜单项的 ID,并根据需要执行逻辑代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值