C++ Qt::如何降低QSpinBox中的文本

C++ Qt::如何降低QSpinBox中的文本,c++,qt,qtstylesheets,qstyle,C++,Qt,Qtstylesheets,Qstyle,我正在使用带有自定义字体的spinbox,它在spinbox中看起来太高了。如何将文本移低 我已经重新实现了QStyle,并在另一个小部件中降低了字体,但我找不到使用spinbox的地方。必须有一个QRect的地方,你可以移动它的顶部,但我不知道,似乎也找不到它在哪里。这更多的是猜测,而不是肯定的答案,但是你可以通过样式表来做到这一点: spinbox->setStyleSheet("QSpinBox { bottom: -2px;}"); 理想情况下,只有文本才会有子控制或其他内容,但

我正在使用带有自定义字体的spinbox,它在spinbox中看起来太高了。如何将文本移低


我已经重新实现了
QStyle
,并在另一个小部件中降低了字体,但我找不到使用spinbox的地方。必须有一个
QRect
的地方,你可以移动它的顶部,但我不知道,似乎也找不到它在哪里。

这更多的是猜测,而不是肯定的答案,但是你可以通过样式表来做到这一点:

spinbox->setStyleSheet("QSpinBox { bottom: -2px;}");
理想情况下,只有文本才会有子控制或其他内容,但没有列出子控制或其他内容,这可能意味着上述内容将产生不良后果。

Qt指定了一个,这似乎是您要修改的内容。如果我能正确地回忆起几年前我在处理样式时的情景,那么您应该能够获得该子控件的选项,其中包括应该在其中绘制它的rect。修改它可能会得到您想要的结果。如果没有,它就是开始搜索答案的地方。

您可以:

spinBox->setAlignment(Qt::AlignCenter);//Or the Align Flag that you want

我希望这有帮助。

谢谢,但我需要重新实现qstyle,而不是使用样式表,它们占用了太多的闪存空间,这是针对嵌入式应用程序的。您不需要样式表文件。。。那么为什么它们会占用太多的空间呢?@smerlin:大概,解释样式表的代码(在Qt内部)占用了太多的空间,所以它没有在Qt中编译。我很确定Qt在构建它的时候允许这个选项作为一个标志。真的吗?我很确定上次我使用Qt的时候,只有一些标志用于ommit某些QStyles(并且没有选项用于ommit样式表功能)configure@smerlin:你可能是对的。。。我不是那个在我工作的地方做Qt配置的人。。。但另一方面,我们有一个许可证,允许我们随心所欲地修改源代码,我知道我们删除了大量Qt代码的编译/链接,以降低库的大小。谢谢,不幸的是,这是文本和背景的区域,仍然找不到任何孤立文本的内容。