Qt 一次性更改颜色或工具提示

Qt 一次性更改颜色或工具提示,qt,qt5,Qt,Qt5,我使用Qt designer制作了一个大型项目,其中包含.ui、.cpp、.h文件。 现在我想一次性或简单地为所有.ui文件的按钮添加颜色和工具提示,因为浏览所有.ui文件并更改每个按钮的颜色是非常困难的。 还有什么我可以做的吗? 如果您不确定是否可以分享您的想法。 请。您可以尝试在应用程序中使用自定义小部件。例如,要为应用程序中的所有QPushButtons设置背景色,请添加以下代码: qApp->setStyleSheet("QPushButton { background-color

我使用Qt designer制作了一个大型项目,其中包含.ui、.cpp、.h文件。 现在我想一次性或简单地为所有.ui文件的按钮添加颜色和工具提示,因为浏览所有.ui文件并更改每个按钮的颜色是非常困难的。 还有什么我可以做的吗? 如果您不确定是否可以分享您的想法。 请。

您可以尝试在应用程序中使用自定义小部件。例如,要为应用程序中的所有
QPushButtons
设置背景色,请添加以下代码:

qApp->setStyleSheet("QPushButton { background-color: yellow }");

您可以尝试在应用程序中使用自定义小部件。例如,要为应用程序中的所有
QPushButtons
设置背景色,请添加以下代码:

qApp->setStyleSheet("QPushButton { background-color: yellow }");

一种方法是使用带有“在文件中查找和替换”的合适编辑器,如果您喜欢命令行,则使用sed/perl/awk。在.ui文件(它们是XML)上使用此选项。首先找出找到正确位置的搜索,然后进行替换。如果只需要替换特定字符串(定义颜色),那么甚至不需要regexp

警告:.ui文件实际上不是手动编辑的。因此,很容易破坏它们,这样设计师就不能再处理它们了。但这并没有什么神奇之处,它们只是可以编辑的文本文件,设计者只希望它们完全符合自己的需要,并且不允许手工编辑经常出现的错误。只要确保只更改颜色值字符串而不更改其他内容,并且有一个未编辑的备份(即版本控制),您就可以了

请注意,Qt Creator拒绝将.ui文件作为文本进行编辑,因为手工编辑很容易破坏这些文件,所以您可能希望使用其他编辑器(Notepad++是常见的免费Windows替代品)



然而,我建议首先尝试使用样式表,正如在另一个答案中所说的那样。只有证明这是不切实际的,你就应该考虑这个选项。样式表的最大好处是,如果您需要进行另一次更改,那么与进行另一次搜索替换相比,所做的工作要少得多。

一种方法是使用带有“在文件中查找并替换”的合适编辑器,或者如果您喜欢命令行,则使用sed/perl/awk。在.ui文件(它们是XML)上使用此选项。首先找出找到正确位置的搜索,然后进行替换。如果只需要替换特定字符串(定义颜色),那么甚至不需要regexp

警告:.ui文件实际上不是手动编辑的。因此,很容易破坏它们,这样设计师就不能再处理它们了。但这并没有什么神奇之处,它们只是可以编辑的文本文件,设计者只希望它们完全符合自己的需要,并且不允许手工编辑经常出现的错误。只要确保只更改颜色值字符串而不更改其他内容,并且有一个未编辑的备份(即版本控制),您就可以了

请注意,Qt Creator拒绝将.ui文件作为文本进行编辑,因为手工编辑很容易破坏这些文件,所以您可能希望使用其他编辑器(Notepad++是常见的免费Windows替代品)



然而,我建议首先尝试使用样式表,正如在另一个答案中所说的那样。只有证明这是不切实际的,你就应该考虑这个选项。样式表的最大好处是,如果您需要进行另一次更改,那么与进行另一次搜索替换相比,所做的工作要少得多。

虽然这是一个有效的选择,但我强烈建议使用另一个答案所指出的Qt样式表。@maxik我同意,但改用样式表而不是属性也可能是一项艰巨的任务。据我所知,使用样式表和使用其他方式来设计应用程序并不总是很好地结合在一起。在这种情况下,仅更改.ui文件中的颜色可能是一个实用的选项。无论如何,我对我的答案进行了一点编辑,使之与此相匹配。虽然这是一个有效的选项,但我强烈建议使用另一个答案所指出的Qt样式表。@maxik我同意,但切换到使用样式表而不是属性可能也是一项艰巨的任务。据我所知,使用样式表和使用其他方式来设计应用程序并不总是很好地结合在一起。在这种情况下,仅更改.ui文件中的颜色可能是一个实用的选项。不管怎样,我对我的答案做了一些修改,使之与此相匹配。