Hi,

I dondt know why after putting first dockWidget into a Splitter and getting size of that dockWidget i get 0 for width and for height, but after putting a second dockWid into the Splitter and again getting the size immediately after the addition i get the right height and the right width. Does anyone know how to get the right size after adding the first dockWidget?

I attached a small example app which visualizes this situatuion

Dawid
package main;
import com.trolltech.qt.core.Qt.Orientation;
import com.trolltech.qt.gui.*;

public class guiSplit extends QMainWindow{

    Ui_guiSplitClass ui = new Ui_guiSplitClass();
    QSplitter spliterV = new QSplitter(Orientation.Vertical);
    QSplitter spliterH = new QSplitter(Orientation.Horizontal, spliterV);
    private int imageInCentralWidget = 0;
    
    public static void main(String[] args) {
        QApplication.initialize(args);
        guiSplit testguiSplit = new guiSplit();
        testguiSplit.show();
        QApplication.exec();
    }
    
    public guiSplit(){
        ui.setupUi(this);
        setCentralWidget(spliterV);
    }
    
    public guiSplit(QWidget parent){
        super(parent);
        ui.setupUi(this);
    }
    
    public void on_actionAddDockWid_triggered() {
        
        if(imageInCentralWidget==3) return;
        
        QDockWidget dockWid = new QDockWidget();
        dockWid.setObjectName("dockWid"+(++imageInCentralWidget));
        
dockWid.setFeatures(com.trolltech.qt.gui.QDockWidget.DockWidgetFeature.createQFlags(com.trolltech.qt.gui.QDockWidget.DockWidgetFeature.NoDockWidgetFeatures));
        
        switch(imageInCentralWidget){
                case 1:
                        spliterH.addWidget(dockWid);
                        break;
                case 2:
                        spliterH.addWidget(dockWid);
                        break;
                case 3:
                        spliterV.addWidget(dockWid);
                        break;
        }
        
        QMessageBox.information(this, ""+dockWid.size().width(), 
""+dockWid.size().height());
    }
    
    public void on_actionInfoSplitDim_triggered() {
        
    }
}
/********************************************************************************
** Form generated from reading ui file 'guiSplit.jui'
**
** Created: Pn 14. kwi 12:30:18 2008
**      by: Qt User Interface Compiler version 4.3.4
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/

package main;

import com.trolltech.qt.core.*;
import com.trolltech.qt.gui.*;

public class Ui_guiSplitClass
{
    public QAction actionAddDockWid;
    public QWidget centralwidget;
    public QMenuBar menubar;
    public QStatusBar statusbar;
    public QToolBar toolBar;

    public Ui_guiSplitClass() { super(); }

    public void setupUi(QMainWindow guiSplitClass)
    {
        guiSplitClass.setObjectName("guiSplitClass");
        guiSplitClass.resize(new QSize(800, 
600).expandedTo(guiSplitClass.minimumSizeHint()));
        actionAddDockWid = new QAction(guiSplitClass);
        actionAddDockWid.setObjectName("actionAddDockWid");
        centralwidget = new QWidget(guiSplitClass);
        centralwidget.setObjectName("centralwidget");
        guiSplitClass.setCentralWidget(centralwidget);
        menubar = new QMenuBar(guiSplitClass);
        menubar.setObjectName("menubar");
        menubar.setGeometry(new QRect(0, 0, 800, 21));
        guiSplitClass.setMenuBar(menubar);
        statusbar = new QStatusBar(guiSplitClass);
        statusbar.setObjectName("statusbar");
        guiSplitClass.setStatusBar(statusbar);
        toolBar = new QToolBar(guiSplitClass);
        toolBar.setObjectName("toolBar");
        
guiSplitClass.addToolBar(com.trolltech.qt.core.Qt.ToolBarArea.TopToolBarArea, 
toolBar);

        toolBar.addAction(actionAddDockWid);
        retranslateUi(guiSplitClass);

        guiSplitClass.connectSlotsByName();
    } // setupUi

    void retranslateUi(QMainWindow guiSplitClass)
    {
        
guiSplitClass.setWindowTitle(com.trolltech.qt.core.QCoreApplication.translate("guiSplitClass",
 "MainWindow"));
        
actionAddDockWid.setText(com.trolltech.qt.core.QCoreApplication.translate("guiSplitClass",
 "addDockWid"));
        
toolBar.setWindowTitle(com.trolltech.qt.core.QCoreApplication.translate("guiSplitClass",
 "toolBar"));
    } // retranslateUi

}

_______________________________________________
Qt-jambi-interest mailing list
[email protected]
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest

Reply via email to