QT学习6
来源:互联网 发布:js的insertbefore参数 编辑:程序博客网 时间:2024/05/18 00:10
QT---Notepad
这个算是比较复杂的一个了
生成过程,还是新建空的项目,不要加入界面文件,因为这个程序中所有界面都是用代码来实现的。
这个算是比较复杂的一个了
生成过程,还是新建空的项目,不要加入界面文件,因为这个程序中所有界面都是用代码来实现的。
插入一个main.cpp,再插入一个类Notepad,继承QMainWindow(会生成一个notepad.h和一个notepad.cpp)
//notepad.h#ifndef NOTEPAD_H#define NOTEPAD_H#include <QMainWindow>#include <QtGui>class Notepad : public QMainWindow{ Q_OBJECTpublic: Notepad(); signals://私有的插槽(这个地方很关键,上次函数不能调用,就是因为这个地方出的问题)private slots: void open(); void save();private: QTextEdit *textEdit; QAction *openAction; QAction *saveAction; QAction *exitAction; QMenu *fileMenu;};#endif // NOTEPAD_H
//notepad.cpp#include "notepad.h"Notepad::Notepad(){ //定义三个QAction openAction=new QAction(tr("&Open"),this); saveAction=new QAction(tr("&Save"),this); exitAction=new QAction(tr("&Exit"),this); //信号与插槽连接通信 connect(openAction,SIGNAL(triggered()),this,SLOT(open())); connect(saveAction,SIGNAL(triggered()),this,SLOT(save())); //注意这个地方,Exit按钮是跟qApp的quit()相关联的 connect(exitAction,SIGNAL(triggered()),qApp,SLOT(quit())); //设置菜单,并增加菜单项 fileMenu=menuBar()->addMenu(tr("&File")); fileMenu->addAction(openAction); fileMenu->addAction(saveAction); fileMenu->addSeparator(); fileMenu->addAction(exitAction); //创建TextEdit textEdit=new QTextEdit; //设置窗体的中央部件 setCentralWidget(textEdit); //设置标题 setWindowTitle(tr("Notepad"));};//打开相关操作,基本都能看明白void Notepad::open(){ QString fileName=QFileDialog::getOpenFileName(this,tr("Open"), tr("Text Files(*.txt);;C++ Files(*.cpp *.h)")); if(fileName!="") { QFile file(fileName); if(!file.open(QIODevice::ReadOnly)) { QMessageBox::critical(this,tr("Erro"),tr("Could not open file")); return; } QTextStream in(&file); textEdit->setText(in.readAll()); file.close(); }};//保存相关void Notepad::save(){ QString fileName=QFileDialog::getSaveFileName(this, tr("Save File"), "", tr("Text Files (*.txt);;C++ Files (*.cpp *.h)")); if(fileName!="") { QFile file(fileName); if(!file.open(QIODevice::WriteOnly)) { } else { QTextStream stream(&file); stream<<textEdit->toPlainText(); stream.flush(); file.close(); } }};
//main.cpp#include <QtGui/QApplication>#include "notepad.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); Notepad no; no.show(); return a.exec();}
- QT学习6
- Qt学习---6
- Qt学习笔记6-qwt
- Qt 学习使用qt
- QT学习
- QT学习
- qt学习
- QT学习
- 学习QT
- QT学习
- QT学习
- QT学习
- qt学习
- Qt学习
- qt学习
- QT学习
- QT 学习
- Qt学习
- adb 查看log
- WSAAsyncSelect自动把一个阻塞的socket转为非阻塞的,如果需要转为阻塞的
- BASH 字符串拆分
- C++ this指针的理解
- 不同进制输出
- QT学习6
- linux的写时复制
- 人力资源管理在企业ERP中的地位与作用
- c++中指针与动态内存的分配
- C#正则表达式(5):命名空间System.Text.RegularExpressions下面的类简介2
- Session和Cookie的一些事
- c语言不使用中间变量交换两个数
- delphi获取dll的函数列表
- OSGi服务发布和获取方式