QT开发问题与解决办法总结(持续总结)

问题1:ubuntu20.04 上使用在线安装方式安装QT,QT Creator后无法启动问题

解决办法:如下博客

这个博客提供了详细的说明、分析和解决办法
主要是因为报错:libxcb-cursor. so. 0: cannot open shared object file: No such file or directory
解决办法:sudo apt install libxcb-cursor0

问题2:libQt5WebEngineCore.so: .dynsym local symbol at index 3 (>= sh_info of 3)

这个问题是动态链接库的问题,我尝试着在pro文件添加:

 CONFIG +=use_lld_linker

此问题解决了,又出现了新的问题:Linking issue with WebEngine, Qt5Positioning and math functions __atan2_finite __acos_finite
因此另寻他法,使用如下指令,但在次之前先要安装lld

sudo apt-get install lld
sudo ln -sf /usr/bin/x86_64-linux-gnu-ld.gold /usr/bin/ld
  • ldd 是一个用于显示一个二进制文件所依赖的动态链接库的命令。ldd 命令会列出该二进制文件所依赖的动态链接库,并显示它们的路径。这些动态链接库包括操作系统提供的共享库(如 libc.so、libpthread.so)以及其他自定义的共享库。
  • sudo ln -sf /usr/bin/x86_64-linux-gnu-ld.gold /usr/bin/ld的含义/usr/bin/x86_64-linux-gnu-ld.gold 是一个 GNU Linker 的可执行文件,它用于将目标文件链接成可执行文件。而 /usr/bin/ld 是 Linux 系统默认的链接器。通过这个命令,我们可以将系统默认的链接器路径指向 GNU Linker,以便使用 GNU Linker 进行更高效的链接操作。

问题3:Qt工程报错👎 error: Cannot run compiler ‘clang++‘

问题原因:我的qt项目原是在window平台 minGW编译器编译的,转到ubuntu后使用gcc编译器,但是GCC编译器有两种g++和clang,因此要在kit管理中更换编译器
在这里插入图片描述更改编译器:CC++GCC编译器

问题4: Ubuntu系统Qt软件安装包移植到系统的配置

下载Qt比较费时,就想着把之前下载安装的Qt软件复制粘贴到新的Ubuntu系统上,主要是作环境变量的设置,本文参考linux ubuntu安装qtcreater,配置qt环境到可运行qt项目,操作步骤如下:

  1. 安装C/C++编译环境
    sudo apt-get install build-essential

  2. 配置QT环境变量
    与修改Windows环境变量差不多

    • 修改 /etc/profile 文件
      sudo vim /etc/profile
    • 文件结尾追加(注意这里要换成自己的路径)
      export QT_PATH=/opt/Qt/5.15.2/gcc_64
      export QT_CREATOR_PATH=/opt/Qt/Tools/QtCreator
      export LD_LIBRARY_PATH=$QT_PATH/lib:$LD_LIBRARY_PATH
      export PATH=$PATH:$QT_PATH/bin:$QT_CREATOR_PATH/bin
      
    • 刷新环境变量
      source /etc/profile
  3. 在终端下执行qtcreator命令,应该会报xcb的错误

    这里产生xcb错误的原因是不一样的,参考是libxcb-xinerama.so.o的问题

    Got keys from plugin meta data ("xcb") QFactoryLoader::QFactoryLoader() checking directory path "/opt/Qt/Tools/QtCreator/bin/platforms" 
    Cannot load library /opt/Qt/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so
    ... (libxcb-xinerama.so.0: cannot open shared object file: No such file or directory)"qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in   
    
  4. 解决xcb导致qtcreator无法启动问题,安装缺失的库

    • 使用apt搜索这个库
      可以找到两个
      apt search libxcb-xinerama
      libxcb-xinerama0/focal 1.14-2 amd64  X C Binding, xinerama extension  
      libxcb-xinerama0-dev/focal 1.14-2 amd64  X C Binding, xinerama extension,development files
      
      一般做开发用到的库都是 xxx-dev xxx-devel之类的
    • 安装缺失的库
      sudo apt-get install libxcb-xinerama0-dev
  5. 再次运行qtcreator
    可以正常启动了

问题5:关于Qt 构建套件(Kit) 编译器 自动识别不正确 不能修改的问题

