zoukankan      html  css  js  c++  java
  • Qt 界面使用自己定义控件 "提升为"

    1.效果图


    我做了一个很easy的样例,一个能够显示颜色的QLabel,边上有个button,点击,跳出颜色选取的Dialog,然后选择一个颜色。这个QLabel会变成什么颜色。


    2.ColorLabel 


    我们先把这个自己定义的类写好:

    头文件:

    #ifndef COLORLABEL_H
    #define COLORLABEL_H
    
    #include <QLabel>
    #include <QPainter>
    
    class ColorLabel : public QLabel{
        Q_OBJECT
    public:
        explicit ColorLabel(QWidget *parent=0);
        void setColor(QColor c);
    private:
        QColor color;
        QPainter *paint;
        void paintEvent(QPaintEvent *);
    };
    
    
    #endif // COLORLABEL_H
    

    实现文件:

    #include "colorlabel.h"
    
    
    ColorLabel::ColorLabel(QWidget *parent):QLabel(parent), color(Qt::white){
    }
    
    void ColorLabel::paintEvent(QPaintEvent *){
        paint = new QPainter;
        paint->begin(this);
        paint->setBrush(QBrush(color,Qt::SolidPattern));
        paint->drawRect(0, 0, this->geometry().width(), this->geometry().height());
        paint->end();
    }
    
    void ColorLabel::setColor(QColor c){
        color = c;
    }
    
    
    
    

    3.界面文件中加入ColorLabel

    拖一个普通的QLabel到界面文件中。然后右击这个控件,选择提升为。



    输入类名称,就OK了。


    我们能够去Qt依据布局文件生成的头文件中面看下,它自己包括了colorlabel.h,把QLabel都改成了ColorLabel。


    Qt写起来真是不错。


    4.本博文样例下载:

    http://www.waitingfy.com/?

    attachment_id=1170



    參考:

    Qt 界面使用自己定义控件


  • 相关阅读:
    python文件、文件夹操作OS模块
    python字符串
    python集合set
    多市场交易碎片交易
    基金公司主要系统
    高频交易:Solarflare组建超低延迟网络
    上交所技术前沿
    高频交易低延迟:信鸽、100微妙和恒生的纳秒试验
    解密PB
    解密HOMS
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5179672.html
Copyright © 2011-2022 走看看