- 相關推薦
c語言入門:用qt實現簡單IDE
正在學習C語言的大家,知道用qt如何實現實現簡單IDE嗎?想是小編為大家搜集整理出來的有關于c語言入門:用qt實現簡單IDE,希望可以幫助到大家!
main.cpp
1 2 3 4 5 6 7 8 9 10 11 12 | #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();}</qapplication> |
mainwindow.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #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</qmenubar></qmenu></qtextedit></qmainwindow> |
mainwindow.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | #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(){ ui; te; file; edit; build; open; save; exit_; copy; paste; cut; buildc; 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());}</qmessagebox></qfiledialog></stdlib.h> |
【c語言入門:用qt實現簡單IDE】相關文章:
C語言的HashTable簡單實現10-12
c語言入門的經典程序07-25
C語言入門知識07-20
c語言入門經典程序08-01
C語言入門學習09-15
C語言程序的實現09-27
C語言編譯器和IDE選擇09-22
C語言編譯器和IDE的選擇06-30
簡單選擇排序(C語言實現)08-09