熟悉创建主窗口项目
1 QAction
2 主窗口
菜单栏:fileMenu = menuBar()->addMenu(tr("&File"));
工具栏:fileToolBar = addToolBar(tr("File"));
浮动窗:QDockWidget *dockWidget = new QDockWidget(tr("Dock Widget"), this);addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
中央部件:setCentralWidget(te);
状态栏:statusBar()->addWidget(progress);
示例
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QAction>
#include <QTextEdit>
#include <QLabel>
#include <QFileDialog>
#include <QColorDialog>class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = 0);~MainWindow();
public slots:void openf(){QString filename = QFileDialog::getOpenFileName();te->setText(filename);}void copyf(){te->copy();}void pastf(){te->paste();}void setcf(){QColor ccc = QColorDialog::getColor();te->setTextColor(ccc);}
private:QAction *openfileact, *copyfileact, *pastfileact, *setcoloract;//centralQTextEdit *te;//statusQLabel *slb;
};#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include <QMenu>
#include <QMenuBar>
#include <QToolBar>
#include <QStatusBar>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{// 创建动作并设置图标、快捷键openfileact = new QAction(QIcon("open.png"), "Open", this);openfileact->setShortcut(QKeySequence(tr("Ctrl+O")));copyfileact = new QAction(QIcon("copy.png"), "Copy", this);pastfileact = new QAction(QIcon("past.png"), "Paste", this);setcoloract = new QAction(QIcon("color.png"), "Set Color", this);// 创建菜单并添加动作QMenu *fileMenu = menuBar()->addMenu(tr("&File"));fileMenu->addAction(openfileact);QMenu *editMenu = menuBar()->addMenu(tr("&Edit"));editMenu->addAction(copyfileact);editMenu->addAction(pastfileact);QMenu *setMenu = menuBar()->addMenu(tr("&Set"));setMenu->addAction(setcoloract);// 创建工具栏并添加动作QToolBar *tfile = addToolBar("File");tfile->addAction(openfileact);QToolBar *tedit = addToolBar("Edit");tedit->addAction(copyfileact);tedit->addAction(pastfileact);QToolBar *tset = addToolBar("Set");tset->addAction(setcoloract);// 设置中央部件为文本编辑框te = new QTextEdit("hello", this);te->setMinimumSize(640, 480);setCentralWidget(te);// 添加状态栏slb = new QLabel("1.txt*", this);QStatusBar *stb = statusBar();stb->addWidget(slb);// 连接信号和槽connect(openfileact, &QAction::triggered, this, &MainWindow::openf);connect(copyfileact, &QAction::triggered, this, &MainWindow::copyf);connect(pastfileact, &QAction::triggered, this, &MainWindow::pastf);connect(setcoloract, &QAction::triggered, this, &MainWindow::setcf);}MainWindow::~MainWindow()
{}