Board logo

标题: 用QT创建新风格Howto(3) [打印本页]

作者: look_w    时间: 2018-5-7 18:44     标题: 用QT创建新风格Howto(3)

3.使用新风格有两种方法使用新风格,一种是作为插件,一种是在应用程序里直接使用。作为插件的风格可以在不用修改代码、不用重新编译的情况下使用新风格。由于本文着重介绍如何创建风格所以我们使用第一种方法。这种方法很简单,只需在应用程序中包含相应风格类的头文件,然后把main()函数第一句可执行代码设置为QApplication::setStyle(new MyStyle())即可。
下面我们用一个小例子来看看效果。
#include <qapplication.h>#include <qspinbox.h>#include "customstyle.h"int main( int argc, char **argv ){    QApplication::setStyle(new CustomStyle()); //使用新风格类来绘制界面。    QApplication a( argc, argv );    QSpinBox spin( 0, 15 );    spin.resize( 20, 100 );    a.setMainWidget( &spin );    spin.show();    return a.exec();}然后编译运行即可看到效果。
Ps. qt中编译使用qmake,步骤为
4.进一步工作1)默认大小:细心的朋友可能看到上面的代码中有一句:spin.resize( 20, 100 ),这一句设置spinbox的长度为20象素,宽度为100个象素。如果没有这一句的话,显示的结果会一团糟,两个按钮几乎看不到
,因为qt默认的显示是水平显示而根本没有考虑垂直显示的情况。
如果想让spinbox在默认情况下看起来长度窄而宽度高需要修改QSpinBox类中的sizeHint函数,这个函数功能是设置部件(widget)的默认尺寸。在qt中几乎每个GUI部件类都有sizeHint这个函数来设置它自己的默认的长和宽。
文本垂直显示:在此例中虽然控件spinbox达到了垂直显示的效果,但是文本仍旧是水平显示的,因此要达到真正的垂直显示需要了解qt的文本显示机制。这些工作是很有意义的,因为有些民族(如蒙文)的语言传统就是垂直显示的,而现在没有一个真正满足这种需求的系统。笔者现在正在看qt-x11-free-3.2.2的源码,目前对文本显示机制只有初步了解,还没有真正弄清,非常希望和感兴趣的朋友相互交流、学习。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0