Qt筆記之 介面控制元件
阿新 • • 發佈:2020-12-25
介面控制元件
目錄QMainWindow
視窗結構
選單欄和工具欄
#include "mainwindow.h" #include <QMenuBar> #include <QToolBar> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { resize(600,400); // 選單欄 只有一個 QMenuBar *bar = menuBar(); this->setMenuBar(bar); // 新增選單 QMenu *fileMenu = bar->addMenu("檔案"); QMenu *editMenu = bar->addMenu("編輯"); // 新增選單項 QAction *newAction = fileMenu->addAction("新建"); // 新增分割線 fileMenu->addSeparator(); QAction *openAction = fileMenu->addAction("開啟"); // 工具欄 可以有多個 QToolBar *toolBar = new QToolBar(this); addToolBar(Qt::RightToolBarArea,toolBar); // 只允許左右停靠 toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea); // 設定浮動 toolBar->setFloatable(false); // 設定移動(總開關) toolBar->setMovable(false); // 工具欄中設定選單項 toolBar->addAction(newAction); toolBar->addSeparator(); toolBar->addAction(openAction); } MainWindow::~MainWindow() { delete toolBar; }
效果:
狀態列-浮動視窗和中心部件
#include "mainwindow.h" #include <QMenuBar> #include <QToolBar> #include <QLabel> #include <QStatusBar> #include <QDockWidget> #include <QTextEdit> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { resize(600,400); // 選單欄 只有一個 QMenuBar *bar = menuBar(); this->setMenuBar(bar); // 新增選單 QMenu *fileMenu = bar->addMenu("檔案"); QMenu *editMenu = bar->addMenu("編輯"); // 新增選單項 QAction *newAction = fileMenu->addAction("新建"); // 新增分割線 fileMenu->addSeparator(); QAction *openAction = fileMenu->addAction("開啟"); // 工具欄 可以有多個 QToolBar *toolBar = new QToolBar(this); addToolBar(Qt::LeftToolBarArea,toolBar); // 只允許左右停靠 toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea); // 設定浮動 toolBar->setFloatable(false); // 設定移動(總開關) toolBar->setMovable(false); // 工具欄中設定選單項 toolBar->addAction(newAction); toolBar->addSeparator(); toolBar->addAction(openAction); // 狀態列 只有一個 QStatusBar *stBar = statusBar(); setStatusBar(stBar); QLabel *labell = new QLabel("左側資訊"); stBar->addWidget(labell); QLabel *labell2 = new QLabel("右側資訊"); stBar->addPermanentWidget(labell2); // 從右往左新增 // 鉚接部件 浮動視窗 可以有多個 QDockWidget *dockWidget = new QDockWidget("浮動視窗",this); addDockWidget(Qt::BottomDockWidgetArea,dockWidget); // 只允許上下停靠 dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea); // 核心部件 中心部件 QTextEdit *textEdit = new QTextEdit(this); setCentralWidget(textEdit); } MainWindow::~MainWindow() { delete toolBar; delete labell; delete labell2; delete dockWidget; delete textEdit; }
資原始檔的新增
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // 放入到程式的最上側 // 在新建選單上新增圖片 // ui->actionNew->setIcon(QIcon("D:\\資源\\圖片\\1.png")); // 新增檔案:res.qrc // 使用:: + 字首名 + 檔名 ui->actionNew->setIcon(QIcon(":/1.png")); } MainWindow::~MainWindow() { delete ui; }
新增res檔案:
新增資源: