Hallo,
ich hab vor kurzem mit Qt angefangen und werde mir eventuell auch bald Buch holen um mal ein bischen mehr durchzusteigen...
Aber momentan brauche ich hilfe bei einer QScrollArea
Folgendes will ich erreichen:
Ich hab ein Dialog Fenster, das wie folgt aussehen soll:
---------------------------
| Label Slider SpinBox |
| Label Slider SpinBox |
| Label Slider SpinBox |
| Label Slider SpinBox |
| Label Slider SpinBox |
| Label Slider SpinBox |
| Label Slider SpinBox |
...
...
...
| Label Slider SpinBox |
| |
| OK Abrechen |
---------------------------
Da ich sehr viele Label Slider SpinBox Dingar habe,
möchte ich diese gerne in eine ScrollArea integrieren.
Im QT Creator hab ich nun folgendes gemacht:
Neues Dialog fenster
QScrollArea
->in QScrollArea ein QGridLayout eingefügt
->in QGridLayout ein QGroupBox eingefügt
Die Label Slider SpinBox Kombinationen werden alle dynamisch in die GroupBox eigefügt und die Größe der GroupBox wird berechnet.
Nun erscheint aber kein Scrollbalken und die GroupBox wird abgeschnitten.
Sonst geht alles.
Eigentllich sollte das doch nicht so schwer zu realisieren sein ich hoffe einer kann mir eventuel erklären wie ich das schnell und einfach umsetzen kann
QScrollArea geht nicht?!
-
cbodenstein
- Beiträge: 4
- Registriert: 5. Dezember 2010 17:07
QScrollArea geht nicht?!
- Dateianhänge
-
- beispiel.png (22.62 KiB) 2963 mal betrachtet
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
cbodenstein
- Beiträge: 4
- Registriert: 5. Dezember 2010 17:07
Ok jetzt hat er eins...
Hab es jetzt auch hinbekommen, ich musste nur die größe vom Layout-Widget in der scrollarea ändern...
Eigentlich ganz einfach wenn man es weiß.
Aber eine Frage hätte ich noch:
Wie kann ich das fenster skalierbar machen, so dass das Layout automatisch größer wird und die Buttons immer am unteren rand "kleben"?
Hab es jetzt auch hinbekommen, ich musste nur die größe vom Layout-Widget in der scrollarea ändern...
Eigentlich ganz einfach wenn man es weiß.
Aber eine Frage hätte ich noch:
Wie kann ich das fenster skalierbar machen, so dass das Layout automatisch größer wird und die Buttons immer am unteren rand "kleben"?
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
cbodenstein
- Beiträge: 4
- Registriert: 5. Dezember 2010 17:07
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>607</width>
<height>472</height>
</rect>
</property>
<property name="windowTitle">
<string>Studienprojekt</string>
</property>
<widget class="QWidget" name="centralWidget">
<widget class="QPushButton" name="calcButton">
<property name="geometry">
<rect>
<x>480</x>
<y>380</y>
<width>81</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>Calculate</string>
</property>
</widget>
<widget class="QTabWidget" name="tabs">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>581</width>
<height>351</height>
</rect>
</property>
<property name="tabShape">
<enum>QTabWidget::Rounded</enum>
</property>
<property name="currentIndex">
<number>-1</number>
</property>
</widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>30</x>
<y>380</y>
<width>81</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>Weights</string>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>607</width>
<height>21</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
<property name="title">
<string>File</string>
</property>
<addaction name="actionOpen"/>
<addaction name="actionSave"/>
<addaction name="separator"/>
<addaction name="actionPreferences"/>
<addaction name="separator"/>
<addaction name="separator"/>
<addaction name="actionExit"/>
</widget>
<widget class="QMenu" name="menuHelp">
<property name="title">
<string>Help</string>
</property>
<addaction name="actionAbout"/>
</widget>
<addaction name="menuFile"/>
<addaction name="menuHelp"/>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="actionOpen">
<property name="text">
<string>Open...</string>
</property>
</action>
<action name="actionSave">
<property name="text">
<string>Save...</string>
</property>
</action>
<action name="actionExit">
<property name="text">
<string>Exit</string>
</property>
</action>
<action name="actionAbout">
<property name="text">
<string>About</string>
</property>
</action>
<action name="actionPreferences">
<property name="text">
<string>Preferences</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections>
<connection>
<sender>pushButton</sender>
<signal>clicked()</signal>
<receiver>MainWindow</receiver>
<slot>on_changeWeight_clicked()</slot>
<hints>
<hint type="sourcelabel">
<x>53</x>
<y>416</y>
</hint>
<hint type="destinationlabel">
<x>248</x>
<y>431</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>on_changeWeight_clicked()</slot>
</slots>
</ui>
->gridLayout
-->scrollArea
--->gridLayout
---->GroupBox
->ButtonBox
Code: Alles auswählen
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGroupBox box("MyBox");
QGridLayout boxLay(&box);
for (int i=0; i < 100; ++i)
boxLay.addWidget(new QLabel(QString::number(i)+ ". ganz langes Label das nix kann"));
QScrollArea area;
area.setWidget(&box);
area.show();
return a.exec();
}Eigentlic eher diese hierarchie:
->gridLayout
-->scrollArea (nix layout hier, sondern setwidget)
---->GroupBox
------->gridLayout
-----------> da alles rein was ins grid soll exklusive der
-->ButtonBox
@edit Buttonbox verschoben
Zuletzt geändert von padreigh am 5. Dezember 2010 19:41, insgesamt 1-mal geändert.
-
cbodenstein
- Beiträge: 4
- Registriert: 5. Dezember 2010 17:07