美文网首页
QPushButton美化

QPushButton美化

作者: 秋冬不寒 | 来源:发表于2022-05-02 23:03 被阅读0次
    1. QPushButton支持盒子模型,支持 :default, :flat, :checked三种伪状态。
    2. 对于有菜单的按钮, 菜单指示器可以使用 ::menu-indicator 子控件进行修饰。
    3. 同时可以定制菜单按钮的 :open(菜单打开) 和 :closed(菜单关闭) 状态.
      注意:使用background-color设置背景颜色时,需要同时设置border属性。否则,绘制默认的按钮边框时,背景颜色会被覆盖。
      示例一:
    QPushButton {
    border: 2px solid #8f8f91;
    border-radius: 6px;
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
    stop: 0 #f6f7fa, stop: 1 #dadbde);
    min-width: 80px;
    }
    

    效果如下:


    效果1.png

    在示例一的基础上,添加以下内容:

    QPushButton:pressed {
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
    stop: 0 #dadbde, stop: 1 #f6f7fa);
    }
    

    当点击按钮时,效果如下:


    按压效果.png

    其他样式如下:

    QPushButton:flat {
    border: none; /* no border for a flat push button */
    }
    QPushButton:default {
    border-color: navy; /* make the default button prominent */
    }
    QPushButton:open { /* when the button has its menu open */
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
    stop: 0 #dadbde, stop: 1 #f6f7fa);
    }
    QPushButton::menu-indicator {
    image: url(menu_indicator.png);
    subcontrol-origin: padding;
    subcontrol-position: bottom right;
    }
    QPushButton::menu-indicator:pressed, QPushButton::menu-indicator:open {
    position: relative;
    top: 2px; left: 2px; /* shift the arrow by 2 px */
    }
    QPushButton { /*Border Image 的使用*/
    color: grey;
    border-image: url(/res/button.png) 3 10 3 10;
    border-top: 3px transparent;
    border-bottom: 3px transparent;
    border-right: 10px transparent;
    border-left: 10px transparent;
    }
    

    效果如下:


    image.png

    附全部代码:

    QPushButton {
    border: 2px solid #8f8f91;
    border-radius: 6px;
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
    stop: 0 #f6f7fa, stop: 1 #dadbde);
    min-width: 80px;
    }
    QPushButton:pressed {
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
    stop: 0 #dadbde, stop: 1 #f6f7fa);
    }
    
    QPushButton:flat {
    border: none; /* no border for a flat push button */
    }
    QPushButton:default {
    border-color: navy; /* make the default button prominent */
    }
    QPushButton:open { /* when the button has its menu open */
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
    stop: 0 #dadbde, stop: 1 #f6f7fa);
    }
    QPushButton::menu-indicator {
    image: url(menu_indicator.png);
    subcontrol-origin: padding;
    subcontrol-position: bottom right;
    }
    QPushButton::menu-indicator:pressed, QPushButton::menu-indicator:open {
    position: relative;
    top: 2px; left: 2px; /* shift the arrow by 2 px */
    }
    QPushButton { /*Border Image 的使用*/
    color: grey;
    border-image: url(/res/button.png) 3 10 3 10;
    border-top: 3px transparent;
    border-bottom: 3px transparent;
    border-right: 10px transparent;
    border-left: 10px transparent;
    }
    

    相关文章

      网友评论

          本文标题:QPushButton美化

          本文链接:https://www.haomeiwen.com/subject/flzvyrtx.html