QT 创建文本编辑器界面(2)

2 篇文章 0 订阅
#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QFontComboBox>
#include <QLabel>
#include <QPushButton>
#include <QToolButton>
#include<QDateTime>
#include <QTimer>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //设置窗口初始大小
   this->resize(1300,900);
   QMenuBar* menuBar= ui->menuBar;
   QMenu *fileMenu=menuBar->addMenu("文件(F)");
   QMenu * fileEditer=menuBar->addMenu("编辑(E)");
   QMenu * fileBuild=menuBar->addMenu("构建(B)");
   QMenu * fileHelp=menuBar->addMenu("帮助(H)");
    //文件添加操作
   QAction* NewAction=fileMenu->addAction(QIcon("://filenew.png"),"新建文件");
   QAction* SaveAction=fileMenu->addAction(QIcon("://filesave.png"),"保存文件");
   QAction* OpenAction=fileMenu->addAction(QIcon("://fileopen.png"),"打开文件");
   QAction* PrintfAction=fileMenu->addAction(QIcon("://fileprint.png"),"打印");

   //编辑添加操作
   fileEditer->addAction(QIcon("://editredo.png"),"撤销");
   fileEditer->addAction(QIcon("://editundo.png"),"反撤销");
   QAction* cutAction=fileEditer->addAction(QIcon("://editcut.png"),"剪切");
   QAction* copyAction=fileEditer->addAction(QIcon("://editcopy.png"),"复制");
   QAction* pasteAction=fileEditer->addAction(QIcon("://editpaste.png"),"粘贴");


   //构建添加操作
   fileBuild->addAction(QIcon("://textbold.png"),"构建所有项目");
   fileBuild->addAction(QIcon("://textcenter.png"),"执行项目");
   fileBuild->addAction(QIcon("://textitalic.png"),"重新构建项目");
   fileBuild->addAction(QIcon("://textjustify.png"),"清理所有项目");

   //帮助添加操作
   fileHelp->addAction(QIcon("://textleft.png"),"目录");
   fileHelp->addAction(QIcon("://textright.png"),"索引");
   fileHelp->addAction(QIcon("://textunder.png"),"报告Bug");
   fileHelp->addAction(QIcon("://true-color.png"),"关于QT");
    //工具栏  添加菜单栏的快捷方式
   QToolBar* toolBar= ui->mainToolBar;
   toolBar->addAction(NewAction);
   toolBar->addAction(SaveAction);
   toolBar->addAction(OpenAction);
   toolBar->addAction(cutAction);
   toolBar->addAction(copyAction);
   toolBar->addAction(pasteAction);

   //设置字体字号(alt+enter  添加头文件)
  QLabel* fontTypeLab=new QLabel(" 字体:",this);
  QLabel* fontSizeLab=new QLabel(" 字号:",this);
  QFontComboBox *fontCombo=new QFontComboBox(this);//QFontComboBox是下拉控件
  QComboBox* fontSizeCombo= new QComboBox(this);//QFontComboBox是QComboBox的子类,返回一个对象
  //向工具栏添加控件“文字”,对象调用方法
  toolBar->addWidget(fontTypeLab);
  toolBar->addWidget(fontCombo);
  toolBar->addWidget(fontSizeLab);
  toolBar->addWidget(fontSizeCombo);

  //设置字号的大小可选范围1-30
/*
 注意:
 1.参数类型int->QString
 2.程序异常结束:死循环
                空指针
 */
  int i=1;
  while(i<=30)
  {
      fontSizeCombo->addItem(QString::number(i));//参数类型int->QString,利用Qstring里面的静态函数,通过类名来调用

      i++;
  }

  toolBar->addSeparator();
  QPushButton* boldBtn=new QPushButton(this);//QPushButton的图标后面有白色背景,QToolButton是透明背景
  boldBtn->setIcon(QIcon("://textbold.png"));//QIcon图标
  QToolButton* italicBtn=new QToolButton(this);//创建斜体控件,返回斜体对象,
  italicBtn->setIcon(QIcon("://textitalic.png"));
  QToolButton* colorBtn=new QToolButton(this);//创建颜色控件,返回颜色对象,
  colorBtn->setIcon(QIcon("://true-color.png"));

  toolBar->addWidget(boldBtn);//使用toolBar,把加粗控件添加到工具栏
  toolBar->addWidget(italicBtn);
  toolBar->addWidget(colorBtn);
//状态栏的设置
  QStatusBar* statusBar=ui->statusBar;
  //显示静态的当前时间
  timeLab=new QLabel("时间:",this);//QLabel* timeLab(局部遍变量,{}结束即释放)改为timeLab,这是类的成员变量
  // QLabel* timeLab不能这么写,这是局部变量,setTime里面用到的timeLab和这个QLabel* timeLab不是一个,会使setTime里面的变成空指针因为它是类的成员变量
  statusBar->addWidget(timeLab);

  //获取当前时间
  QString dateTime= QDateTime::currentDateTime().toString();
  timeLab->setText("时间:"+dateTime);
  //设置动态时间,使用信号和槽
//定时器:QTimer
  QTimer*t=new QTimer();
  t->start(1000);//1秒触发一次信号
  connect(t,QTimer::timeout,this,MainWindow::setTime);//timeout时间到了,
}
void MainWindow::setTime()
{
    //获取当前时间
   QString dateTime= QDateTime::currentDateTime().toString();
   timeLab->setText("时间:"+dateTime);
}

MainWindow::~MainWindow()
{
    delete ui;
}

得到效果图如下所示:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笨笨且云雀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值