QT踩坑二三事。

最近开始学习QT了,在安装方面踩了一些坑了,但是没有记录,以后再碰到坑就来记录一下,现在先记录一下已经踩到的坑。


1)转发https://blog.youkuaiyun.com/xuancailinggan/article/details/50373415

自学QT之常量中有换行符错误的解决办法


说来惭愧,好多群友问这个问题,因为我用的minGW编译器,所以这个问题对我来说是不存在,后来终于想尝试用下vs版的qt了。

好了不多说,上代码:

就这一句话,直接报错说常量中有换行符,我滴天,其实呢,这个是编译器作怪,vs版本的编译器不认汉字!坑爹吧……

修改一下设置:

然后重新编译,正常情况下是可以的哦。但是显然不可以,这里是QT的一个bug,你需要找到汉字,随便找几个就行,重新打一下,然后编译就好了。

来下总结吧:

首先,要想用中文,你要设置编码是带bom的,这样写出来的代码没有任何问题。

如果你已经开写,或者用的别人的代码,你需要设置以后再选几个字重新打一下。选几个就行,别几万的汉字你都打了……那还不如重写呢。

正常运行了吧,不过下面这个还是乱码的,vs坑爹啊……支持开源,果断minGW吧,少年们。


2)二次编译报一些莫名其妙的错误。

这个时候建议删除掉已经编译好的DEBUG或者RELEASE文件夹重新编译就可以运行了。

### 关于 Qt StackedWidget 使用过程中的常见问题及解决方案 #### 插入 Widget 的方式及其影响 StackedWidget 支持两种主要的方式用于插入 widget:`insertWidget(int index, QWidget*)` 和 `addWidget(QWidget*)`。者允许指定插入位置,而后者则是按顺序追加新组件[^2]。 ```cpp // 示例代码展示如何向 QStackedWidget 添加和插入部件 QStackedWidget *stackedWidget = new QStackedWidget; QWidget *firstPage = new QWidget; QWidget *secondPage = new QWidget; // 使用 addWidget 进行添加,默认按照加入顺序排列 stackedWidget->addWidget(firstPage); // 使用 insertWidget 在特定索引处插入新的页面 stackedWidget->insertWidget(0, secondPage); ``` 当使用这两种不同方法时需要注意的是,如果希望保持界面布局的一致性和响应式设计,则应确保所有被管理的小部件都已适当设置其自身的布局属性,以便它们能够随父级容器尺寸变化自动调整大小。 #### 解决 WebEngineView 加载 JavaScript 失败的问题 对于含有 QWebEngineView 组件的情况,在非默认显示的子页签内可能会遇到脚本加载失败的现象。这主要是由于初始化时机不当所引起的。一种有效的处理办法是在切换至目标标签之主动调用 load 函数来预加载网页资源[^4]: ```cpp class MyMainWindow : public QMainWindow { ... private slots: void on_tabIndexChanged(int newIndex) { if (newIndex == targetPageIndex) { // 假设这是包含 webview 页面的索引编号 ui->webView->load(QUrl("https://example.com")); } } }; ``` 上述实现中假设有一个槽函数用来监听 tab 索引改变件,并据此判断何时应当触发具体的 WebView 实例重新加载 URL 地址。 #### 自定义控件样式失效的原因探讨 一旦将标准小部件升级成继承自其他类别的派生对象之后(比如从普通的 QPushButton 变更为 ToggleButton),就可能出现 CSS 样式规则不再生效的情形。这是因为 Qt 对象树结构的变化会影响到样式的解析路径以及渲染逻辑[^3]。针对这种情况可以尝试如下几种改进措施之一: - 修改 `.qss` 文件内的选择器表达式使之更精确匹配实际使用的类型名称; - 或者利用 C++ 层面设定固定风格选项从而绕过潜在冲突; ```css /* 调整后的样式表片段 */ ToggleWidget { background-color: red; /* 更具体的选择符 */ } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值