2011-12-09 27 views
1

的LabelText的这里是我的示例代码:的Qt如何打破QInputDialog

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

显示很长的(只要该字符串)的输入框,我预计将设置自动换行的方式LabelText,但它似乎QInputDialog没有办法!

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

回答

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) ; 
1

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

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

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

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

我会尝试写一个例子,当我回家时,如果你愿意。

+0

貌似图腾编写的代码为您服务。我个人将该函数添加到继承的QInputDialog。 –