问:如何打破QInputDialog的LabelText

时间:2011-12-09 16:14:23

标签: qt

这是我的示例代码:

QInputDialog* inDialog = new QInputDialog();
inDialog->setMaximumWidth(100);
inDialog->setLabelText(QString("long and very long......you can say very long"));

输入框显示很长(只要字符串),我期望为LabelText设置自动换行的方式,但似乎QInputDialog没有方法!

我现在能做什么?写我自己的InputDialog类?哦不......! 我希望有更好的方法!

2 个答案:

答案 0 :(得分:1)

我刚刚开始使用QT,所以这可能不是获得你想要的最好的方式但是我会做什么。

我会创建自己的自定义输入对话框,继承QInputDialog。然后我将覆盖setLabelText函数以检查字符串长度是否小于100.

如果小于100,那么您可以继续显示它。如果没有,那么你可以选择添加你的点和删除单词的位置,以减小尺寸。

一旦等于100个字符或更少,您就可以显示它。

如果你愿意的话,我会在回家时试着写一个例子。

答案 1 :(得分:1)

我会自己做,例如:

QString s = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut" ;
QString wrapped ;
if(s.length()>35)
{
    wrapped = s.left(15) + QString(".....") + s.right(15) ;
}
else
{
    wrapped = s ;
}
inDialog->setLabelText(wrapped) ;