[Qt-jambi-interest] [Bug] JUIC broken with ScrollArea
Jose Arcangel Salazar Delgado
arcangel.salazar at gmail.com
Wed Jul 9 07:33:00 CEST 2008
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.
More information about the Qt-jambi-interest
mailing list