Ubuntu16.04 在自编译的qt4.8.5界面程序在编译运行后无法显示中文

在Ubuntu 16.04上使用自编译的Qt 4.8.5时,程序运行中遇到中文无法显示的问题,而英文和数字显示正常。尝试了常见解决方法如链接中的建议,但未成功。执行qtconfig时出现错误。最终通过复制同事能够正常显示中文的Trolltech文件夹及其内容到自编译的Qt安装位置,然后修改qtconfig配置,解决了中文显示问题。
摘要由CSDN通过智能技术生成

问题前提:
ubuntu16.04 qt4.8.5 用的交叉编译器 所以整个qt也是自编译安装
程序运行后,中文不能显示,英文数字则没问题
奇怪的是同事们都能正常显示中文(是我们这些倒霉蛋没错了)

关于中文无法显示,有很多人通过下面这个链接里的方法解决了(本倒霉蛋依旧不可以),所以建议你先去照这个试试 ---->
链接: link.

这个链接依旧解决不了你的问题 ,并且在你执行 qtconfig 时候报这个奇怪的错 :
在这里插入图片描述
有的人通过下面方法解决了(我就不丢链接了,加载奇慢,不用浪费时间,十有八九倒霉蛋不会通过这个解决好)
在这里插入图片描述
好了 本倒霉蛋的究极解决方案 cp 同事可以显示中文的 Trolltech 文件夹 以及里面所有的东东 到你装这个的地方
(自编译不可能没有这个文件夹吧) 我的装在、usr/local 问题就是记得用 sudo命令 以防万一 原来的mv备份一下哦

替换以后再去里面 改一下 qtconfig 配置
再执行程序 哦啦!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于Qt的无重复字符的最长子串的实现,包含了一个简单的界面。 首先,我们需要一个函数来计算给定字符串的最长无重复字符的子串: ```c++ QString longestSubstringWithoutRepeatingCharacters(const QString& str) { QString longestSubstring; QString currentSubstring; QSet<QChar> uniqueCharacters; for (const QChar& c : str) { if (uniqueCharacters.contains(c)) { if (currentSubstring.length() > longestSubstring.length()) { longestSubstring = currentSubstring; } while (!currentSubstring.isEmpty() && currentSubstring.at(0) != c) { uniqueCharacters.remove(currentSubstring.at(0)); currentSubstring.remove(0, 1); } currentSubstring.remove(0, 1); } uniqueCharacters.insert(c); currentSubstring.append(c); } if (currentSubstring.length() > longestSubstring.length()) { longestSubstring = currentSubstring; } return longestSubstring; } ``` 接下来,我们需要一个Qt界面来获取输入和显示输出。我们可以使用Qt的QWidget和QLineEdit类来实现这一点: ```c++ class MainWindow : public QWidget { Q_OBJECT public: MainWindow(QWidget* parent = nullptr); ~MainWindow(); private slots: void onTextChanged(const QString& text); private: QLineEdit* m_inputLineEdit; QLineEdit* m_outputLineEdit; }; ``` ```c++ MainWindow::MainWindow(QWidget* parent) : QWidget(parent) { m_inputLineEdit = new QLineEdit(this); m_outputLineEdit = new QLineEdit(this); QVBoxLayout* layout = new QVBoxLayout(this); layout->addWidget(m_inputLineEdit); layout->addWidget(m_outputLineEdit); connect(m_inputLineEdit, &QLineEdit::textChanged, this, &MainWindow::onTextChanged); } MainWindow::~MainWindow() { } void MainWindow::onTextChanged(const QString& text) { QString longestSubstring = longestSubstringWithoutRepeatingCharacters(text); m_outputLineEdit->setText(longestSubstring); } ``` 最后,我们可以使用Qt的qmake工具来生成Makefile并编译我们的应用程序。在项目目录下创建一个名为“longestsubstring.pro”的文件,内容如下: ``` QT += widgets TARGET = longestsubstring SOURCES += main.cpp ``` 然后在终端中运行以下命令: ``` qmake longestsubstring.pro make ``` 这将生成一个可执行文件“longestsubstring”以及所有必需的库文件。现在,我们可以运行我们的应用程序并测试它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值