Dock widgetek és eszköztárak - qt 4 gui programozás
Dock widgetek és eszköztárak
Tulajdonít a widget, hogy lehet csatolni meghatározott területeken a fő ablak QMainWindow alkalmazás vagy független „lebegő” ablak. QMainWindow négy rögzítő területe kütyü: az egyik a fent egymás alatt, az egyik a bal, egyet a jobb a központi modul. Az alkalmazások, mint például a Microsoft Visual Studio és a Qt Linguist, széles körben használják dokkoló ablakot, hogy egy nagyon rugalmas felhasználói felület. A Qt dokkoló widget osztály egyedeire QDockWidget.
Minden dokkoló modul saját címmel, akkor is, ha csatlakoztatva van. A felhasználók mozgatni dokkoló ablakok egyik kapcsolódási pont a másik, mozgó a szalag cím. Azt is le kell választani a rögzíthető ablakot szerelési területen, és ez független lebegő ablakban, annak rögzíthető ablakot területeken kívül a mellékletet. Szabad úszódokk ablakok mindig „fent” a fő ablakban. A felhasználók bezárhatja a QDockWidget, kattintson a bezárás gombra a fejlécben a widget. Ezek bármilyen kombinációja funkciók segítségével kikapcsolható QDockWidget :: setFeatures () hívást.
Ábra. 6.13. QMainWindow csatlakozik a widget.
A korábbi verziók Qt eszköztár tekinthető dokkoló kütyü, ugyanazt a szerelési területen. Mivel Qt 4 eszköztár elhelyezni saját területén található, a kerülete a központi modult (ábrán látható. 6.14) és nem tud elszabadulni. Ha azt szeretnénk, hogy egy lebegő eszköztár, akkor egyszerűen tedd be QDockWindow.
Ábra. 6.14. Szerelés területe a panel és widgetek QMainWindow eszközöket.
A szögek szaggatott vonal jelzi, tartozhat a két szomszédos régiók mellékletet. Például tudtuk hozzárendelni a bal felső sarokban a bal szerelési területen hívja QMainWindow :: setCorner (Qt :: TopLeftCorner, Qt :: LeftDockWidgetArea).
A következő kódrészlet megmutatja, hogyan kell egy meglévő modult (ebben az esetben QTreeWidget) lehet kiadni formájában bőr QDockWidget és helyezze a megfelelő területen kapcsolódási:
QDockWidget * shapesDockWidget = új QDockWidget (TR ( "alakzatok"));
A call setAllowedAreas () meg a megengedett beépítési terület dokkoló ablakok. A mi esetünkben, hogy a felhasználó drag and drop rögzíthető ablakot csak a jobbra vagy balra a kapcsolódás, ahol elég függőleges tér a normál kijelző. Ha a megengedett területen nem egyértelműen meghatározott, a felhasználó drag and drop rögzíthető ablakot kapcsolatba a négy területen.
Az alábbiakban egy részletet a tervező QMainWindow alosztály, amely azt mutatja, hogyan lehet létrehozni egy eszköztár, amely QComboBox, QSpinBox QToolButton és több gomb:
QToolBar * fontToolBar = új QToolBar (TR ( "Font"));
Ha azt akarjuk, hogy fenntartsák a pozíciókat az összes dokkoló widgetek és eszköztárak, hogy képes helyreállítani őket a következő alkalommal futtatja az alkalmazást, írhatunk szinte ugyanazt a kódot, hogyan kell menteni az állam QSplitter szeparátor segítségével osztály QMainWindow saveState () és restoreState ():
01 void MainWindow :: writeSettings ()
03 QSettings beállítások ( "Software Inc.", "Icon Editor");
05 settings.setValue ( "méretű", mérete ());
06 settings.setValue ( "állam", saveState ());
09 void MainWindow :: readSettings ()
11 QSettings beállítások ( "Software Inc.", "Icon Editor");
Végül egy QMainWindow egy helyi menü, amelyben az összes dokkoló ablakok és eszköztárak. Ebben a menüben a felhasználó bezárhatja és helyreállítása dokkoló ablakok és eszköztárak.
Ábra. 6.15. QMainWindow menüből.