• 5797阅读
  • 6回复

如果Button 的内容太长不够显示,如果自动加...【已解决】 [复制链接]

上一主题 下一主题
离线leonzhou
 
只看楼主 倒序阅读 楼主  发表于: 2010-04-07
如果Button 的内容太长不够显示,如何自动加..

就是怎么设置让控件能自动加上  “...”.

QFontMetrics 似乎跟这个有关系》但是又不清楚
[ 此帖被午小夜在2010-04-08 00:47重新编辑 ]
离线yangfanxing
只看该作者 1楼 发表于: 2010-04-07
自动???某见过;
但是可以自己设如果button字符超过N个,则setText() << “(n-1)...”之类的
PHPWind好恶心。。。不想看这种界面。。。
离线leonzhou
只看该作者 2楼 发表于: 2010-04-07
如何设置 (N-1)

总之超过了,总要让用户知道,总不能不知不觉就把后面的字符给丢了啊。
[ 此帖被leonzhou在2010-04-07 15:43重新编辑 ]
离线yangfanxing
只看该作者 3楼 发表于: 2010-04-07
设置完这个后可以加个tip提示全部的字符~
PHPWind好恶心。。。不想看这种界面。。。
离线leonzhou
只看该作者 4楼 发表于: 2010-04-07
关键是不知道怎么设置 啊,

hardcode 代码来了哦 ,明白了。。。 这也太土了啊

tip 本来就加的有。
离线rr_tw
只看该作者 5楼 发表于: 2010-04-07
Re:如果Button 的內容太長不夠顯示,如果自動加...
为什么Button的内容文字会改变?
要使用者把滑鼠游标移上去等一下、然后才能看到完整的Button文字?
如果会变长到Button容不下,那这个UI与操作流程的设计是有问题的...


基本只有两个办法
1) 重新检视UI设计吧
2) 在"改变Button内容文字"的地方
    i. 把文字加上...
   ii. 或把Button变长一点

如果可以,还是建议您改UI设计吧~
中華民族,中華聯邦,這主意如何?
离线leonzhou
只看该作者 6楼 发表于: 2010-05-19
void StrFitLabel(const QString strInput, QString &strOutput, int pixelsMaxWide)
{
    QFont font("Arial", 11);
    QFontMetrics fm(font);
    int pixelsWide = fm.width(strInput);
    if (pixelsWide > pixelsMaxWide){
        QString strTmp;
        strTmp = strInput;
        while(pixelsWide > pixelsMaxWide){
            strTmp = strTmp.left(strTmp.length() - 1);
            pixelsWide = fm.width(strTmp);
        }
        strOutput = strTmp + "...";
    }else{
        strOutput = strInput;
    }
}

这样就可以了,设计什么UI啊?
本来这个框子就这么大,但是要显示的东西确实长,你总要解决啊。
快速回复
限100 字节
 
上一个 下一个