QLabel

QLabel_第1张图片

    QLabel *Label = new QLabel(this);
    Label->setText("&This is a QLabel");
    QPushButton *button = new QPushButton("clicked",this);
    Label->setBuddy(button);//如果使用快捷键选择该Label时,焦点跳转到button

    Label->setFocus();//设置焦点
    Label->setIndent(10);//缩进
    Label->setMargin(10);//边缘宽度
    Label->setWordWrap(true);//自动换行
    Label->setGeometry(0,30,100,100);//设置位置和大小
    Label->setTextFormat(Qt::RichText);//文本格式
    Label->setAlignment(Qt::AlignCenter);//对齐方式
    Label->setScaledContents(true);//图片是否铺满Label
    Label->setOpenExternalLinks(true);//是否自动打开链接
    Label->setTextInteractionFlags(Qt::TextSelectableByMouse|Qt::TextSelectableByKeyboard);//文本与用户的交互方式
    Label->setSelection(2,5);//选中从2开始的5个字符[TextInteractionFlags必须具有TextSelectableByMouse和TextSelectableByKeyboard属性]
    qDebug()<hasSelectedText();//是否选中文本

    QPixmap *Pixmap= new QPixmap;
    QLabel *Label2;
    if(Pixmap->load(QStringLiteral("E:/素材/1.jpg")))
    {
        Label2 = new QLabel(this);
        Label2->move(Label->width(),0);//移动至指定位置
        Label2->resize(Pixmap->size());//设置QLabel大小
        Label2->setPixmap(*Pixmap);//设置显示的图片
    }

    QMovie *Movie = new QMovie(QStringLiteral("E:/素材/漫画/5.gif"));
    Movie->start();//动画开始播放
    QLabel *Label3 = new QLabel(this);
    Label3->setMovie(Movie);//设置显示的动画
    Label3->move(Label2->x()+Label2->width(),0);
    Label3->resize(Movie->currentPixmap().width(),Movie->currentPixmap().height());

    QPicture *Picture= new QPicture;
    QPainter painter;
    painter.begin(Picture);//开始绘画
    painter.drawEllipse(0,0, 80,80);//绘制圆
    painter.drawRect(11,11,58,58);//矩形
    painter.end();//结束绘画
    QLabel *Label4 = new QLabel(this);
    Label4->move(0,Label->height());
    Label4->resize(Picture->size(),Picture->size());
    Label4->setPicture(*Picture);//设置绘制的图片

    QLabel *Label5 = new QLabel(this);
    Label5->setGeometry(0,Label4->y()+Label4->height(),100,10);
    Label5->setNum(123);//设置数字
    Label5->setNum(66666.66);//可以看到仅有一位小数,并且是四舍五入

    QLabel *Label6 = new QLabel("clear",this);
    Label6->setGeometry(0,Label5->y()+Label5->height(),100,10);
    Label6->setStyleSheet("border:1px solid red");//设置样式表
    Label6->clear();//可以看到在红框内,内容被清除了


Enumeration list

enum Qt::Alignment

Qt::AlignLeft            水平方向靠左
Qt::AlignRight           水平方向靠右
Qt::AlignHCenter         水平方向居中
Qt::AlignJustify         水平方向调整间距两端对齐

Qt::AlignTop             垂直方向靠上
Qt::AlignBottom          垂直方向靠下
Qt::AlignVCenter         垂直方向居中
Qt::AlignBaseline        对齐基准线

Qt::AlignCenter          相当于AlignVCenter | AlignHCenter

Qt::AlignAbsolute        如果布局是QT::RightToLeft那么Qt::AlignLeft是从右开始,否则是从左开始
Qt::AlignLeading         相当于Qt::AlignLeft
Qt::AlignTrailing        相当于Qt::AlignRight

Qt::AlignHorizontal_Mask 相当于AlignLeft | AlignRight | AlignHCenter | AlignJustify | AlignAbsolute
Qt::AlignVertical_Mask   相当于AlignTop | AlignBottom | AlignVCenter | AlignBaseline


enum Qt::TextFormat

Qt::PlainText 纯文本
Qt::RichText 富文本,具体查看 Supported HTML Subset 
Qt::AutoText 自动文本,既如果内容存在富文本就转换为Qt::RichText


enum Qt::TextInteractionFlag

Qt::NoTextInteraction          文本与用户没有交互
Qt::TextSelectableByMouse      鼠标可以选择
Qt::TextSelectableByKeyboard   可以用键盘方向键选择
Qt::LinksAccessibleByMouse     链接高亮显示,可用鼠标激活
Qt::LinksAccessibleByKeyboard  链接可以使用键盘集中激活
Qt::TextEditable               这是个可以编辑的文本
Qt::TextEditorInteraction      文本编辑器的默认值,相当于TextSelectableByMouse | TextSelectableByKeyboard | TextEditable
Qt::TextBrowserInteraction     QBrowser默认值,相当于TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard


Reimplemented Public Functions


如果有布局默认返回布局的高度,否则返回-1
virtual int heightForWidth(int w) const;

返回最小大小
virtual QSize minimumSizeHint() const;

如果有布局返回建议大小,否则返回无效大小或布局的首选尺寸
virtual QSize sizeHint() const;


Reimplemented Protected Functions


点击链接时发出该信号
void linkActivated(const QString &link);

鼠标经过链接时发出该信号
void linkHovered(const QString &link);

事件变化时
virtual void changeEvent(QEvent *ev)

右键菜单事件
virtual void contextMenuEvent(QContextMenuEvent *ev)

事件
virtual bool event(QEvent *e)

接收子类键盘焦点事件
virtual void focusInEvent(QFocusEvent *ev)

移动焦点到下一个成员
virtual bool focusNextPrevChild(bool next)

焦点事件
virtual void focusOutEvent(QFocusEvent *ev)

按下键盘事件
virtual void keyPressEvent(QKeyEvent *ev)

移动鼠标事件
virtual void mouseMoveEvent(QMouseEvent *ev)

点击鼠标事件
virtual void mousePressEvent(QMouseEvent *ev)

//释放鼠标事件
virtual void mouseReleaseEvent(QMouseEvent *ev)

绘制事件
virtual void paintEvent(QPaintEvent *)

你可能感兴趣的:(QT,QT,QLabel)