60 界面外观(QT风格)

为什么需要自定义外观?

一个完美的产品,不仅需要代码写的漂亮,更应该有良好的UI设计,就像Iphone一样,不仅有稳定程序,还有很好看的界面图标、UI设计。

QT是一个跨平台的GUI图形界面框架,提供了众多的方法和机制供开发人员使用,不仅可以使用官方提供的方法,还可以使用自己定义的方案,极大的提高了开发的效率。

QStyle类

Qt中的各种风格是一组继承自QStyle的类。QStyle类是一个抽象基类,封装了一个GUI的外观,Qt的内建(built-in)部件使用它来执行几乎所有的绘制工作,以确保它们看起来可以像各个平台上的本地部件一样。

调用QApplication 的setStyle ()函数来设置整个应用程序的风格。如果是想改变程序中某一个控件的风格调用QWidget::setStyle()函数。

60 界面外观(QT风格)_第1张图片

QStyleFactory类可以创建一个QStyle对象,首先通过keys()函数获取可用的风格,然后使用create()函数创建一个QStyle对象。一般windows风格和fusion风格是默认可用的,而有些风格只在特定的平台上才有效,例如windowsxp风格、windowsvista风格、gtk风格和macintosh风格。

    QApplication a(argc, argv);
    // 设置整个窗口的风格
    a.setStyle(QStyleFactory::create("fusion"));

使用不同风格预览程序

首先进入设计模式,可以先修改界面,然后选择“工具→Form Editor→Preview in”菜单项,这里列出了现在可用的几种风格,选择“Fusion风格”,预览效果如下图所示。也可以使用其他几种风格进行预览。

60 界面外观(QT风格)_第2张图片

使用不同风格运行程序

如果想使用不同的风格来运行程序,那么只需要调用QApplication的setStyle()函数指定要使用的风格即可。 例如,在main()函数的“QApplication a(argc, argv);”一行代码后添加如下一行代码:

    QApplication a(argc, argv);
    // 设置整个窗口的风格
    a.setStyle(QStyleFactory::create("fusion"));

这时运行程序,便会使用Fusion风格。 

而如果不想整个应用程序都使用相同的风格,那么可以调用部件的setStyle()函数来指定该部件的风格。

    ui->checkBox->setStyle(QStyleFactory::create("fusion"));
    ui->progressBar->setStyle(QStyleFactory::create("windowsxp"));
    ui->pushButton->setStyle(QStyleFactory::create("gtk"));

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(QT学习)