lv20 QT主窗口4

熟悉创建主窗口项目

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

cpp 复制代码
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QAction>
#include <QTextEdit>
#include <QLabel>
#include <QFileDialog>
#include <QColorDialog>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    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;

    //central
    QTextEdit *te;

    //status
    QLabel *slb;
};

#endif // MAINWINDOW_H

mainwindow.cpp

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()
{

}
相关推荐
环能jvav大师7 分钟前
基于R语言的统计分析基础:使用dplyr包进行数据操作
大数据·开发语言·数据分析·r语言
懒洋洋大魔王23 分钟前
7.Java高级编程 多线程
java·开发语言·jvm
=(^.^)=哈哈哈24 分钟前
Golang如何优雅的退出程序
开发语言·golang·xcode
学习使我变快乐25 分钟前
C++:用类实现链表,队列,栈
开发语言·c++·链表
茶馆大橘28 分钟前
【黑马点评】已解决java.lang.NullPointerException异常
java·开发语言
lmy_t31 分钟前
C++之第十二课
开发语言·c++
马剑威(威哥爱编程)35 分钟前
除了递归算法,要如何优化实现文件搜索功能
java·开发语言·算法·递归算法·威哥爱编程·memoization
我码玄黄1 小时前
THREE.js:网页上的3D世界构建者
开发语言·javascript·3d
MuseLss1 小时前
HashMap高频面试知识点
java·开发语言·哈希算法
tyler-泰勒1 小时前
初始c++:入门基础(完结)
java·开发语言·c++