这个方法有两种解决方案,1是采用图片,也就是把文字做成图片,然后把图片放到按钮上,这种方法比较稳定,但是比较麻烦,下面说一下另一种,也就是直接添加。
直接添加的基本思路如下:带有上下标的文字可以通过Qlabel实现,那么只要将Qlabel放到按钮上面,就能实现我们想要的效果。需要注意的是,为了让文字在按钮的正中间显示,需要对Qlabel实施布局操作。
在ui界面中,只能单独的拖出来button和label,label不能放到buttton上,所以必须通过代码实现。
实现代码如下:
QLabel *l_2nd=new QLabel();//设计新的label,
l_2nd->setText("2<sup>nd</sup>");//文字上下标形式
l_2nd->setParent(ui->pushButton_2nd);//设置Qlabel的父窗口,也就是按钮
l_2nd->setAlignment(Qt::AlignCenter);//设置Qlabel的文字居中
QFont ft;
ft.setPointSize(22);
l_2nd->setFont(ft);//设置我们想要的字体
QVBoxLayout *l_2nd_hBox=new QVBoxLayout(ui->pushButton_2nd);//通过布局操作,将文字显示在button中间。要注意,必须指定窗口,不然会出错
l_2nd_hBox->addWidget(l_2nd);//把label添加到布局中
// 上标:<sup>上浮内容</sup>
//下标:<sub>下浮内容</sub>
文字上下标的实现方式如下(htm语言):
上标:上浮内容
下标:下浮内容
参考:参考虽然是python的,但是语法上基本一致:添加链接描述
布局的代码实现参考:添加链接描述
此外,如果上下标是单纯的数字上下标可以参考:添加链接描述
这个主要是利用Unicode字符映射表实现,但是不是很稳定,并且映射表的上下标一般仅有数字,没有字母