QT 操作 QLabel

4 篇文章 0 订阅

内容可以被选择

QLabel* label = new QLabel;
label->setTextInteractionFlags(Qt::TextSelectableByMouse);
enum TextInteractionFlag {
       NoTextInteraction         = 0,//没有文本交互:只有展示的功能
       TextSelectableByMouse     = 1,//文本可以被鼠标选择
       TextSelectableByKeyboard  = 2,//可以操纵键盘,文本栏会出现光标,不能删除,但是按上下左右按键,光标可以跟着文本移动,鼠标无法操作
       LinksAccessibleByMouse    = 4,//可由鼠标访问的链接
       LinksAccessibleByKeyboard = 8,//可由键盘操作访问的链接
       TextEditable              = 16,//文本可编辑

       TextEditorInteraction     = TextSelectableByMouse | TextSelectableByKeyboard | TextEditable,
       TextBrowserInteraction    = TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard
};

自动换行

label->setWordWrap(true);

字体

QFont ft;
ft.setPixelSize(16);
label->setFont(ft);

无边框

label->setStyleSheet("QLabel{boder-width:0px}");//让QLabel控件的边框大小设置为0
//设置边框颜色
label->setStyleSheet("QLabel{border:1px solid red})");

背景色

QPalette pa;
pa.setColor(QPalette::WindowText,Qt::red);
label->setPalette(pa);
 enum GlobalColor {
        color0,
        color1,
        black,
        white,
        darkGray,
        gray,
        lightGray,
        red,
        green,
        blue,
        cyan,
        magenta,
        yellow,
        darkRed,
        darkGreen,
        darkBlue,
        darkCyan,
        darkMagenta,
        darkYellow,
        transparent
};

内容居中

label->setAlignment(Qt::AlignCenter);
  enum AlignmentFlag {
        AlignLeft = 0x0001, //靠左
        AlignLeading = AlignLeft,
        AlignRight = 0x0002,//靠右
        AlignTrailing = AlignRight,
        AlignHCenter = 0x0004,//横向居中
        AlignJustify = 0x0008,
        AlignAbsolute = 0x0010,
        AlignHorizontal_Mask = AlignLeft | AlignRight | AlignHCenter | AlignJustify | AlignAbsolute,

        AlignTop = 0x0020, //靠上
        AlignBottom = 0x0040, //靠下
        AlignVCenter = 0x0080,//纵向居中
        AlignBaseline = 0x0100,
       
        AlignVertical_Mask = AlignTop | AlignBottom | AlignVCenter | AlignBaseline,

        AlignCenter = AlignVCenter | AlignHCenter //横向 纵向 居中
    };

QLabel添加超链接

1.方法1:使用信号槽绑定方式

//设置超链接并绑定信号槽
QLabel *linkLabel = new QLabel();
linkLabel->setText("<a href=\"http://www.cnblog.com/fron_csl\">linkLabelTest");
connect(linkLabel, SIGNAL(linkActivated(QString)), this, SLOT(openUrl(QString)));

//槽函数实现
void testWidget::openUrl(QString url)
{
QDesktopServices::openUrl(QUrl(url));
// //若是文件路径,则需使用下面的打开方式,具体可参见QUrl帮助文档
// QDesktopServices::openUrl(QUrl("file:///" + url, QUrl::TolerantMode));
}

2.方法2:通过设置QLabel属性实现超链接(此方法不需要绑定信号槽,比较简单)

linkLabel->setOpenExternalLinks(true);
linkLabel->setText("<a href=\"http://www.cnblog.com/fron_csl\">linkLabelTest");

QT是支持HTML的,所以呢,以下设置有效
1,设置超链接颜色

linkLabel->setText("<a style='color: green;' href=\"http://www.cnblog.com/fron_csl\">linkLabel");

2,去掉超链接下面的下划线

linkLabel->setText("<style> a {text-decoration: none} </style> <a href=\"http://www.cnblog.com/fron_csl\">linkLabel");
设置链接颜色:
ui.labView->setText(QString::fromLocal8Bit("<a style='color: green;' href = www.doshow.com> 查看</a>"));
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值