c语言入门:用qt实现简单IDE
main.cpp
#include "mainwindow.h"
#include
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
#include
#include
#include
namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: 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
#include
#include
//#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(f