如何将Qt Demo中的ArthurStyle风格用在自己的程序中

Qt安装包自带了大量的例子来演示Qt GUI特性,其很多Demo十分之炫。最近我在学习Qt绘图,研究了下Path Stroking, Gradients这几个例子,发现其面板风格非常漂亮,要是能用在自己的程序中该多好啊!

      

通过阅读代码,发现这些程序的main.cpp中有以下代码,如Gradients的main.cpp中:

    GradientWidget gradientWidget(0);
    QStyle *arthurStyle = new ArthurStyle();
    gradientWidget.setStyle(arthurStyle);
    QList<QWidget *> widgets = gradientWidget.findChildren<QWidget *>();
    foreach (QWidget *w, widgets) {
        w->setStyle(arthurStyle);
        w->setAttribute(Qt::WA_AcceptTouchEvents);
    }

显然是用了自定义风格的外观,这个外观风格的代码在Qt目录/demos/shared目录下,有三个类:

ArhurStyle类:定义了QPushButton, QGroupBox, QSpinBox,QRadioButton等控件的外观

ArthurFrame类:一个功能扩展的Frame

HoverPoint:一组可以随意移动的Point容器

为了使用这些风格,我们可以将shared目录中的以下文件Copy到自己的工程目录下:

把其中的源代码和shared.qrc资源文件添加到Qt工程中,

然后,按照《C++ Qt GUI编程》第351页的方法,在main()函数中调用这个ArthurStyle风格就行了(别忘了include arthurstyle.h!):

QApplication::setStyle(new ArthurStyle);    // 使用Arthur外观

在我的程序中,main.cpp是这样的:

#include <QApplication>
#include <QTextCodec>
#include "window.h"
#include "arthurstyle/arthurstyle.h"

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    QApplication::setStyle(new ArthurStyle);    // 使用Arthur外观

    //---------------让Qt支持中文-----------------------------
    QTextCodec *codec = QTextCodec::codecForName("utf-8");
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForTr(codec);
    //------------------------------------------------------

    Window window;

    window.show();

    return app.exec();
}

运行下就有效果了!看看我的程序,按钮跟面板的风格都变了!^_^



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值