Seite 1 von 1

QHeaderView::Fixed

Verfasst: 14. Mai 2009 16:12
von Sourc3
Hallo zusammen,

ich bin neu in der Welt von Qt und würde gerne mein Hauptfenster
dazu bringen, dass der Benutzer die Größe nicht mehr ändern kann.

In Visual Studio 2008 müsste ich dazu den FormBorderStyle auf "FixedSingle" stellen.

Habe mir in Qt schon die Funktion

Code: Alles auswählen

´setResizeMode(QHeaderView::Fixed);
angesehen, bin damit aber noch nicht weitergekommen.

Wo muss ich die einfügen? Wäre pber ein codebeispiel dankbar.

MfG, Sourc3.

Verfasst: 14. Mai 2009 17:48
von solarix
Habe mir in Qt schon die Funktion ´setResizeMode(QHeaderView::Fixed);
angesehen, bin damit aber noch nicht weitergekommen.
Und was genau hat QHeaderView mit der Grösse des Hauptfensters zu tun...?
dass der Benutzer die Größe nicht mehr ändern kann.
würde ich als Anwender hassen... aber wenn du unbedingt willst: http://qtforum.de/forum/viewtopic.php?t=7817

Verfasst: 14. Mai 2009 21:30
von Sourc3
Danke solarix.

Ich kenne mich noch nicht so mit Qt aus:

Ich habe jetzt eine neue Qt4 GUI Application gemacht, die folgende Dateien beinhaltet:
  • eine .pro-Datei
    main.cpp
    mainwindow.cpp
    mainwindow.h
    mainwindow.ui
Wo und wie soll ich den folgenden Codeschnipsel einfügen?

Code: Alles auswählen

QLayout::setSizeConstraint(QLayout::SetFixedSize);
MfG, Sourc3

Verfasst: 15. Mai 2009 17:27
von Sourc3
Also habe die Größe jetzt mit

Code: Alles auswählen

layout()->setSizeConstraint(QLayout::SetFixedSize);
festgelegt.

Nun ist ein neues Problem aufgetaucht -> Das Programm hat nun ein winziges fenster.

Sourc3

Verfasst: 16. Mai 2009 11:13
von Sourc3
Was muss ich machen, damit das Programm mit der in geometry angegebenen Größe startet?

Ohne

Code: Alles auswählen

layout()->setSizeConstraint(QLayout::SetFixedSize);
macht es das ohne Probleme.

Sourc3

Verfasst: 19. Mai 2009 14:23
von Sourc3
Habe ich meine Frage irgendwie falsch formuliert? Ist echt wichtig für die Schule.

Wäre euch über eine Antwort dankbar.

mfG, Sourc3

Verfasst: 19. Mai 2009 14:33
von Christian81
Wo genau rufst Du layout()->setSizeConstraint(QLayout::SetFixedSize); auf? Hast Du im ui-File ein Layout angegeben?

Verfasst: 19. Mai 2009 15:16
von Sourc3
Ich rufe das in mainwindow.cpp auf:

Code: Alles auswählen

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    layout()->setSizeConstraint(QLayout::SetFixedSize);
}

MainWindow::~MainWindow()
{
    delete ui;
}
mfG, Sourc3

Verfasst: 19. Mai 2009 15:58
von Christian81
Mal versucht mit QWidget::size() die Fenstergröße festzulegen?