问题描述:由于我的qt是从其他系统拷贝过来进行的环境配置后进行的qt启动,这样拷贝过来的qt软件有很多之前系统里的配置,当打开qt项目时,会让你“配置构建套件“,这时候就会发现**”Configure …“是无法点击**,查看“Qt Version”发现自动检测到的并不是我们拷贝过来的qt下的qmake可执行文件的路径,而且也无法修改。
解决办法:到qtcreator\QtProject\qtcreator 路径下找三个文件 profiles.xml qtversion.xml toolchains.xml ,打开这些文件,修改里面的路径,保存即可。

问题6:插件初始化失败: The maintenance tool at “/home/*****/Qt/MaintenanceTool” is not an executable. Check your installation.

解决办法:

在软件安装文件夹目录下使用grep命令查找制定字符串
grep -r -i "your_search_string" /path/to/search/directory
-r:遍历查找;-i:不区分大小写
在这里插入图片描述
根据搜索查找结果,更改QtCreator.ini文件内路径即可

  • 27
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt是一种开发C++图形用户界面的跨平台框架,而且默认情况下是不支持直接输入中文的。不过,我们可以通过以下几种方法来解决这个问题。 第一种方法是使用QLineEdit::setInputMask()函数。该函数可以限制用户在输入框中输入的字符类型。我们可以使用正则表达式来指定输入只允许中文字符。具体步骤是,创建一个QLineEdit对象,然后调用setInputMask()函数,将正则表达式设置为只允许中文字符即可。 第二种方法是使用QInputMethod类。该类提供了一个输入法框架,可以用于处理输入法的相关操作。我们可以通过重新实现QLineEdit的inputMethodEvent()和inputMethodQuery()函数来自定义输入法的行为。具体步骤是,创建一个自定义的QLineEdit对象,然后重写inputMethodEvent()函数,处理中文输入法的相关操作。 第三种方法是使用一个第三方输入法框架,例如Google Pinyin输入法或搜狗输入法等。这些输入法框架可以在Qt应用程序中提供中文输入的功能。具体步骤是,安装并配置选定的输入法框架,然后在Qt应用程序中使用QLineEdit来接受用户的输入。 总的来说,Qt本身是不直接支持中文输入的,但通过上述方法,我们可以解决这个问题。具体的选择可以根据项目需要和开发者的偏好来决定。 ### 回答2: 要解决Qt不能输入中文的问题,可以按照以下步骤进行操作: 1. 检查输入法设置:确保已安装和启用了支持中文输入的输入法软件,如搜狗输入法、QQ拼音输入法等。在操作系统的设置中打开输入法设置,确保所需的中文输入法已启用。 2. Qt应用程序设置:在Qt应用程序的代码中,添加以下代码以启用中文输入支持: ``` QInputMethod *inputMethod = QGuiApplication::inputMethod(); inputMethod->setInputMethodHints(Qt::ImhPreferUppercase); // 忽略输入法大小写 ``` 这将告诉Qt应用程序在输入时使用操作系统设置的输入法。 3. 处理输入事件:在需要接收用户输入并处理的QWidget或QLineEdit等控件的代码中,重写keyPressEvent()方法,以便手动处理输入事件。例如,可以使用QLineEdit的代码示例: ``` void MyLineEdit::keyPressEvent(QKeyEvent *event) { if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) { // 处理回车键事件 // ... } else { // 处理其他按键事件 QLineEdit::keyPressEvent(event); // 默认处理其他按键 } } ``` 通过执行上述步骤,您将能够在Qt应用程序中正常输入中文。如果问题仍然存在,可以尝试更新Qt版本或与Qt开发者社区寻求进一步帮助。 ### 回答3: QT是一种跨平台的C++图形用户界面开发框架,常用于开发各种应用程序。在使用QT开发时,有时会遇到无法输入中文的问题。这个问题可以通过以下几种方法解决: 1. 设置输入法:在QT中,可以通过设置输入法为中文来解决无法输入中文的问题。可以在系统的控制面板或设置界面中找到输入法设置选项,将输入法设置为中文,然后重新启动QT即可。 2. 修改QT的输入法选项:在QT的工具栏中,找到“选项”或“设置”等菜单,进入输入法选项设置页面。检查是否有禁用输入中文的选项,如果有,则取消该选项,并保存设置。重新启动QT后,就可以正常输入中文了。 3. 使用中文输入法软件:如果以上方法无效,可以尝试安装第三方的中文输入法软件,如搜狗输入法、百度输入法等。安装完毕后,在QT中选择该中文输入法作为默认输入法,重新启动QT即可实现中文输入。 总之,无法输入中文的问题通常是由于输入法设置不正确或者禁用了中文输入引起的。通过适当的输入法设置或者安装中文输入法软件,可以解决QT无法输入中文的问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值