Qt新项目_MyNotepad++

创建菜单栏的方法

按住alt+F就能选中文件(F)
在这里插入图片描述
创建成功如下图所示:
在这里插入图片描述

根据上面的方法我们依次创建下图的效果

在这里插入图片描述

新建功能进行开拓

功能描述:
当textEdit那个文本框发生改变时,点击新建 就在终端输出提示信息.

实现效果

在这里插入图片描述
在这里插入图片描述

实现代码

mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMessageBox>
#include <QDebug>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

private:
    Ui::MainWindow *ui;
private slots:
    void newFileSlot();
};
#endif // MAINWINDOW_H

main.cpp
#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //设置标题
    this->setWindowTitle("ning_ning_WenDang");
    QObject::connect(
                ui->newAction,
                SIGNAL(triggered()),
                this,
                SLOT(newFileSlot())
                );
}

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

void MainWindow::newFileSlot()
{
    //如果当前的文档已将改变了
    if(ui->textEdit->document()->isModified())
    {
        qDebug()<<"current file modified."; //当前文档改变;
    }
    else
    {
        qDebug()<<"not modified.";
    }
}


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
1.点击该日志app后,进入欢迎activity中,然后欢迎activity调用欢迎页面并显示该页面,欢迎页面设计为2000ms自动消失,跳转到登录功能中。 2.由欢迎页面自动跳转到登录activity中,登录activity调动login页面,并展示该页面,如果有账号可以直接登录,没账号需要先注册,登陆的时候做了后端的验证,在登录activite中进行验证,包括密码账号是否为空,密码账号是否与数据库中存的一致等,点击登录可以进入到主页面,同时会在屏幕下方显示登陆成功字样。登录界面还有一个记录密码功能,可以在下次登录的时候不用输入账号密码,直接点击登录即可。3.登录界面上点击注册,跳转到注册activity中,注册页面一共包含三个输入框,手机号,密码,确认密码,如果注册的时候没有输入手机号,或者密码都会显示密码账号不能为空,注册失败字样,如果注册的时候密码和确认密码不一致也会注册失败,并提示两次输入密码不一致,注册的时候手机后不够十一位,或者输入的手机号与数据库中有一样的手机号,则显示该账号已经被注册,提示注册失败。如果上述要求都符合,注册的信息通过对数据库进行操作,把信息存到数据库中,然后跳转到登录界面。 4.登陆成功后进入到主界面mainactivity,主界面调用mainActivity.layout,主界面包含元素,功能栏按钮,增加文字日志,增加视频日志,以及显示已经存在的日志,首先主界面显示的已经存在的日志是通过cell.xml格式来罗列的,每一条日志信息都存在数据库中,可以点击日志信息然后对其进行增删改查。主界面中增加文字日志与增加视频日志点击后进入对应界面,然后添加对应的日志信息到数据库中。主界面中的功能栏按钮在左上方,点击可以在左边出现一个显示框,显示框中含有各种功能,包括修改密码,注销,退出等信息。 5.点击增加文字日志或者视频日志,进入到增加页面,文字可以直接通过layout页面直接写,然后接收到activity中,之后存到数据库中并在主页面进行展示,增加视频的话采取流方式,把视频转换为字节流,然后存入到数据库中,(增加视频也可以采取存入链接地址,通过链接地址直接查看)。增加完日志信息可以直接点击保存,保存按钮触发事件,存数据到数据库中。 6.在主界面中点击对应的日志,可以进入到日志中进行基本的查看,和删除操作,点击删除按钮,通过日志信息查找库中对应的日志信息,并对其进行删除。主页面中不再有该日志信息,实时删除,实时显示。 7.点击修改密码按钮,转入到修改密码activity中,修改密码界面主要有两个输入框,包括输入旧密码,输入密码,当输入的旧密码不对,会显示修改失败并提示修改旧密码不对,如果旧密码或者密码为空,则提示信息密码不能为空,如果密码与旧密码一致,那么也会显示修改密码失败,直到信息符合,显示修改密码成功,并更数据库中对应的手机号的密码。 8.点击注销,返回到登录界面,可以重修输入不同的账号信息,然后登陆,也可以重注册账号登录。 9.点击退出,程序直接中断,然后退出app到手机主界面。
好的,我可以帮你回答这个问题。 首先,要实现记事本程序,需要使用Java的图形化界面工具包,比如Swing或JavaFX。这里我以Swing为例。 下面是一个简单的记事本程序的代码,其中包括了切换字体和颜色的功能: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MyNotepad extends JFrame implements ActionListener { private JTextArea textArea; private JMenuBar menuBar; private JMenu fileMenu, editMenu, formatMenu; private JMenuItem newMenuItem, openMenuItem, saveMenuItem, exitMenuItem; private JMenuItem cutMenuItem, copyMenuItem, pasteMenuItem; private JMenuItem fontMenuItem, colorMenuItem; public MyNotepad() { setTitle("记事本"); setSize(500, 500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); textArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(textArea); add(scrollPane); menuBar = new JMenuBar(); fileMenu = new JMenu("文件"); editMenu = new JMenu("编辑"); formatMenu = new JMenu("格式"); newMenuItem = new JMenuItem("建"); openMenuItem = new JMenuItem("打开"); saveMenuItem = new JMenuItem("保存"); exitMenuItem = new JMenuItem("退出"); cutMenuItem = new JMenuItem("剪切"); copyMenuItem = new JMenuItem("复制"); pasteMenuItem = new JMenuItem("粘贴"); fontMenuItem = new JMenuItem("字体"); colorMenuItem = new JMenuItem("颜色"); newMenuItem.addActionListener(this); openMenuItem.addActionListener(this); saveMenuItem.addActionListener(this); exitMenuItem.addActionListener(this); cutMenuItem.addActionListener(this); copyMenuItem.addActionListener(this); pasteMenuItem.addActionListener(this); fontMenuItem.addActionListener(this); colorMenuItem.addActionListener(this); fileMenu.add(newMenuItem); fileMenu.add(openMenuItem); fileMenu.add(saveMenuItem); fileMenu.addSeparator(); fileMenu.add(exitMenuItem); editMenu.add(cutMenuItem); editMenu.add(copyMenuItem); editMenu.add(pasteMenuItem); formatMenu.add(fontMenuItem); formatMenu.add(colorMenuItem); menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(formatMenu); setJMenuBar(menuBar); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == newMenuItem) { textArea.setText(""); } else if (e.getSource() == openMenuItem) { // 打开文件 } else if (e.getSource() == saveMenuItem) { // 保存文件 } else if (e.getSource() == exitMenuItem) { System.exit(0); } else if (e.getSource() == cutMenuItem) { textArea.cut(); } else if (e.getSource() == copyMenuItem) { textArea.copy(); } else if (e.getSource() == pasteMenuItem) { textArea.paste(); } else if (e.getSource() == fontMenuItem) { Font font = JFontChooser.showDialog(this, "选择字体", textArea.getFont()); if (font != null) { textArea.setFont(font); } } else if (e.getSource() == colorMenuItem) { Color color = JColorChooser.showDialog(this, "选择颜色", textArea.getForeground()); if (color != null) { textArea.setForeground(color); } } } public static void main(String[] args) { new MyNotepad(); } } ``` 这个程序包括了菜单栏、文本区和一些菜单项。其中,字体和颜色的功能是通过JFontChooser和JColorChooser实现的。 你可以运行这个程序并尝试切换字体和颜色。如果你想要添加更多的功能,可以在actionPerformed方法中添加相应的代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

踏过山河,踏过海

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

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

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

打赏作者

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

抵扣说明:

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

余额充值