c语言入门:用qt实现简单IDE
来源:互联网 发布:亿级别数据库 编辑:程序博客网 时间:2024/05/01 09:34
main.cpp
#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.resize(1000,800); w.show(); return a.exec();}
mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QTextEdit>#include <QMenu>#include <QMenuBar>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); QString file_path; QTextEdit *te; QMenu *file; QMenu *edit; QMenu *build; QAction *open; QAction *save; QAction *exit_; QAction *copy; QAction *paste; QAction *cut; QAction *buildc; QAction *run; ~MainWindow();private: Ui::MainWindow *ui;private slots: void on_open_click(); void on_save_click(); void on_exit_click(); void on_copy_click(); void on_paste_click(); void on_cut_click(); void on_buildc_click(); void on_run_click();};#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#include <stdlib.h>#include <QFileDialog>#include <QMessageBox>//#include <>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); te=new QTextEdit; QFont font; font.setPointSize(10); te->setFont(font); this->setCentralWidget(te); file=new QMenu("file"); this->menuBar()->addMenu(file); edit=new QMenu("edit"); this->menuBar()->addMenu(edit); build=new QMenu("build"); this->menuBar()->addMenu(build); open=new QAction("open"); open->setShortcut(tr("ctrl+o")); file->addAction(open); save=new QAction("save"); save->setShortcut(tr("ctrl+s")); file->addAction(save); exit_=new QAction("eixt"); exit_->setShortcut(tr("ctrl+q")); file->addAction(exit_); connect(open,SIGNAL(triggered()),this,SLOT(on_open_click())); connect(save,SIGNAL(triggered()),this,SLOT(on_save_click())); connect(exit_,SIGNAL(triggered()),this,SLOT(on_exit_click())); copy=new QAction("copy"); copy->setShortcut(tr("ctrl+c")); edit->addAction(copy); paste=new QAction("paste"); paste->setShortcut(tr("ctrl+v")); edit->addAction(paste); cut=new QAction("cut"); cut->setShortcut(tr("ctrl+x")); edit->addAction(cut); connect(copy,SIGNAL(triggered()),this,SLOT(on_copy_click())); connect(paste,SIGNAL(triggered()),this,SLOT(on_paste_click())); connect(cut,SIGNAL(triggered()),this,SLOT(on_cut_click())); buildc=new QAction("buildc"); buildc->setShortcut(tr("ctrl+m")); build->addAction(buildc); run=new QAction("run"); run->setShortcut(tr("ctrl+r")); build->addAction(run); connect(buildc,SIGNAL(triggered()),this,SLOT(on_buildc_click())); connect(run,SIGNAL(triggered()),this,SLOT(on_run_click()));}MainWindow::~MainWindow(){ delete ui; delete te; delete file; delete edit; delete build; delete open; delete save; delete exit_; delete copy; delete paste; delete cut; delete buildc; delete run;}void MainWindow::on_open_click(){ file_path=QFileDialog::getOpenFileName(); if(file_path.isEmpty()) return; FILE *p =fopen(file_path.toStdString().data(),"r"); if(p==NULL) { QMessageBox::information(this,"notify","open file failure."); return; } QString content; char buf[1024]={0}; while(!feof(p)){ content+= fgets(buf,sizeof(buf),p); } fclose(p); te->setText(content);}void MainWindow::on_save_click(){ file_path=QFileDialog::getSaveFileName(); if(file_path==NULL)return; FILE *p=fopen(file_path.toStdString().data(),"w"); fputs(te->toPlainText().toStdString().data(),p); fclose(p);}void MainWindow::on_exit_click(){ exit(0);}void MainWindow::on_copy_click(){ te->copy();}void MainWindow::on_paste_click(){ te->paste();}void MainWindow::on_cut_click(){ te->cut();}void MainWindow::on_buildc_click(){ QString dest=file_path; dest.replace(".c",""); system(("gcc -o "+ dest +" "+ file_path).toStdString().data()); QMessageBox::information(this,"notify","build success!");}void MainWindow::on_run_click(){ QString dest=file_path; dest.replace(".c",""); system(dest.toStdString().data());}
阅读全文
1 0
- c语言入门:用qt实现简单IDE
- C语言入门简单例题
- 用C语言实现简单菜单
- 用C语言实现简单通讯录
- 关于用C语言简单实现组合
- 用c语言实现简单三子棋游戏
- 用c语言简单实现三子棋游戏
- C-IDE入门帮助
- QT编写简单的ide
- 简单五子棋----C语言实现
- C语言实现简单单链表
- C语言简单实现五子棋
- C语言简单实现接口
- c语言简单实现 扫雷
- 【C语言】简单实现三子棋
- C语言实现简单通讯录
- c语言简单实现队列
- c语言实现简单通讯录
- Rosalind-DNA转换为RNA
- python之numpy库[2]
- Java进阶(一)_开始读懂class文件
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛B(排序)
- OpenDDS开发手册---第二章(开始)4
- c语言入门:用qt实现简单IDE
- 通过Callable实现多线程
- MOOC清华《程序设计基础》第1章第4题:求解方程
- 今天写一个javaweb项目,前台表单提交的数据,后台用BeanUtils.populate(book, request.getParameterMap());怎么也获取不到数据。
- Android中MultiAutoCompleteTextView的运用?
- 多线程按顺序依次打印ABCD---java多线程的一道经典面试题
- Python学习练习5----字典、列表、函数的运用
- 27. OP-TEE驱动篇----libteec接口在驱动中的实现
- Hdu2099 ** 整除的尾数 (改了好久的)