QT QSS setStyleSheet 利用宏快速设置按钮的三态点击效果

写在前面

学习QT有几个月了,从起初的ui界面拖拖拽拽演化到用代码制作界面。

可是发现自己在设置样式表的时候,一个按钮的三态效果,字符串实在是太长了,很影响码容。

于是写了一个宏去简化代码,让代码看起来整洁了许多,分享给大家。有可以改进的地方,不吝赐教。


内容简介

Qt Creator : 4.0.2

Qt : 5.0.2


学习源码

优化前

ui->exitButton->setText("");
    ui->exitButton->setStyleSheet(
                QString("QPushButton{border-image: url(:/base/exit)}"
                        "QPushButton:pressed{border-image: url(:/base/exit_pressed)}"
                        "QPushButton:houver{border-image: url(:/base/exit_houver)}");


优化后

    // 退出按钮
    ui->exitButton->setText("");
    ui->exitButton->setStyleSheet(
                QString(BUTTON_STYLESHEET(QPushButton,:/base/exit)));

#define BUTTON_STYLESHEET(class_name,image_url) (#class_name"{border-image: url("#image_url")}" \
    #class_name":pressed{border-image: url("#image_url"_pressed)}")


相关文章:C/C++ "#"与"##"的作用与用法 【点击前往】

结后语

利用宏的不做类型检查和预编译的特性,不会影响运行效率。



你可能感兴趣的:(Qt,《Qter,必知必会》)