2012-12-13 20 views
5

Ayar metin: Ben kaçak “Something” seçtiğinizdeQTextEdit :: adjustSize() çalışmıyor? <code>QTextEdit</code> için

te->setPlainText(“Something”) ; 
te->adjustSize(); 

yerine QTextEdit maksimum genişlik-yükseklik için genişlemektedir sadece “Something”, etrafında sarmak gerektiğini .. tamir edemez Zaman, sadece “bir şey” vurgulanır, ekstra beyaz boşluk eklenmez.

Beklentiler: Metin biri Line sığacak kadar küçük olduğunda metin sarmak için gerektiğinde, metin düzenleme, yüksekliği genişletmek olmamalı, sadece ekstra çizgi genişliği değil maksimum genişliği eklenmelidir. adjustSize(); denilen değilse

, Yaratıcı'ya .ui kuruldu genişliğine kaydırılır metin, dinamik .. yatay ne de dikey olarak genişlemez

Bazı Bilgisi:

Yatay Politikası:
Dikey İlkesi Genişleyen:
MinimumSize MinimumExpanding: 2 × 22
maksimum boyutu: 300 × 100
lineWrapMode: WidgetWidth

cevap

2

Evet, QTextEdit numaralı hatlarda satır saymanın kolay bir yolu yok gibi görünüyor.
adjustSize()QWidget için üretilmiştir ve QTextEdit için yeniden kullanıma sunulmamıştır, sizeHint() temel alınmıştır.
Hatları saymak için kendi yönteminizi kullanabilirsiniz, örn.

  1. metinden
  2. Sen 22'ye yüksekliğini ayarlamak ve maximumHeight hitted veya dikey kaydırma çubuğu dissapears kadar artırmak olabilir her kelimenin genişliğini hesaplamak için QFontMetrics kullanabilirsiniz.
  3. QTextEdit kaynaklarından bazı bilgileri alabilir ve alt sınıfı yeniden görüntüleyebilir (adjustSize()?).
+0

Teşekkür ederim :) Buna göre metin genişliğini ve QGextEdit için setGeometry değerini hesaplamaya çalışacağım. – Noob

+0

Merhaba, aynı sorunla karşılaştım. Çalışırsa çözümü paylaşır mısınız? – Aleksandar