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