【问题标题】:Does Qt Designer or associated Qt tool have a global find-and-replace functionality for the xml formatted *.ui files?Qt Designer 或相关的 Qt 工具是否具有用于 xml 格式的 *.ui 文件的全局查找和替换功能?
【发布时间】:2017-05-28 09:52:02
【问题描述】:

我现在的具体问题与我在 Qt Designer 中创建的大约 4,800 行 .ui 文件有关,我需要在其中进行一些基本的重构(重命名小部件)。我通过pyside-uic.ui 文件转换为python 文件。我已经阅读了 Qt Designer 文档,足以让自己确信 95% 的把握是,不可能从 em>Qt 设计器 本身。例如:

Step 1) Find 'pushButton'
Step 2) Replace with 'btn'
Step 3) Result is, i.e., 'pushButtonFooBarFooBar' gets renamed 'btnFooBarFooBar'

我的第一个希望在于我在 Qt Designer 的文档搜索中剩余 5% 的不确定性。如果我错过了提供此功能的东西,我会很高兴。我将放弃使用脚本和/或文本编辑器寻找更复杂的解决方案。总的来说,如果我在大约 4800 行代码之前更好地计划我的命名方案,我现在就不会有这个问题了。

所以我的问题,简单地说,是:

Qt Designer 中是否有全局查找和替换功能? 相关的 Qt 工具,如果是,它是如何调用的?

【问题讨论】:

  • 不,没有。但可以肯定的是,编写一个一次性的 python 脚本来做到这一点是很容易的。毕竟只是xml。
  • @ekhumoro,我就是这么想的。我猜 python 的 xlm 模块将是一个很好的起点,我只是从来没有使用过它,也没有使用过 xml。它的格式似乎确实适合我需要做的事情。这是你建议的起点,阅读 python 的 xml 模块并基于它创建一个 python 脚本吗?
  • 在我这样做之前,我想我只想看看在文本编辑器中使用搜索和替换可以做什么。或者,如果您不了解 xml,也可以使用正则表达式编写脚本。

标签: python xml qt pyside qt-designer


【解决方案1】:

Qt Designer 或相关 Qt 工具中是否有全局查找和替换功能,如果有,它是如何调用的?

没有。但是由于 XML 是一个文本文件,因此非常欢迎您在自己喜欢的编辑器中进行文本搜索和替换。例如。使用正则表达式将"pushButton([a-zA-Z0-9_$]*)" 替换为"btn$1"

很遗憾,Qt Creator 不提供正则表达式捕获替换功能,但其他编辑器肯定会提供。

【讨论】:

  • 嗯,在考虑这个解决方案时,我什至没有考虑使用正则表达式的可能性。我猜这忽略了我的一个非常强大的工具:(这可能是我能找到的最简单的解决方案。作为旁注;除非我是唯一一个认为这个功能有用的人,否则这似乎是一个非常重要的省略了原本很棒的 Qt Designer 程序。
  • Qt Designer != Qt Creator :)
  • 哈,我都没听懂!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 2020-07-21
相关资源
最近更新 更多