2011-12-09 54 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。 –