day2: homework 第二到六题
This commit is contained in:
parent
c35c647b8b
commit
c92c63bb96
|
@ -26,3 +26,6 @@ HEADERS += \
|
|||
qnx: target.path = /tmp/$${TARGET}/bin
|
||||
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||
!isEmpty(target.path): INSTALLS += target
|
||||
|
||||
RESOURCES += \
|
||||
res.qrc
|
||||
|
|
|
@ -3,6 +3,92 @@
|
|||
MainWindow::MainWindow(QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
{
|
||||
setWindowTitle("简单记事");
|
||||
setFixedSize(800,600);
|
||||
QPixmap window_icon;
|
||||
window_icon.load(":logo");
|
||||
setWindowIcon(QIcon(window_icon));
|
||||
|
||||
|
||||
menu_bar = new QMenuBar(this); // 父组件为当前 MainWindow
|
||||
setMenuBar(menu_bar);
|
||||
|
||||
|
||||
|
||||
menu1 = new QMenu("文件",menu_bar); // 父组件为 menu_bar
|
||||
openAction = new QAction("打开",menu1); // 父组件为 menu1
|
||||
saveAction = new QAction("保存",menu1);
|
||||
exitAction = new QAction("退出",menu1);
|
||||
openAction->setShortcut(QKeySequence(tr("ctrl+o"))); // 快捷键绑定
|
||||
saveAction->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_S));
|
||||
exitAction->setShortcut(QKeySequence(tr("ctrl+q")));
|
||||
connect(openAction,&QAction::triggered,[&]{ // 事件绑定
|
||||
qDebug()<<"打开...";
|
||||
// 打开文件
|
||||
QString file_path = QFileDialog::getOpenFileName(this,"打开文件",".","Text(*.txt);;Markdown(*.md)");
|
||||
QFile file(file_path);
|
||||
if(!file.open(QIODevice::ReadOnly|QIODevice::Text)){
|
||||
QMessageBox::critical(this,"错误","文件路径 "+file_path+" 打开错误");
|
||||
return; // 提前返回
|
||||
}
|
||||
QTextStream in(&file);
|
||||
text_edit->setMarkdown(in.readAll());
|
||||
file.close();
|
||||
});
|
||||
connect(saveAction,&QAction::triggered,[&]{
|
||||
qDebug()<<"保存...";
|
||||
QString file_path = QFileDialog::getSaveFileName(this,"保存文件",".","Markdown(*.md)");
|
||||
QFile file(file_path);
|
||||
if(!file.open(QIODevice::WriteOnly|QIODevice::Text)){
|
||||
QMessageBox::critical(this,"错误","文件路径 "+file_path+"无法保存");
|
||||
return;
|
||||
}
|
||||
QTextStream out(&file);
|
||||
out << text_edit->toMarkdown();
|
||||
file.close();
|
||||
});
|
||||
connect(exitAction,&QAction::triggered,[&]{
|
||||
qDebug()<<"退出...";
|
||||
this->close();
|
||||
});
|
||||
openAction->setIcon(QIcon(":open"));
|
||||
saveAction->setIcon(QIcon(":save"));
|
||||
menu1->addAction(openAction);
|
||||
menu1->addAction(saveAction);
|
||||
menu1->addAction(exitAction);
|
||||
|
||||
menu2 = new QMenu("编辑",menu_bar);
|
||||
menu3 = new QMenu("查看",menu_bar);
|
||||
menu4 = new QMenu("关于",menu_bar);
|
||||
aboutAction = new QAction("关于软件",menu4);
|
||||
aboutQtAction = new QAction("关于Qt",menu4);
|
||||
connect(aboutAction,&QAction::triggered,[&]{
|
||||
QMessageBox::about(this,"简单记事","这是一个简单的记事本");
|
||||
});
|
||||
connect(aboutQtAction,&QAction::triggered,[&]{
|
||||
QMessageBox::aboutQt(this);
|
||||
});
|
||||
menu4->addAction(aboutAction);
|
||||
menu4->addAction(aboutQtAction);
|
||||
|
||||
menu_bar->addMenu(menu1);
|
||||
menu_bar->addMenu(menu2);
|
||||
menu_bar->addMenu(menu3);
|
||||
menu_bar->addMenu(menu4);
|
||||
|
||||
|
||||
|
||||
status_bar = new QStatusBar(this);
|
||||
QLabel *left_status_label = new QLabel("行4 列19",status_bar);
|
||||
QLabel *right_status_label = new QLabel("utf-8",status_bar);
|
||||
|
||||
status_bar->addWidget(left_status_label);
|
||||
status_bar->addPermanentWidget(right_status_label); // 添加永久小部件
|
||||
setStatusBar(status_bar);
|
||||
|
||||
text_edit = new QTextEdit("文本区占位符",this);
|
||||
setCentralWidget(text_edit);
|
||||
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
|
|
|
@ -1,12 +1,32 @@
|
|||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include <QDebug>
|
||||
#include <QMainWindow>
|
||||
#include <QMenu>
|
||||
#include <QMenuBar>
|
||||
#include <QAction>
|
||||
#include <QTextEdit>
|
||||
#include <QStatusBar>
|
||||
#include <QFileDialog>
|
||||
#include <QFile>
|
||||
#include <QMessageBox>
|
||||
#include <QTextStream>
|
||||
#include <QLabel>
|
||||
#include <QPixmap>
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
QMenuBar *menu_bar; // 菜单栏
|
||||
QMenu *menu1,*menu2,*menu3,*menu4; // 文件、编辑、查看、关于
|
||||
QStatusBar *status_bar; // 状态栏
|
||||
QTextEdit *text_edit; // 文本编辑(中心空间)
|
||||
QAction *openAction,*saveAction,*exitAction; // 打开、保存、退出
|
||||
QAction *aboutAction,*aboutQtAction; // 关于、关于Qt
|
||||
|
||||
public:
|
||||
MainWindow(QWidget *parent = nullptr);
|
||||
~MainWindow();
|
||||
|
|
|
@ -1,2 +1,7 @@
|
|||
<!DOCTYPE RCC>
|
||||
<RCC version="1.0"/>
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file alias="logo">images/logo.png</file>
|
||||
<file alias="open">images/open.png</file>
|
||||
<file alias="save">images/save.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
Loading…
Reference in New Issue