记:QSS与Qt主程序做到界面分离

8 篇文章 0 订阅
1 篇文章 0 订阅

Qt中能够实现逻辑程序与界面分离,

主要是将按钮贴图,颜色绘制等放到qss文件中,然后由相应的窗口加载就可以。

有几点注意:

1.不同的窗口可以加载不同的qss文件。例如程序中有多个窗口,那么你可以为每个窗口写一个qss文件,这样每个窗口就有自己独特的风格了。

  而且更换皮肤时,只要将加载的qss文件更换一下就可以。

  加载qss的相关代码:

        //载入qss界面文件

    QFile  qss("style.qss");    //绿色中为qss资源文件的路径,根据需要更改
    if(!qss.open(QFile::ReadOnly))
    {
        qDebug("can not open qss !");
        return 0;
    }
    w.setStyleSheet(qss.readAll());

上面中 w  是窗口对象,如果QApplication a(argc, argv); 中 a.setStyleSheet(qss.readAll());则默认为整个程序中所有窗口都是这个qss风格。

2.qss中既可以统一风格,又可以单独定制。例如:

/*主窗口背景图*/
QMainWindow{
    border-image:url(./image/blue.jpg);
}
QPushButton{border:0px;border-radius:15px;font-weight:bold;color:red;}

/*特定按钮贴图*/
QPushButton#pushButton{
    color: white;
    font: bold 10pt;
    border:none;
    border-radius:5px;
    border-image:url(./image/button-yellow.png);
}

QPushButton#pushButton:hover{
    border-image:url(./image/button-blue.png) ;
}

QPushButton#pushButton:pressed{
    border-image:url(./image/button-red.png);
}
/*一般按钮样式*/
QPushButton:hover{
background:qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 rgba(100,100,100,200),
stop: 0.5 rgba(0,255,100,200), 
stop:1 rgba(100,100,100,200));
}
QPushButton:focus{
background:qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 rgba(150,150,150,150),
stop: 0.5 rgba(50,50,50,255), 
stop:1 rgba(0,0,0,200));
}

上述代码中,通过 # 后加控件名字就可以专门为该控件设计风格。这样qss就能具体到每个控件的界面美化,而不用在程序里掺杂,做到界面分离。相关的其他qss的用法可以查阅qt文档。
下面是测试例子效果;

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt QSSQt 的一种样式表语言,可以用于定制 Qt 界面的外观和样式,可以通过修改 QSS 文件来改变控件的颜色、字体、边框等。 主界面是程序的入口和展示界面,一般包括菜单、工具栏、状态栏等。它通常用来展示程序的核心功能,帮助用户快速定位和使用各项功能。 菜单是界面中的一个重要组成部分,通常用于显示程序中可用的命令和选项。通过菜单,用户可以方便地找到并选择所需的功能,从而完成相应的操作。 框架式界面是一种常见的设计模式,它将界面拆分为不同的区域或窗格,每个区域显示特定的内容或功能模块,提高界面的可维护性和扩展性。使用框架式界面可以使用户更加灵活地组织和管理界面的布局和内容。 Ribbon 是一种流行的界面设计风格,常见于办公软件和图形编辑工具中。它将菜单、工具栏和控件等功能组织在一个带有选项卡(Tab)的区域中,用户可以通过点击不同的选项卡切换到不同的功能模块。Ribbon 界面风格提供了更多功能的扩展空间,使得界面更加美观和高效。 综上所述,Qt QSS 可以用于定制 Qt 界面的样式;主界面是程序的入口和展示界面,一般包括菜单、工具栏、状态栏等;菜单用于显示程序中可用的命令和选项;框架式界面可以提高界面的可维护性和扩展性;Ribbon 是一种流行的界面设计风格,提供了更多功能的扩展空间。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值