QAbstractSlider einbinden

Alles rund um die Programmierung mit Qt
Antworten
Markow
Beiträge: 19
Registriert: 17. November 2011 10:54

QAbstractSlider einbinden

Beitrag von Markow »

Hey Leute ich bin was Qt angeht noch völlig neu.

Ich meine ich kann durch Buttons Dinge füllen und ausrechnen lassen usw. aber der drecks Slider macht einfach nichts. Wie mus man den wo einbinden? Oder mus ich ein slot dafür erstellen und über ein Signal dem vorgeben was der zu tun hat?

Edit:

Ok die Dummheit ist heute wirklich grenzenlos!
Um in einem Fenster nach unten zu scrolllen schmeiss ich alles in eine QScrollArea. Leider ist die scrollbar aber grau und nicht benutzbar, obwohl viele Objekte nicht sichtbar sind.

Kann mir einer das Brett vor dem Kopf mal entfernen? :)
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: QAbstractSlider einbinden

Beitrag von franzf »

Schau dir das widgetResizable Property von QScrollArea an. (Vor allem auch die Doku dazu)
Markow
Beiträge: 19
Registriert: 17. November 2011 10:54

Re: QAbstractSlider einbinden

Beitrag von Markow »

ich verstehs nicht....

Ich arbeite mit dem Qt Creator und möchte über eingabefenster ini-files erstellen. Bei gut 50 Eingaben pro Liste mus ich eben scrollen können. Warum ist das in einem Fenster eigentlich nicht integriert? Die Dokumentation knnte für mich chinesischer nicht sein gerade :/

wo finde ich hier die Lösung? http://harmattan-dev.nokia.com/docs/lib ... zable-prop

Edit: WidgetResizable ist enabled.
brax
Beiträge: 208
Registriert: 11. Mai 2010 11:22

Re: QAbstractSlider einbinden

Beitrag von brax »

Ich hab ne Vermutung, ist aber ohne Deinen Code schwer zu sagen. Du sagst, Du "schmeisst alles in eine QScrollArea". Könnte es sein, dass Du QScrollArea::setWidget mehrfach aufrufst? Wenn ja, dann landet nämlich nur das letzte Widget wirklich in der QScrollArea.

Könntest Du vielleicht etwas Code posten? Macht es einfacher...
Markow
Beiträge: 19
Registriert: 17. November 2011 10:54

Re: QAbstractSlider einbinden

Beitrag von Markow »

