Hi
I found a bug in the JUIC. The problem is when you try to use a scroll
area in a form. The preview is ok, but when you exec the app with the
Ui file, the scroll area is empty. After a few research I encounter
the problem, look at this code:

/********************************************************************************
** Form generated from reading ui file 'MainWindow.jui'
**
** Created: mi jul 9 00:24:23 2008
**      by: Qt User Interface Compiler version 4.4.0
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/

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

public class Ui_MainWindow
{
    public QWidget centralwidget;
    public QGridLayout gridLayout;
    public QScrollArea scrollArea;
    public QWidget scrollAreaWidgetContents;
    public QPushButton pushButton;
    public QMenuBar menubar;
    public QStatusBar statusbar;

    public Ui_MainWindow() { super(); }

    public void setupUi(QMainWindow Ui_MainWindow)
    {
        Ui_MainWindow.setObjectName("Ui_MainWindow");
        Ui_MainWindow.resize(new QSize(800,
600).expandedTo(Ui_MainWindow.minimumSizeHint()));
        centralwidget = new QWidget(Ui_MainWindow);
        centralwidget.setObjectName("centralwidget");
        centralwidget.setGeometry(new QRect(0, 30, 800, 547));
        gridLayout = new QGridLayout(centralwidget);
        gridLayout.setObjectName("gridLayout");
        scrollArea = new QScrollArea(centralwidget);
        scrollArea.setObjectName("scrollArea");
        scrollArea.setWidgetResizable(true);
        scrollAreaWidgetContents = new QWidget();
        scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents");
        scrollAreaWidgetContents.setGeometry(new QRect(0, 0, 778, 525));
        pushButton = new QPushButton(scrollAreaWidgetContents);
        pushButton.setObjectName("pushButton");
        pushButton.setGeometry(new QRect(200, 160, 75, 28));
        
pushButton.setFocusPolicy(com.trolltech.qt.core.Qt.FocusPolicy.StrongFocus);

        gridLayout.addWidget(scrollArea, 0, 0, 1, 1);

        Ui_MainWindow.setCentralWidget(centralwidget);
        menubar = new QMenuBar(Ui_MainWindow);
        menubar.setObjectName("menubar");
        menubar.setGeometry(new QRect(0, 0, 800, 30));
        Ui_MainWindow.setMenuBar(menubar);
        statusbar = new QStatusBar(Ui_MainWindow);
        statusbar.setObjectName("statusbar");
        statusbar.setGeometry(new QRect(0, 577, 800, 23));
        Ui_MainWindow.setStatusBar(statusbar);
        retranslateUi(Ui_MainWindow);

        Ui_MainWindow.connectSlotsByName();
    } // setupUi

    void retranslateUi(QMainWindow Ui_MainWindow)
    {
        
Ui_MainWindow.setWindowTitle(com.trolltech.qt.core.QCoreApplication.translate("Ui_MainWindow",
"MainWindow"));
        
pushButton.setText(com.trolltech.qt.core.QCoreApplication.translate("Ui_MainWindow",
"PushButton"));
    } // retranslateUi

}

The problem is that the scrollAreaWidgetContents is never set the
widget of scrollArea.
For now Im using this workaround in the MainWindow class:

/*main class*/
import com.trolltech.qt.gui.*;

public class MainWindow extends QMainWindow {

    Ui_MainWindow ui = new Ui_MainWindow();

    public static void main(String[] args) {
        QApplication.initialize(args);

        MainWindow testMainWindow = new MainWindow();
        
testMainWindow.ui.scrollArea.setWidget(testMainWindow.ui.scrollAreaWidgetContents);
        testMainWindow.show();


        QApplication.exec();
    }

    public MainWindow() {
        ui.setupUi(this);
    }

}

This problem is experiment in windows and linux using the lastest qt
eclipse integration and the lastest QT jambi (4.4.0).

Thanks for your good work.
_______________________________________________
Qt-jambi-interest mailing list
Qt-jambi-interest@trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest

Reply via email to