QT开发-软件基本框架设计

基本框架组成

1.功能块action

2.菜单menu

3.工具栏toolbar

4.中央部件center

5.状态栏 status bar

代码展示

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QAction>//功能块
#include <QTextEdit>
#include <QFileDialog>//打开文件要用到文件对话框这个头文件
#include <QColorDialog>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();



public slots:
    void openf()
    {
    QString filename = QFileDialog::getOpenFileName();//用QFileDialog头文件里面的getOpenFileName()函数得到的值赋给filename变量
    te->setText(filename);//让filename字符串在te上显示出来
    //由于槽函数要用到textedit的变量特,所以头文件QTextEdit和变量的声明QTextEdit *te;只能写在.h文件里,不然te会检测不到

    }

    void copyf()
    {
        te->copy();

    }

    void pastf()
    {
        te->paste();

    }

    void setcl()
    {
     QColor c = QColorDialog::getColor();
     te->setTextColor(c);

    }



private:
    QAction *openfileact;//声明各个功能块变量

    QAction *copyfileact;
    QAction *pastfileact;

    QAction *setcoloract;

    QTextEdit *te;
};
#endif // MAINWINDOW_H

mainwindow.c

#include "mainwindow.h"
#include <QMenu>
#include <QMenuBar>
#include <QToolBar>
#include <QLabel>
#include <QStatusBar>


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //create action
    openfileact = new QAction(QIcon("open.png"),"open");//把各个功能块创建出来,QIcon是创建图片,你只需要告诉它图片的名字,图片要放在影子目录下,后面字符串是该功能块的名字
    copyfileact = new QAction(QIcon("copy.jpg"),"copy");
    pastfileact = new QAction(QIcon("past.webp"),"past");
    setcoloract = new QAction(QIcon("setcolor.png"),"setcolor");

    //create menu

    QMenu  *fileMenu = menuBar()->addMenu(tr("&File"));//创建完功能块,创建菜单,往菜单里面装菜单名字file
    fileMenu->addAction(openfileact);//往菜单里面装功能块

    QMenu  *editMenu = menuBar()->addMenu(tr("&edit"));//往菜单里面装菜单名字edit
    editMenu->addAction(copyfileact);//往菜单里面装功能块
    editMenu->addAction(pastfileact);

    QMenu  *setMenu = menuBar()->addMenu(tr("&set"));
    setMenu->addAction(setcoloract);


    //create tool
    QToolBar *tfile = addToolBar("aaa");//往工具栏tfile里面加名字aaa
    tfile->addAction(openfileact);//往工具栏tfile里面加功能块

    QToolBar *tedit = addToolBar("bbb");
    tedit->addAction(copyfileact);
    tedit->addAction(pastfileact);

    QToolBar *tset = addToolBar("ccc");
    tset->addAction(setcoloract);



    //create center
    te = new QTextEdit;
    te->setMinimumSize(640,480);//设置文本编辑框的最小尺寸
    setCentralWidget(te);//把文本编辑框设置为中央部件,在widget上显示出来



    //create status bar
    QLabel *slb = new QLabel("hhh");
    QStatusBar *stb = statusBar();//创建状态栏:用statusbar函数把一些值赋给stb,让其成为状态栏(注:用new QStatusBar没有状态栏)
    stb->addWidget(slb);//往状态栏stb里面贴标签slb

    connect(openfileact,SIGNAL(triggered(bool)),this,SLOT(openf()));//连接功能模块与槽函数,当点击功能模块时,会进入槽函数,执行命令去实现该功能
    connect(copyfileact,SIGNAL(triggered(bool)),this,SLOT(copyf()));
    connect(pastfileact,SIGNAL(triggered(bool)),this,SLOT(pastf()));
    connect(setcoloract,SIGNAL(triggered(bool)),this,SLOT(setcl()));
}

MainWindow::~MainWindow()
{
}

效果展示

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值