2016-03-30 20 views
0

Ich bin neu in QT. Ich habe eine Anwendung für Windows gemacht, die eine QWebView und eine QMessageBox enthält. Ich möchte diese beiden nach der Größe meiner QMainwindow Größe ändern. Wenn zum Beispiel die Größe des Hauptfensters 300*200 ist, dann sollte die Größe QWebView und QMessageBox gleich sein. Außerdem möchte ich die Größe ändern können, wenn ich meine Anwendung ausführe.Größe eines QWebView und einer QMessagebox entsprechend der QMainWindow Größe

Kann mir jemand sagen, wie das geht?

Antwort

0

Erstens, ich denke, Sie sollten Ihre QMessageBox und Ihre QWebView Kinder Widgets von Ihrem QMainWindow machen.

MyApp::MyApp(QWidget *parent) 
    : QMainWindow(parent) 
{ 
    mView = new QWebView(this); 
    mMessageBox = new QMessageBox(this); 
    // some other code 
} 

mit mView und mMessageBox privaten Elemente Ihrer .h Datei: Sie sollten in Ihrer .cpp Datei so etwas wie dieses haben.

Und für die Größe, wenn Sie nichts angeben, sollten Sie die Größe ändern können, wie Sie möchten. Oder wenn Sie eine feste Größe versuchen wollen, fügen Sie einfach diese Zeile statt //some other code:

this->setFixedSize(300,200); 
+0

ich hinzugefügt haben QWebView und QMessageBox mit Design (mainwindow.ui). so ist ihre jede Methode, mit der ich diese Dinge dynamisch setzen kann. – vinit

+0

Ich verstehe nicht: wo benutzt du QMessageBox und QWebView? Direkt in deiner '.ui' Datei? – IAmInPLS

+0

In der QT-.ui-Datei. per drag and drop habe ich webview geometrie ((0 * 0), (500,600)) erstellt und mit ui-> webview-> load (URL) lade ich die URL. Jetzt wird die Webseite auf QWebView geladen. Aber wenn ich die laufende Anwendung neu skaliere. Die QWebView-Größe bleibt unverändert. Gibt es also eine Methode, um QwebView zur Laufzeit neu zu skalieren? – vinit

Verwandte Themen