Tut mir leid für die Code Bombe :(

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Randbedingungen</class>
 <widget class="QMainWindow" name="Randbedingungen">
  <property name="enabled">
   <bool>true</bool>
  </property>
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>668</width>
    <height>722</height>
   </rect>
  </property>
  <property name="maximumSize">
   <size>
    <width>20000</width>
    <height>20000</height>
   </size>
  </property>
  <property name="windowTitle">
   <string>Grundlegende Randbedingungen</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <widget class="QScrollArea" name="scrollArea">
    <property name="geometry">
     <rect>
      <x>60</x>
      <y>30</y>
      <width>491</width>
      <height>541</height>
     </rect>
    </property>
    <property name="widgetResizable">
     <bool>true</bool>
    </property>
    <widget class="QWidget" name="scrollAreaWidgetContents">
     <property name="geometry">
      <rect>
       <x>0</x>
       <y>0</y>
       <width>489</width>
       <height>539</height>
      </rect>
     </property>
     <widget class="QLabel" name="Erdbeschleunigen">
      <property name="geometry">
       <rect>
        <x>40</x>
        <y>440</y>
        <width>91</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>Erdbeschleunigung</string>
      </property>
     </widget>
     <widget class="QLabel" name="Volumenstrom">
      <property name="geometry">
       <rect>
        <x>40</x>
        <y>360</y>
        <width>91</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>Volumenstrom</string>
      </property>
     </widget>
     <widget class="QLabel" name="m_3">
      <property name="geometry">
       <rect>
        <x>260</x>
        <y>240</y>
        <width>81</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>Meter</string>
      </property>
     </widget>
     <widget class="QLabel" name="m_9">
      <property name="geometry">
       <rect>
        <x>260</x>
        <y>520</y>
        <width>81</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>MW</string>
      </property>
     </widget>
     <widget class="QLabel" name="Vollastleistung">
      <property name="geometry">
       <rect>
        <x>40</x>
        <y>520</y>
        <width>91</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>Leistung bei Volllast</string>
      </property>
     </widget>
     <widget class="QLineEdit" name="FlowRate">
      <property name="geometry">
       <rect>
        <x>140</x>
        <y>360</y>
        <width>113</width>
        <height>20</height>
       </rect>
      </property>
     </widget>
     <widget class="QLabel" name="m_8">
      <property name="geometry">
       <rect>
        <x>260</x>
        <y>440</y>
        <width>81</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>m/s²</string>
      </property>
     </widget>
     <widget class="QLineEdit" name="FullLoadPower">
      <property name="geometry">
       <rect>
        <x>140</x>
        <y>520</y>
        <width>113</width>
        <height>20</height>
       </rect>
      </property>
     </widget>
     <widget class="QLabel" name="Speichervolumen">
      <property name="geometry">
       <rect>
        <x>40</x>
        <y>280</y>
        <width>91</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>Speichervolumen</string>
      </property>
     </widget>
     <widget class="QLabel" name="m_10">
      <property name="geometry">
       <rect>
        <x>260</x>
        <y>480</y>
        <width>81</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>MW</string>
      </property>
     </widget>
     <widget class="QLineEdit" name="storageVolume">
      <property name="geometry">
       <rect>
        <x>140</x>
        <y>280</y>
        <width>113</width>
        <height>20</height>
       </rect>
      </property>
     </widget>
     <widget class="QLineEdit" name="Head">
      <property name="geometry">
       <rect>
        <x>140</x>
        <y>240</y>
        <width>113</width>
        <height>20</height>
       </rect>
      </property>
     </widget>
     <widget class="QLineEdit" name="FullLoadHours">
      <property name="geometry">
       <rect>
        <x>140</x>
        <y>320</y>
        <width>113</width>
        <height>20</height>
       </rect>
      </property>
     </widget>
     <widget class="QLineEdit" name="FullLoadPower_2">
      <property name="geometry">
       <rect>
        <x>140</x>
        <y>480</y>
        <width>113</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>0,85</string>
      </property>
     </widget>
     <widget class="QLineEdit" name="DischargePosition">
      <property name="geometry">
       <rect>
        <x>140</x>
        <y>200</y>
        <width>113</width>
        <height>20</height>
       </rect>
      </property>
     </widget>
     <widget class="QLabel" name="Fallhohe">
      <property name="geometry">
       <rect>
        <x>40</x>
        <y>240</y>
        <width>91</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>Fallhöhe</string>
      </property>
     </widget>
     <widget class="QLabel" name="Wirkunggrad">
      <property name="geometry">
       <rect>
        <x>40</x>
        <y>480</y>
        <width>91</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>Wirkungsgrad</string>
      </property>
     </widget>
     <widget class="QLabel" name="LageOberbecken">
      <property name="geometry">
       <rect>
        <x>40</x>
        <y>160</y>
        <width>91</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>Lage Oberbecken</string>
      </property>
     </widget>
     <widget class="QLabel" name="m_5">
      <property name="geometry">
       <rect>
        <x>260</x>
        <y>320</y>
        <width>81</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>h</string>
      </property>
     </widget>
     <widget class="QLabel" name="Erdbeschleunigung">
      <property name="geometry">
       <rect>
        <x>40</x>
        <y>400</y>
        <width>91</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>Dichte Wasser</string>
      </property>
     </widget>
     <widget class="QLineEdit" name="DenceWater">
      <property name="geometry">
       <rect>
        <x>140</x>
        <y>400</y>
        <width>113</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>981</string>
      </property>
     </widget>
     <widget class="QLabel" name="m_7">
      <property name="geometry">
       <rect>
        <x>260</x>
        <y>400</y>
        <width>81</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>kg/m³</string>
      </property>
     </widget>
     <widget class="QLineEdit" name="ProjectName">
      <property name="geometry">
       <rect>
        <x>270</x>
        <y>30</y>
        <width>211</width>
        <height>20</height>
       </rect>
      </property>
     </widget>
     <widget class="QLabel" name="m">
      <property name="geometry">
       <rect>
        <x>260</x>
        <y>160</y>
        <width>81</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>Meter über NN</string>
      </property>
     </widget>
     <widget class="QLabel" name="m_2">
      <property name="geometry">
       <rect>
        <x>260</x>
        <y>200</y>
        <width>91</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>Meter über NN</string>
      </property>
     </widget>
     <widget class="QLabel" name="m_4">
      <property name="geometry">
       <rect>
        <x>260</x>
        <y>280</y>
        <width>81</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>m³</string>
      </property>
     </widget>
     <widget class="QLabel" name="label_1">
      <property name="geometry">
       <rect>
        <x>40</x>
        <y>30</y>
        <width>221</width>
        <height>16</height>
       </rect>
      </property>
      <property name="text">
       <string>Geben Sie hier den Namen des Projektes ein</string>
      </property>
     </widget>
     <widget class="QLabel" name="Bittegeben_2">
      <property name="geometry">
       <rect>
        <x>40</x>
        <y>100</y>
        <width>281</width>
        <height>16</height>
       </rect>
      </property>
      <property name="text">
       <string>Bitte geben Sie die Randbedingungen Einheitskonform ein</string>
      </property>
     </widget>
     <widget class="QLabel" name="m_6">
      <property name="geometry">
       <rect>
        <x>260</x>
        <y>360</y>
        <width>81</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>m³/s</string>
      </property>
     </widget>
     <widget class="QLabel" name="LageUnterbecken">
      <property name="geometry">
       <rect>
        <x>40</x>
        <y>200</y>
        <width>91</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>Lage Unterbecken</string>
      </property>
     </widget>
     <widget class="QLineEdit" name="ReservoirPosition">
      <property name="geometry">
       <rect>
        <x>140</x>
        <y>160</y>
        <width>113</width>
        <height>20</height>
       </rect>
      </property>
     </widget>
     <widget class="QLineEdit" name="GravConstant">
      <property name="geometry">
       <rect>
        <x>140</x>
        <y>440</y>
        <width>113</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>9,81</string>
      </property>
     </widget>
     <widget class="QLabel" name="Vollaststunden">
      <property name="geometry">
       <rect>
        <x>40</x>
        <y>320</y>
        <width>91</width>
        <height>20</height>
       </rect>
      </property>
      <property name="text">
       <string>Vollaststunden</string>
      </property>
     </widget>
    </widget>
   </widget>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
  <widget class="QMenuBar" name="menuBar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>668</width>
     <height>20</height>
    </rect>
   </property>
   <widget class="QMenu" name="menuDatei">
    <property name="title">
     <string>Datei</string>
    </property>
    <addaction name="actionSpeichern"/>
    <addaction name="actionSchlie_en"/>
   </widget>
   <addaction name="menuDatei"/>
  </widget>
  <action name="actionSpeichern">
   <property name="text">
    <string>Speichern</string>
   </property>
  </action>
  <action name="actionSchlie_en">
   <property name="text">
    <string>Schließen</string>
   </property>
  </action>
 </widget>
 <resources/>
 <connections/>
</ui>
Es sind wie gesagt einfach nur Labels und LineEdit in der Scroll Area...ich will ja nur dass wenn ich ein Fenster 400*400 aufrufe ich die Dinge die nicht draufpassen durch scrollen sehen und nutzen kann...

Hier ein Bild ..

[url=http://imageshack.us/photo/my-imag ... .jpg[/img][/url]
Markow
Beiträge: 19
Registriert: 17. November 2011 10:54

Re: QAbstractSlider einbinden

Beitrag von Markow »

Kann geschlossen werden...Lösung war Rechtklick auf die Scroll Area und dann Layout-> tabelarisch anordnen....unfasbar, aber ich habe nirgends rauslesen können, dass man so das scrollen aktiiert.

Sorry für unnötiges Nerven, aber vielleicht hilft dieser Thread einem anderen Trottel so wie mir :D

Wobei danach alles so festgesetzt ist, dass es bestimmt nicht die beste Lösung ist. Aber wenigstens kann man jetzt scrollen...was ja ohne tabellarische Anordnung nicht gin
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: QAbstractSlider einbinden

Beitrag von franzf »

Das liegt nicht an QScrollArea, sondern am sizeHint des anzuzeigenden Widgets. Im sizeHint steckt die Info, wie groß das Widget angezeigt werden will. Ohne Layout "schweben" deine Formuilarelemente einfach über dem scrollAreaWidget, letzteres hat einfach seine fixe Größe - basta. Erst durch das anordnen der Formularelemente in einem Layout (welches im scrollAreaWidget liegt) bekommt die ScrollArea den korrekten sizeHint für die Einrichtung der ScrollBars.


////
Und hätte ich doch auch hier auf Code bestanden, hätte sich die ganze Diskussion abkürzen lassen :P (und hätte wieder eine Karmapunkt weniger :D)
Antworten