Qt右键菜单是英文怎么办

2025-11-16 08:47:17

1、在进行Qt编程时,要想使界面上的文字显示为中文,比较常用的方法有两种:

1)在界面设计器中全部使用中文

2)在初始代码中使用英文,随后使用工具进行翻译,最后再载入翻译文件,从而使得界面呈现为中文

不过,尽管我们为了让Qt界面显示中文煞费苦心,但程序运行时弹出的右键菜单却仍然为英文。

Qt右键菜单是英文怎么办

1、要想使右键菜单上的字符显示为中文,我们需要重新实现相应控件的contextMenuEvent函数。该函数继承于父类的虚函数,访问权限为protected。

在这个示例中,由于我们需要在编辑框内(QTextEdit类)弹出右键菜单,因此就需要重新实现QTextEdit的contextMenuEvent函数。

Qt右键菜单是英文怎么办

2、为了做到这一点,我们需要往工程中添加一个新类,该类继承于QTextEdit,然后再在这个新类中实现contextMenuEvent函数。添加新类的方法是在工程名上右击鼠标,然后选择“添加新文件”。接着,在弹出的对话框中选择C++类。

不过,这儿有一个问题。由于在添加新类时,并不能直接选择继承于QTextEdit,因此在这里我们就先选择继承于QWidget,添加好以后再在代码中进行修改。

Qt右键菜单是英文怎么办

Qt右键菜单是英文怎么办

Qt右键菜单是英文怎么办

3、新类添加好以后,打开新类的头文件,再将QWidget改为QTextEdit。注意,包含的头文件也需要修改。

Qt右键菜单是英文怎么办

4、然后,在新类的头文件中添加protected类型的contextMenuEvent函数。

注意,由于是继承于父类的虚函数,Qt会自动将其函数名显示斜体,以示区别普通函数。

Qt右键菜单是英文怎么办

5、随后,我们在新类的源文件中实现该函数。简单起见,我在此就只创建了一个菜单项作为示例。在这儿提醒大家注意,别忘了包含相应的头文件。

Qt右键菜单是英文怎么办

6、现在,就只剩下最后一步了。我们在主程序中定义一个新类类型的变量,然后像往常一样使用即可。

Qt右键菜单是英文怎么办

7、重新编译程序,看看,是不是菜单已经变成中文了?

Qt右键菜单是英文怎么办

1、在contextMenuEvent函数的代码中直接使用中文的方法并不妥当,以上示例我只是为了简单起见。

建议:在代码中仍然使用英文,并用tr函数将待翻译的字符串括起来,然后再使用Qt自带的Linguist工具将其译成中文,最后载入翻译文件。

若想知道Qt怎样使用翻译文件,可以参考我的Qt编程经验系列《Qt怎样翻译程序中的字符串:提取和翻译》和《Qt怎样翻译程序中的字符串:生成和加载》。

Qt右键菜单是英文怎么办

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