Technologieaustausch

Qt: 19. Schwebendes Fenster/Unterfenster (Einführung in Unterfenster, Erstellen von Unterfenstern im Code, Festlegen von Unterfenstertiteln, Hinzufügen von Steuerelementen zu Unterfenstern und Festlegen von Andockpositionen für Unterfenster)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Inhaltsverzeichnis

1. Einführung in das Unterfenster:

2. Erstellen Sie ein Unterfenster mit Code:

3.Legen Sie den Titel des Unterfensters fest:

4. Fügen Sie dem untergeordneten Fenster Steuerelemente hinzu:

5. Legen Sie die Andockposition des Unterfensters fest.


1. Einführung in das Unterfenster:

  • In Qt können Sie untergeordnete Fenster (Unterfenster) erstellen und verwalten, um Anwendungen mit mehreren Fenstern zu implementieren.

  • Untergeordnete Fenster können Dialogfelder, unabhängige Fenster oder untergeordnete MDI-Fenster (Multiple Document Interface) sein.

  • Erstellen Sie untergeordnete Fenster über die QDockWidget-Klasse.

2. Erstellen Sie ein Unterfenster mit Code:

  • Erstellen Sie ein untergeordnetes Fensterobjekt: QDockWidget* dockWidget=new QDockWidget();
  • Fügen Sie das untergeordnete Fenster zum Hauptfenster hinzu: this->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);

        

3.Legen Sie den Titel des Unterfensters fest:

  • Legen Sie den Titel des Unterfensters fest: dockWidget->setWindowTitle("Dies ist der Titel des Unterfensters");

        

4. Fügen Sie dem untergeordneten Fenster Steuerelemente hinzu:

  • Wenn Sie Steuerelemente zu einem Unterfenster hinzufügen, können Sie Untersteuerelemente für dieses Fenster nicht direkt festlegen.
  • Erstellen Sie zunächst ein separates QWidget-Objekt und legen Sie dann die Steuerung auf dieses QWidget-Objekt fest.
  • Setzen Sie dann dieses QWidget-Objekt auf dockWidget.
  1. //为dockWidget赋予QWidget对象
  2. QWidget* container=new QWidget();
  3. dockWidget->setWidget(container);
  • Da ein dockWidget nur ein QWidget-Objekt enthalten kann, müssen Sie, wenn Sie ein neues Steuerelement hinzufügen möchten, es trotzdem zum QWidget-Objekt hinzufügen.
  1. MainWindow::MainWindow(QWidget *parent)
  2. : QMainWindow(parent)
  3. , ui(new Ui::MainWindow)
  4. {
  5. ui->setupUi(this);
  6. QDockWidget* dockWidget=new QDockWidget();
  7. this->addDockWidget(Qt::LeftDockWidgetArea,dockWidget);
  8. dockWidget->setWindowTitle("这是子窗口的标题");
  9. //为dockWidget赋予QWidget对象
  10. QWidget* container=new QWidget();
  11. dockWidget->setWidget(container);
  12. //创建两个控件
  13. QLabel* label=new QLabel("这是一个label控件");
  14. QPushButton* pushButton=new QPushButton("这是一个按钮");
  15. //创建一个布局管理利器,并且设置到QWidget对象中
  16. QVBoxLayout* layout=new QVBoxLayout();
  17. container->setLayout(layout);
  18. //将两个控件添加到布局管理器中
  19. layout->addWidget(label);
  20. layout->addWidget(pushButton);
  21. }

5. Legen Sie die Andockposition des Unterfensters fest.

  • Legen Sie den zulässigen Andockort über die Methode setAllowAreas(Qt::DockWidgetArea | Qt::DockWidgetArea) fest. Standardmäßig ist Qt::LeftDockWidgetArea – links.
  • Es können vier Positionen eingestellt werden, die Standardposition ist oben:
  • Qt::TopDockWidgetArea——
  • Qt::BottomDockWidgetArea——
  • Qt::LeftDockWidgetArea——Funktion
  • Qt::RightDockWidgetArea——Funktion