ich habe folgendes Problem:
Seit ich Qt4.4.3 verwende, hat meine Applikation eine Mindestbreite von 1146 Pixel. Das Problem besteht nicht mit der Qt 4.3.4. Version.
Ich nutze zwei Arten mein Hauptfenster zu positionieren und in der Größe zu ändern.
Variante 1 nutzt setGeometry, was auch erstmal per Buttonklick funktioniert. Versuche ich das Fenster dann aber über den Anfasser in Breite/Länge zu verändern, wird die Breite sofort auch 1146 gesetzt (größer ziehen geht).
Code: Alles auswählen
m_MainWindow->setGeometry(0, 25, 400, 300);
Code: Alles auswählen
m_MainWindow->resize(w.toInt(&ok, 10), h.toInt(&ok, 10));
m_MainWindow->move(QPoint(x.toInt(&ok, 10), y.toInt(&ok, 10)));
Gruß,
M
P.S.: Hier noch mal der Code zur Erstellung meines Hauptfensters. Der einzige Punkt an dem Größe und Position von meinem Code beeinflusst werden, ist die prefDialog.cpp und dort auch nur in resetPrefDialog() und openPref() - Code siehe oben Variante 1 und 2.
Code: Alles auswählen
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
//Application information
//set window icon, name and title
setWindowIcon(QIcon(":/images/icon.png"));
setObjectName(PROJECT_NAME);
setWindowTitle(PROJECT_NAME);
//create pageCtrl1 as central widget
pageCtrl1 = new PageCtrl(this);
setCentralWidget(pageCtrl1);
setAcceptDrops(true);
/*create ToolBars does not work correctly - bec. TB is not connected to window
toolBarMain = new QToolBar(tr("toolBarMain") ,this);
toolBarAWL = new QToolBar(tr("toolBarAWL") ,this);
toolBarSAWL = new QToolBar(tr("toolBarSAWL") ,this);
toolBarST = new QToolBar(tr("toolBarST") ,this);
*/
//call main window create fcn.s
createActions();
createMenus();
createToolBars();
createStatusBar();
retranslateUi();
//prepare dialogs & needed start-up fcn.s
findDialog = 0;
FcnTypeStr = "";
prototype = new Prototype(pageCtrl1);
printPrepare = new PrintPrepare(pageCtrl1, prototype);
importExport = new ImportExport(pageCtrl1, prototype);
fileViewDialog = new FileViewDialog(this, importExport);
sessionManager = new SessionManager(this, pageCtrl1, importExport);
pouInfoDialog = new POUInfoDialog(this, pageCtrl1, prototype, importExport);
findDialog = new FindDialog(this, pageCtrl1);
fcnDialog = new FcnDialog(this);
//load settings from preferences file
prefDialog = new PrefDialog(this, pageCtrl1, sessionManager, importExport, printPrepare, pouInfoDialog, fileViewDialog, findDialog, fcnDialog);
if (prefDialog->openPref() == -1)
{
prefDialog->resetPrefDialog();
prefDialog->savePref();
prefDialog->openPref();
QMessageBox::critical(this, PROJECT_NAME + " " + msg_head_preferror, msg_text_preferror);
}
//connect diverse slots
#ifdef Q_WS_WIN
connect(singleApp, SIGNAL(messageReceived(QString)), SLOT(openFile(QString)));
#endif
//draw toolbars in brushed matal on Mac OS X
#ifdef Q_WS_MAC
this->setUnifiedTitleAndToolBarOnMac(true);
#endif
connect(importExport, SIGNAL(modified()), this, SLOT(updateStatusBar()));
}
MainWindow::~MainWindow()
{ //virtual destructor
//call preferences dialog to save all settings
sessionManager->saveFilesAsSession();
#ifdef Q_WS_MAC
move(QPoint(pos().x(), pos().y()-43)); //workaround for false y-value during ini-save at quit application on Mac OS
#endif
#ifdef Q_OS_LINUX
move(QPoint(pos().x(), pos().y()-43)); //workaround for false y-value during ini-save at quit application on Linux
#endif
prefDialog->savePref();
//delete all created dialogs
delete prefDialog;
delete findDialog;
delete pouInfoDialog;
delete sessionManager;
delete fileViewDialog;
delete importExport;
delete printPrepare;
delete prototype;
delete pageCtrl1;
}