Qgraphicsscene-spor

Fa via App Store Les dette innlegget i var app!

endre storrelse pa en dialog med PyQt4.

Jeg har denne eksemplar av kode:

Jeg kjorer den og nar moreButton klikket ComboBox vises eller forsvinner. Dialogens storrelse endres ogsa. Men hvis jeg endrer metoden til:

(for a angi startstorrelsen nar kombinasjonsboksen er skjult), fungerer ikke storrelsen pa storrelse. Men hvis jeg klikker resizeButton – som er koblet til samme metode – fungerer storrelsen pa riktig mate.

Jeg vet at det finnes andre mater a oppna et slikt resultat pa (f.eks. Layout.setSizeConstraint (QLayout.SetFixedSize)), men jeg vil erkl re storrelsen eksplisitt.

Hva gjor jeg galt?

Min gjetning er at du prover a endre storrelsen pa QDialog for det er pa tide a justere storrelsen etter at du har skjult ting. Sa pa den tiden resize er kalt den har en minimumstorrelse som sorger for at knappene og comboboxen er synlige. Nar du ringer det etter en tid, har den na riktig miminumSize og svarer riktig.

En rask losning er manuelt overstyrende minimumstorrelse for du endrer storrelsen:

Men hvis jeg skulle takle dette, ville jeg bare forlate a administrere resizing til layoutet og bruke sizeConstraint. Det er hva disse layoutene for allikevel.

Dette sporsmalet og svarene var nyttige i min situasjon: Automatisk liming av en QDialog med QLayout / QVBoxLayout som inneholder en QLabel med variabel storrelse innhold / melding til brukeren, samtidig som du unngar dobbeltpilmarkoren ved grensen til den totale QDialog-beholderen. Storrelsespolitikken til selve dialogen ble satt til Fast, men pilene ville likevel vises selv om det ikke kan endres (vil ikke budge). Og selv om det indre formatet automatisk / magisk endres, bruker SetFixedSize pa layoutet (overraskelse, overraskelse) gjort de irriterende dobbeltpilene i den generelle QDialog ga bort.

. og na er dialogstorrelsene selv hensiktsmessig til volumet som er inneholdt i etiketten, men dialogen i seg selv er ikke (tilsynelatende) bruker-resizable, noe som er bra for informasjon og feilmeldinger.

Syntes motstridende for meg, sa jeg trodde verdt a legge til her for andre.

Litt mer detaljert.

Dette problemet ser ut til a v re forarsaket av ordren der hendelser behandles.

Her er en enkel losning:

provde du dette? med mindre jeg misforstar, er dette det du vil gjore.


Hilsener! Vil du spille i det mest ærlige kasinoet? Vi samlet det for deg. Spill her nå!