Gegenstück zu frameSize() ???
Gegenstück zu frameSize() ???
Hallo,
ich verzweifele derzeit an einem Problem: ich suche eine Methode, mit der ich das Property QWidget::fameSize setzen kann...
Mit QWidget::frameSize() kann ich es zwar auslesen (inkl. WindowFrame!), aber es scheint weder ein Gegenstück (setFrameSize()) noch etwas alternatives zu geben, um die Widgetgröße inkl. des WindowFrames zu setzen. Height und Width kommen ja leider nicht in Frage!
Zur Erklärung des WindowFrames bzw. innerer/äußerer Größe bitte folgenden Link nutzen:
http://doc.trolltech.com/3.3/geometry.html
Hilfe, Para
PS:
Ja, ich brauche die äußere Größe des Widgets... Ich könnte auch die innere verwenden, wenn ich durch Addition der "FrameWidth" die äußere Größe berechnen könnte - gibt es diese "FrameWidth" irgendwo?
ich verzweifele derzeit an einem Problem: ich suche eine Methode, mit der ich das Property QWidget::fameSize setzen kann...
Mit QWidget::frameSize() kann ich es zwar auslesen (inkl. WindowFrame!), aber es scheint weder ein Gegenstück (setFrameSize()) noch etwas alternatives zu geben, um die Widgetgröße inkl. des WindowFrames zu setzen. Height und Width kommen ja leider nicht in Frage!
Zur Erklärung des WindowFrames bzw. innerer/äußerer Größe bitte folgenden Link nutzen:
http://doc.trolltech.com/3.3/geometry.html
Hilfe, Para
PS:
Ja, ich brauche die äußere Größe des Widgets... Ich könnte auch die innere verwenden, wenn ich durch Addition der "FrameWidth" die äußere Größe berechnen könnte - gibt es diese "FrameWidth" irgendwo?
Ich benutze beschriftete (aligned) Label mit border, die ich per drag 'n' drop verschieben/positionieren bzw. vergößern/verkleinern kann. Danach speichere ich die Positionen sowie die Größe dieser Labels, um deren Anordnung später wieder laden zu können... Ich benötige die äußere Größe, damit ich das gesamte Label (inkl. border) berücksichtigen kann. Außerdem stellen diese Positionen und Abmessungen Daten dar, die ich im weiteren noch verwenden muss.
Eine Umstellung auf QCanvas wäre sehr umständlich, wie ich finde, da sich der Text der Label sehr einfach hinsichtlich Fontgröße, -art und Alignment ändern lässt. Auch die drag 'n' drop Geschichte wäre mit einem Canvas und kombinierten CanvasItems + Text deutlich aufwändiger, oder...?
Para
Eine Umstellung auf QCanvas wäre sehr umständlich, wie ich finde, da sich der Text der Label sehr einfach hinsichtlich Fontgröße, -art und Alignment ändern lässt. Auch die drag 'n' drop Geschichte wäre mit einem Canvas und kombinierten CanvasItems + Text deutlich aufwändiger, oder...?
Para
Code: Alles auswählen
setGeometry( x,y , breite, höhe);
benutzte QT 3.2 nc auf w2k
Re: Gegenstück zu frameSize() ???
Du musst auch die innere Groesse verwenden, die aeussere kannst einfach nicht setzen.para hat geschrieben: PS:
Ja, ich brauche die äußere Größe des Widgets... Ich könnte auch die innere verwenden, wenn ich durch Addition der "FrameWidth" die äußere Größe berechnen könnte - gibt es diese "FrameWidth" irgendwo?
Dazu musst einfach ueber die Differenz zwischen frameSize() und size() deine Randgroessen berechnen, diese dann in weitere Berechnungen einfliessen lassen und kannst dann per setFixedSize() deine neue Groesse setzen.
Goos
Tja schade, das hatte ich schon befürchtet...
Kann mir jemand sagen, ob sich die Rahmenstärke (äußere minus innere Größe) jemals ändert - z.B. durch Window-Dekorationswechsel? Es könnte ja auch sein, dass der Wert z.B. immer dem Border Property des Widgets entspricht und somit konstant bleibt, egal auf welcher Platform oder unter welchem Theme...
Para
Kann mir jemand sagen, ob sich die Rahmenstärke (äußere minus innere Größe) jemals ändert - z.B. durch Window-Dekorationswechsel? Es könnte ja auch sein, dass der Wert z.B. immer dem Border Property des Widgets entspricht und somit konstant bleibt, egal auf welcher Platform oder unter welchem Theme...
Para
Du kannst dich auf jeden Fall nicht darauf verlassen, dass die Rahmenwerte immer gleich sind. Es ist einfach nicht definiert, dass die Rahmenstaerke gleich bleiben musspara hat geschrieben: Kann mir jemand sagen, ob sich die Rahmenstärke (äußere minus innere Größe) jemals ändert
Para
Intern laeuft die Ermittlung des Rahmens in etwa ueber einen Vergleich zwischen GetWindowRect und GetClientRect ab. Aus dem Grund kann man nie sicher sein, ob der Rahmen gleich bleibt.
Ausserdem scheinen popup Widgets keinen Rahmen zu haben.
Goos
Gilt das selbst für Label? "Normale" Fenster verhalten sich ja schon etwas anders... Wenn ich z.B. mit
das Aussehen festlege, kann ich daraus nicht das Verhältnis von äußerer zu innerer Größe ableiten?
Para
Code: Alles auswählen
lbl->setFrameShape(QFrame::Box);
lbl->setLineWidth(1);
Para
Sch**sse!!! Wer lesen kann ist klar im Vorteil! Da renn ich seit Wochen hinter einer Lösung her und gebe sie ständig selbst...!
Unter erwähntem Link steht ganz deutlich folgendes:
Trotzdem danke, Para
PS: Viel Glück mit der neuen Community
Unter erwähntem Link steht ganz deutlich folgendes:
Hat sich also längst erledigt und mein Problem liegt offensichtlich ganz woandersNote that the distinction only matters for decorated top-level widgets. For all child widgets, the frame geometry is equal to the widget's client geometry.
Trotzdem danke, Para
PS: Viel Glück mit der neuen Community