Condivisione della tecnologia

Qt: 19. Finestra/sottofinestra mobile (introduzione alle sottofinestre, creazione di sottofinestre nel codice, impostazione dei titoli delle sottofinestre, aggiunta di controlli alle sottofinestre e impostazione delle posizioni di ancoraggio delle sottofinestre)

2024-07-12

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

Sommario

1. Introduzione alla sottofinestra:

2. Crea una sottofinestra utilizzando il codice:

3.Impostare il titolo della sottofinestra:

4. Aggiungi controlli alla sottofinestra:

5. Impostare la posizione di aggancio della finestra secondaria.


1. Introduzione alla sottofinestra:

  • In Qt puoi creare e gestire finestre figlie (sottofinestre) per implementare applicazioni multi-finestra.

  • Le finestre secondarie possono essere finestre di dialogo, finestre indipendenti o finestre secondarie MDI (Multiple Document Interface).

  • Crea finestre secondarie tramite la classe QDockWidget.

2. Crea una sottofinestra utilizzando il codice:

  • Crea un oggetto finestra figlio: QDockWidget* dockWidget=new QDockWidget();
  • Aggiungi la finestra figlia alla finestra principale: this->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);

        

3.Impostare il titolo della sottofinestra:

  • Imposta il titolo della sottofinestra: dockWidget->setWindowTitle("Questo è il titolo della sottofinestra");

        

4. Aggiungi controlli alla sottofinestra:

  • Quando si aggiungono controlli a una finestra secondaria, non è possibile impostare direttamente i controlli secondari per questa finestra.
  • Innanzitutto, crea un oggetto QWidget separato, quindi imposta il controllo su questo oggetto QWidget.
  • Quindi imposta questo oggetto QWidget su dockWidget.
  1. //为dockWidget赋予QWidget对象
  2. QWidget* container=new QWidget();
  3. dockWidget->setWidget(container);
  • Poiché un dockWidget può contenere solo un oggetto QWidget, se desideri aggiungere un nuovo controllo, devi comunque aggiungerlo all'oggetto QWidget.
  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. Impostare la posizione di aggancio della finestra secondaria.

  • Imposta la posizione di ancoraggio consentita tramite il metodo setAllowAreas(Qt::DockWidgetArea | Qt::DockWidgetArea). Il valore predefinito è Qt::LeftDockWidgetArea - sinistra.
  • È possibile impostare quattro posizioni e la posizione predefinita è in alto:
  • Qt::TopDockWidgetArea——prima
  • Qt::BottomDockWidgetArea——indietro
  • Qt::LeftDockWidgetArea——Indietro
  • Qt::RightDockWidgetArea——di destra