Compare commits
2 Commits
01c4a6e3ad
...
c92c63bb96
Author | SHA1 | Date |
---|---|---|
flykhan | c92c63bb96 | |
flykhan | c35c647b8b |
|
@ -0,0 +1,73 @@
|
||||||
|
# This file is used to ignore files which are generated
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
*~
|
||||||
|
*.autosave
|
||||||
|
*.a
|
||||||
|
*.core
|
||||||
|
*.moc
|
||||||
|
*.o
|
||||||
|
*.obj
|
||||||
|
*.orig
|
||||||
|
*.rej
|
||||||
|
*.so
|
||||||
|
*.so.*
|
||||||
|
*_pch.h.cpp
|
||||||
|
*_resource.rc
|
||||||
|
*.qm
|
||||||
|
.#*
|
||||||
|
*.*#
|
||||||
|
core
|
||||||
|
!core/
|
||||||
|
tags
|
||||||
|
.DS_Store
|
||||||
|
.directory
|
||||||
|
*.debug
|
||||||
|
Makefile*
|
||||||
|
*.prl
|
||||||
|
*.app
|
||||||
|
moc_*.cpp
|
||||||
|
ui_*.h
|
||||||
|
qrc_*.cpp
|
||||||
|
Thumbs.db
|
||||||
|
*.res
|
||||||
|
*.rc
|
||||||
|
/.qmake.cache
|
||||||
|
/.qmake.stash
|
||||||
|
|
||||||
|
# qtcreator generated files
|
||||||
|
*.pro.user*
|
||||||
|
|
||||||
|
# xemacs temporary files
|
||||||
|
*.flc
|
||||||
|
|
||||||
|
# Vim temporary files
|
||||||
|
.*.swp
|
||||||
|
|
||||||
|
# Visual Studio generated files
|
||||||
|
*.ib_pdb_index
|
||||||
|
*.idb
|
||||||
|
*.ilk
|
||||||
|
*.pdb
|
||||||
|
*.sln
|
||||||
|
*.suo
|
||||||
|
*.vcproj
|
||||||
|
*vcproj.*.*.user
|
||||||
|
*.ncb
|
||||||
|
*.sdf
|
||||||
|
*.opensdf
|
||||||
|
*.vcxproj
|
||||||
|
*vcxproj.*
|
||||||
|
|
||||||
|
# MinGW generated files
|
||||||
|
*.Debug
|
||||||
|
*.Release
|
||||||
|
|
||||||
|
# Python byte code
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Binaries
|
||||||
|
# --------
|
||||||
|
*.dll
|
||||||
|
*.exe
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
QT += core gui
|
||||||
|
|
||||||
|
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||||
|
|
||||||
|
CONFIG += c++11
|
||||||
|
|
||||||
|
# The following define makes your compiler emit warnings if you use
|
||||||
|
# any Qt feature that has been marked deprecated (the exact warnings
|
||||||
|
# depend on your compiler). Please consult the documentation of the
|
||||||
|
# deprecated API in order to know how to port your code away from it.
|
||||||
|
DEFINES += QT_DEPRECATED_WARNINGS
|
||||||
|
|
||||||
|
# You can also make your code fail to compile if it uses deprecated APIs.
|
||||||
|
# In order to do so, uncomment the following line.
|
||||||
|
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||||
|
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
main.cpp \
|
||||||
|
mainwindow.cpp
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
mainwindow.h
|
||||||
|
|
||||||
|
# Default rules for deployment.
|
||||||
|
qnx: target.path = /tmp/$${TARGET}/bin
|
||||||
|
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
|
RESOURCES += \
|
||||||
|
res.qrc
|
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
Binary file not shown.
After Width: | Height: | Size: 8.7 KiB |
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
|
@ -0,0 +1,11 @@
|
||||||
|
#include "mainwindow.h"
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QApplication a(argc, argv);
|
||||||
|
MainWindow w;
|
||||||
|
w.show();
|
||||||
|
return a.exec();
|
||||||
|
}
|
|
@ -0,0 +1,97 @@
|
||||||
|
#include "mainwindow.h"
|
||||||
|
|
||||||
|
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()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
#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();
|
||||||
|
};
|
||||||
|
#endif // MAINWINDOW_H
|
|
@ -0,0 +1,7 @@
|
||||||
|
<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>
|
|
@ -0,0 +1,73 @@
|
||||||
|
# This file is used to ignore files which are generated
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
*~
|
||||||
|
*.autosave
|
||||||
|
*.a
|
||||||
|
*.core
|
||||||
|
*.moc
|
||||||
|
*.o
|
||||||
|
*.obj
|
||||||
|
*.orig
|
||||||
|
*.rej
|
||||||
|
*.so
|
||||||
|
*.so.*
|
||||||
|
*_pch.h.cpp
|
||||||
|
*_resource.rc
|
||||||
|
*.qm
|
||||||
|
.#*
|
||||||
|
*.*#
|
||||||
|
core
|
||||||
|
!core/
|
||||||
|
tags
|
||||||
|
.DS_Store
|
||||||
|
.directory
|
||||||
|
*.debug
|
||||||
|
Makefile*
|
||||||
|
*.prl
|
||||||
|
*.app
|
||||||
|
moc_*.cpp
|
||||||
|
ui_*.h
|
||||||
|
qrc_*.cpp
|
||||||
|
Thumbs.db
|
||||||
|
*.res
|
||||||
|
*.rc
|
||||||
|
/.qmake.cache
|
||||||
|
/.qmake.stash
|
||||||
|
|
||||||
|
# qtcreator generated files
|
||||||
|
*.pro.user*
|
||||||
|
|
||||||
|
# xemacs temporary files
|
||||||
|
*.flc
|
||||||
|
|
||||||
|
# Vim temporary files
|
||||||
|
.*.swp
|
||||||
|
|
||||||
|
# Visual Studio generated files
|
||||||
|
*.ib_pdb_index
|
||||||
|
*.idb
|
||||||
|
*.ilk
|
||||||
|
*.pdb
|
||||||
|
*.sln
|
||||||
|
*.suo
|
||||||
|
*.vcproj
|
||||||
|
*vcproj.*.*.user
|
||||||
|
*.ncb
|
||||||
|
*.sdf
|
||||||
|
*.opensdf
|
||||||
|
*.vcxproj
|
||||||
|
*vcxproj.*
|
||||||
|
|
||||||
|
# MinGW generated files
|
||||||
|
*.Debug
|
||||||
|
*.Release
|
||||||
|
|
||||||
|
# Python byte code
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Binaries
|
||||||
|
# --------
|
||||||
|
*.dll
|
||||||
|
*.exe
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
QT += core gui
|
||||||
|
|
||||||
|
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||||
|
|
||||||
|
CONFIG += c++11
|
||||||
|
|
||||||
|
# The following define makes your compiler emit warnings if you use
|
||||||
|
# any Qt feature that has been marked deprecated (the exact warnings
|
||||||
|
# depend on your compiler). Please consult the documentation of the
|
||||||
|
# deprecated API in order to know how to port your code away from it.
|
||||||
|
DEFINES += QT_DEPRECATED_WARNINGS
|
||||||
|
|
||||||
|
# You can also make your code fail to compile if it uses deprecated APIs.
|
||||||
|
# In order to do so, uncomment the following line.
|
||||||
|
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||||
|
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
main.cpp \
|
||||||
|
mainwindow.cpp \
|
||||||
|
widget1.cpp
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
mainwindow.h \
|
||||||
|
widget1.h
|
||||||
|
|
||||||
|
# Default rules for deployment.
|
||||||
|
qnx: target.path = /tmp/$${TARGET}/bin
|
||||||
|
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
|
!isEmpty(target.path): INSTALLS += target
|
|
@ -0,0 +1,11 @@
|
||||||
|
#include "mainwindow.h"
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QApplication a(argc, argv);
|
||||||
|
MainWindow w;
|
||||||
|
w.show();
|
||||||
|
return a.exec();
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
#include "mainwindow.h"
|
||||||
|
|
||||||
|
MainWindow::MainWindow(QWidget *parent)
|
||||||
|
: QMainWindow(parent)
|
||||||
|
{
|
||||||
|
setFixedSize(800,600);
|
||||||
|
widget1 = new Widget1(this);
|
||||||
|
|
||||||
|
setCentralWidget(widget1);
|
||||||
|
}
|
||||||
|
|
||||||
|
MainWindow::~MainWindow()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
#ifndef MAINWINDOW_H
|
||||||
|
#define MAINWINDOW_H
|
||||||
|
|
||||||
|
#include <QMainWindow>
|
||||||
|
#include <widget1.h>
|
||||||
|
|
||||||
|
class MainWindow : public QMainWindow
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
private:
|
||||||
|
Widget1 *widget1;
|
||||||
|
|
||||||
|
public:
|
||||||
|
MainWindow(QWidget *parent = nullptr);
|
||||||
|
~MainWindow();
|
||||||
|
};
|
||||||
|
#endif // MAINWINDOW_H
|
|
@ -0,0 +1,15 @@
|
||||||
|
#include "widget1.h"
|
||||||
|
|
||||||
|
Widget1::Widget1(QWidget *parent) : QWidget(parent)
|
||||||
|
{
|
||||||
|
setFixedSize(800,600);
|
||||||
|
|
||||||
|
line_edit = new QLineEdit("请输入网址: ",this);
|
||||||
|
label = new QLabel(this);
|
||||||
|
label->setText("label 占位");
|
||||||
|
|
||||||
|
line_edit->setFixedSize(800,50);
|
||||||
|
label->setFixedSize(800,540);
|
||||||
|
label->move(0,60);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
#ifndef WIDGET1_H
|
||||||
|
#define WIDGET1_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QLineEdit>
|
||||||
|
#include <QLabel>
|
||||||
|
|
||||||
|
class Widget1 : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
private:
|
||||||
|
QLineEdit *line_edit; // 用于网址输入的单行文本编辑器
|
||||||
|
QLabel *label; // QLabel ,设置足够大
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit Widget1(QWidget *parent = nullptr);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // WIDGET1_H
|
Loading…
Reference in New Issue