首页 > 其他分享 >Qt QLable 字符过长省略

Qt QLable 字符过长省略

时间:2024-03-18 13:23:46浏览次数:11  
标签:省略 Qt QLable label width ui MainWindow

前言:

项目中常用到字符过长问题,Qt默认的省略并不好用,不是自己想要的;

QFontMetri

可使用 QFontMetri

text的像素宽度超过width,将返回字符串的一个省略版本取决于mode。否则将返回原字符串;

mode:

1     enum TextElideMode {
2         ElideLeft,
3         ElideRight,
4         ElideMiddle,
5         ElideNone
6     };

一般我们喜欢右边省略

code:

 1 MainWindow::MainWindow(QWidget *parent) :
 2     QMainWindow(parent),
 3     ui(new Ui::MainWindow)
 4 {
 5     ui->setupUi(this);
 6     const QString str =  "aaaaaaaaadddbbbbccccccr";
 7     ui->label->setText(str);
 8  
 9     QString omitStr = GetOmitString(ui->label_2->font(),str,ui->label_2->width());
10     ui->label_2->setText(omitStr);
11  
12 }
13 QString MainWindow::GetElideString(const QFont &font, const QString content, const int width)
14 {
15    QFontMetrics fontMetrics(font);
16    return fontMetrics.elidedText(content, Qt::ElideRight, width);
17 }

效果:

第一个默认,第二个右边省略

 

标签:省略,Qt,QLable,label,width,ui,MainWindow
From: https://www.cnblogs.com/ybqjymy/p/18080171

相关文章

  • QT5.14.2 探秘Qt信号槽奥秘--让对象间通信如虎添翼
    一、前言在当今这个万物互联的时代,对象间通信无疑是编程领域中最为基础也最为重要的问题。作为知名的跨平台开发框架,Qt自然也需要解决这一问题。于是,Qt巧妙地提出了信号与槽(Signals&Slots)这一机制,以观察者模式的思路让对象间通信变得行云流水。那么,Qt信号与槽的本质......
  • Qt QTableView、QTableWidget设置表头
    以下是两个设置表头的不同方法:QTableWidget:1//设置表头2QStringListheardList;//表头3heardList<<QString::fromLocal8Bit("接收")<<QString::fromLocal8Bit("发送");4ui.tableWidget>setColumnCount(heardList.count());5ui.tabl......
  • Qt QTableView和QTableWidget之间的联系 和 区别?什么时候该用QTableView,什么时候该用Q
    QTableView和QTableWidget是Qt中用于显示和编辑表格数据的两个不同的部件,它们之间存在一些重要的区别:一、主要区别是:QTableView可以使用自定义的数据模型来显示内容(也就意味着使用时先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型。二、不同角度......
  • C++ Qt开发:QTcpSocket网络通信组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QTcpSocket组件实现基于TCP的网络通信功能。QTcpSocket和QTcpServer是Qt中用于实现基于T......
  • Qt/C++监控推流设备推流/延迟极低/实时性极高/rtsp/rtmp推流/hls/flv/webrtc拉流/调整
    一、前言算下来这个推流的项目作品写了有四年多了,最初第一个版本只有文件点播的功能,用的纯QTcpSocket通信实现,属于比较简单的功能。由于文件点播只支持文件形式的推流,不支持网络流或者本地设备采集,所以迫切需要打破这个瓶颈,而后加入核心的网络推流功能,这也是本项目的核心功能,不仅......
  • [转]【Qt-license】误操作qt下载导致只能安装商业版试用十天,无法安装社区版
    背景:原本是为了学习qml,需要下载一个designstudio,而这个需要比较新版的安装程序,但新版的安装程序官方都是online安装。于是从官网找下载链接。毕竟是英文的,又心急,误打误撞中我选择了商业版试用。  其实online安装程序是一样的(qt-unified-windows-x64-4.6.1-online.exe),一旦选......
  • 【Linux】linuxCNC+Qt+Opencascade+kdl+hal 实时6轴机器人控制器
    CNC机器人程序框架机器人模型笔记:debian重启后无法打开共享目录最新版搜狗输入法安装后不支持中文,需要安装旧版本的sogoupinyin_4.0.1.2800_x86_64.deb可用数控机器人在哪些领域应用有优势数控机器人在多个领域都展现出了显著的优势,特别是在需要高精度和......
  • #QT(事件--快捷键保存文件)
    1.IDE:QTCreator2.实验:QEvent,QMouseEvent,QKeyEvent。在上一个文本编辑器的基础上实现快捷键"ctrl+s"保存文件。3.记录(1)查看QEVENT的有效事件(2)所有时间均继承于QEvent,任意QObject对象都可以处理事件,而大多数类都继承于QObject。(3)事件分为两类:a.自动发生,定时器事件。......
  • 【Qt】使用Qt实现Web服务器(一):QtWebApp介绍、演示
    1、简介QtWepApp是使用Qt实现的Web服务器库,虽然名字中有“App”但是它的确是一个lib库,编译生产的是libQtWebAppd.so作者开发QtWepApp是从JavaServlet获得的灵感,本人不懂Java,对本人没有帮助。QtWepApp是一个跨平台的项目,适用于:Linux、Windows、MacOS和QtFramework支......
  • 【Qt】使用Qt实现Web服务器(二):QtWebApp示例源码
    1、最简使用介绍Demo2演示了最简单的用法,输入url后返回“HelloWorld!”;下面详解示例代码,先看主函数1.1主函数#a)QtWebApp库中定义的名字空间stefanfringsusingnamespacestefanfrings;intmain(intargc,char*argv[]){......