我想知道 Qt 是如何完成所有样式的。我需要创建一个自定义控件,并且我希望它符合标准,这样我的控件在不同的平台和样式上就不会显得格格不入。
例如,我需要一个在文本中使用的光标,Qt 是否提供了绘制它的方法?我将如何实现它,这样我就不会为光标的闪烁而重绘整个小部件?
创建自定义小部件通常有两个方面:
这意味着,例如,如果您想创建一个自定义文本输入小部件,请使用现有的小部件,并且只更改您需要在重载中更改的部分。或者,也许您的自定义根本不需要更改文本输入部分,只需将其插入正确的位置即可。我现在谈论的小部件是QLineEdit
. 它实际上是非常基本和可定制的。
关于如何组合小部件以形成您的自定义方法,实际上存在两种方法(至少)。首先是创建一个 .ui 文件并在您的自定义类中使用它(或在代码中创建小部件)。第二种是使用QGraphicsScene
. 在那里,您可以将手绘 ( QPainter
) 与自定义定位的对象和成熟的小部件结合起来。
如果通过组合小部件和/或从它们派生来解决您的问题太难,最后的手段总是采用具有所需功能的现有小部件(例如QLineEdit
,具有文本编辑光标)并读取/复制代码(注意:可能会出现许可证问题)。
为了更好地回答您的问题,我们需要更多关于您想要实现的目标的详细信息。