分别在Windows与Ubuntu系统下在C程序中打开选择对话框

本文介绍了如何在C程序中利用系统库在Windows和Ubuntu操作系统下打开文件选择对话框。在Windows下实现此功能,而在Ubuntu下则需要依赖gtk库。代码示例展示了在两个系统上的不同实现方式。

今天看到一哥们在问答区问了一个问题“C语言选择文件”,想要在C程序中打开选择对话框进行文件选择。

原问题在这:http://ask.youkuaiyun.com/questions/344873

我知道这个问题应该是用C调用系统库来实现,而不应该是用C自己写一个窗口程序(太麻烦了)。这个问题勾起了我的兴趣,因为自己从来没这么干过;也十分兴奋,因为没写过LINUX下的窗口。于是,一番百度后,终于让我实现了。

<think>我们参考引用内容,用户询问的是在Ubuntu 18.04.6下如何将C++文件(如.cpp或.h)的默认打开方式设置为Qt Creator。 根据Ubuntu系统的特性,我们可以通过修改文件的默认应用程序关联来实现。 注意:引用[1]提到了安装gcc和g++,引用[2]和[3]提到了Qt环境配置,引用[4]提到了C++编译相关的内容,但并没有直接回答如何设置默认打开方式。 因此,我们需要根据Ubuntu系统的一般设置方法来回答。 步骤概述: 1. 首先确保Qt Creator已经安装。 2. 找到任意一个C++文件(例如.cpp文件),右键单击选择“属性”。 3. 在“属性”对话框中,找到“打开方式”选项卡,然后选择Qt Creator。如果没有,则点击“其他应用程序”并找到Qt Creator,或者使用“查看其他应用程序”找到并添加。 4. 如果列表中找不到Qt Creator,可以点击“使用自定义命令”,然后通过浏览找到Qt Creator的可执行文件(通常在/usr/bin/qtcreator或/opt/qtcreator/bin/qtcreator,具体取决于安装方式)。 5. 设置后,单击“设置为默认”按钮,然后关闭对话框。 另外,也可以通过系统设置来全局修改某一类文件的默认程序: 方法二: 1. 打开“设置”(Settings)->“详细信息”(Details)->“默认应用程序”(Default Applications)。 2. 在“默认应用程序”设置中,找到“文本”类型,但这里可能不够具体,所以更推荐使用第一种方法针对特定扩展名设置。 或者使用第三种方法:通过修改mime类型的关联(较为底层,但更彻底)。 考虑到用户可能希望为所有C++相关文件(如.cpp、.h、.hpp等)都设置,可以分别设置这些扩展名的默认打开方式。 注意:在Ubuntu中,不同桌面环境可能有细微差别,我们假设用户使用的是默认的GNOME桌面环境。 根据引用[3],我们知道用户使用的是Ubuntu 18.04.6 LTS,因此我们可以按照上述步骤指导。 由于引用中并没有直接给出设置默认打开方式的内容,我们将根据标准Ubuntu操作来回答。 但是,值得注意的是,在引用[2]中提到了如何打开Qt Creator(通过菜单),因此我们可以假设用户已经安装了Qt Creator。 具体步骤: 方法一(针对单个文件类型设置): 1. 在文件管理器中,右键点击一个C++文件(比如test.cpp)。 2. 选择“属性”。 3. 切换到“打开方式”选项卡。 4. 如果Qt Creator在列表中,直接选中并点击“设置为默认”。 5. 如果不在,点击“添加”按钮,然后在弹出的应用程序列表中找到Qt Creator并添加;如果还没有,则选择“使用自定义命令”,然后浏览到Qt Creator的安装路径(通常为/usr/bin/qtcreator),选择并添加。 6. 添加后,选中新添加的Qt Creator,然后点击“设置为默认”。 方法二(通过系统设置统一设置): 1. 打开系统设置(可以通过点击桌面右上角的齿轮图标,或者搜索“设置”)。 2. 进入“详细信息”(或“默认应用程序”)部分。 3. 在左侧选择“默认应用程序”,然后滚动到“文件类型和应用程序”部分(或者类似的选项,不同版本可能名称不同)。 4. 在列表中查找“C++源文件”(对应.cpp)或“C/C++头文件”(对应.h),点击当前关联的程序,在弹出的列表中选择Qt Creator。如果没有,则选择“其他应用程序”并找到Qt Creator。 注意:第二种方法在Ubuntu 18.04中可能位于“设置”->“详细信息”->“默认应用程序”选项卡,然后滚动找到对应的文件类型。 由于文件类型较多,可能不容易找到,因此推荐第一种方法。 另外,如果希望所有用户都默认使用Qt Creator打开C++文件,可能需要修改mime类型关联的全局设置,但这通常需要管理员权限,且较为复杂,一般用户使用第一种方法即可。 补充:如果Qt Creator没有出现在应用程序列表中,可能是因为安装方式导致没有创建.desktop文件(通常位于/usr/share/applications)。可以尝试手动创建一个.desktop文件,但通常通过包管理器安装的Qt Creator会自动创建。 综上所述,我们给出第一种方法的详细步骤。 我们也可以使用命令行来设置默认应用程序(可选,适合高级用户): 例如,设置.cpp文件的默认打开方式为Qt Creator: xdg-mime default qtcreator.desktop text/x-c++src 其中,'text/x-c++src'是C++源文件的mime类型,'qtcreator.desktop'是Qt Creator的桌面文件名。我们可以通过以下命令查看已安装的桌面文件: ls /usr/share/applications | grep -i qtcreator 通常,如果通过官方方式安装,桌面文件名为qtcreator.desktop。 因此,命令示例: xdg-mime default qtcreator.desktop text/x-c++src 同样,可以设置头文件(.h)的mime类型为text/x-c++hdr,命令类似: xdg-mime default qtcreator.desktop text/x-c++hdr 注意:需要先确定这些mime类型是否正确。可以通过命令`xdg-mime query filetype example.cpp`来验证一个cpp文件的mime类型。 不过,对于普通用户,图形界面操作更友好。 考虑到用户可能希望简单操作,我们主要推荐图形界面方法。 因此,回答如下: </think>在 Ubuntu 18.04.6 中设置 C++ 文件(如 `.cpp`、`.h`)默认打开方式为 Qt Creator 的操作步骤如下: ### 方法 1:通过文件属性设置(推荐) 1. **右键单击 C++ 文件** 在文件管理器中找到任意 `.cpp` 或 `.h` 文件,右键单击选择 **"属性"**。 2. **修改打开方式** - 切换到 **"打开方式"** 选项卡 - 在应用程序列表中找到 **Qt Creator**(若未列出,点击 **"查看其他应用程序"** → 滚动查找) - 选中 Qt Creator 后点击 **"设为默认"** ![打开方式设置示意图](https://example.com/path/to/image.png) *图示:Ubuntu 文件属性中的打开方式设置界面[^3]* 3. **验证设置** 双击任意 C++ 文件,系统将自动用 Qt Creator 打开。 ### 方法 2:通过默认应用程序配置(系统级设置) 1. **打开系统设置** `Super` 键(Windows 键)搜索 → 输入 **"默认应用程序"** → 打开设置面板。 2. **配置文件类型关联** - 在 **"类型"** 列找到 `C++ Source`(对应 `.cpp`)和 `C/C++ Header`(对应 `.h`) - 点击当前关联程序名称(如 "文本编辑器") - 从列表选择 **Qt Creator** *注:若未列出,需先通过方法 1 激活关联* 3. **终端命令强制关联(可选)** ```bash # 关联 .cpp 文件 xdg-mime default qtcreator.desktop text/x-c++src # 关联 .h 文件 xdg-mime default qtcreator.desktop text/x-chdr ``` *提示:通过 `find /usr/share/applications -name "*qtcreator*.desktop"` 确认 .desktop 文件路径[^2]* ### 常见问题解决 - **Qt Creator 未出现在列表?** 安装完整版 Qt Creator:`sudo apt install qtcreator` - **关联失效?** 重建 MIME 数据库:`sudo update-mime-database /usr/share/mime` > **注意**:确保已安装 Qt Creator(引用[1][3]提到 5.12.9/5.12.12 版本可用)。交叉编译环境配置参考引用[2],但默认打开方式不影响编译配置[^2][^3]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值