-1

我想知道 Qt 是如何完成所有样式的。我需要创建一个自定义控件,并且我希望它符合标准,这样我的控件在不同的平台和样式上就不会显得格格不入。

例如,我需要一个在文本中使用的光标,Qt 是否提供了绘制它的方法?我将如何实现它,这样我就不会为光标的闪烁而重绘整个小部件?

4

1 回答 1

1

创建自定义小部件通常有两个方面:

  • 结合现有的小部件
  • 从现有的小部件派生

这意味着,例如,如果您想创建一个自定义文本输入小部件,请使用现有的小部件,并且只更改您需要在重载中更改的部分。或者,也许您的自定义根本不需要更改文本输入部分,只需将其插入正确的位置即可。我现在谈论的小部件是QLineEdit. 它实际上是非常基本和可定制的。

关于如何组合小部件以形成您的自定义方法,实际上存在两种方法(至少)。首先是创建一个 .ui 文件并在您的自定义类中使用它(或在代码中创建小部件)。第二种是使用QGraphicsScene. 在那里,您可以将手绘 ( QPainter) 与自定义定位的对象和成熟的小部件结合起来。

如果通过组合小部件和/或从它们派生来解决您的问题太难,最后的手段总是采用具有所需功能的现有小部件(例如QLineEdit,具有文本编辑光标)并读取/复制代码(注意:可能会出现许可证问题)。

为了更好地回答您的问题,我们需要更多关于您想要实现的目标的详细信息。

于 2013-09-25T04:14:01.850 回答