QT 创建主窗口 MainWindow 实例
来源:互联网 发布:php求素数 编辑:程序博客网 时间:2024/05/01 02:54
1.
2. mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QWorkspace>#include <QMdiArea>#include <QMdiSubWindow>class QAction;class QMenu;class QToolBar;class QTextEdit;class MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWindow(); void createMenus(); void createActions(); void createToolBars(); void loadFile(QString fileName);public slots: void slotNewFile(); void slotOpenFile(); void slotSaveFile(); void slotCopy(); void slotCut(); void slotPaste(); void slotAbout();protected: //void closeEvent(QCloseEvent *);private: QTextCodec *codec; QMenu *fileMenu; QMenu *editMenu; QMenu *aboutMenu; QToolBar *fileTool; QToolBar *editTool; QAction *fileOpenAction; QAction *fileNewAction; QAction *fileSaveAction; QAction *exitAction; QAction *copyAction; QAction *cutAction; QAction *pasteAction; QAction *aboutAction; QTextEdit * text; QWorkspace *workSpace;};#endif // MAINWINDOW_H
3. mainwindow.cpp
MainWindow构造函数中可加入 setAttribute(Qt::WA_DeleteOnClose);
多窗口时关闭窗口默认是隐藏,这样设置后为关闭,防止内存泄露。
#include "mainwindow.h"#include <QtGui>// 翋敦諳妗珋MainWindow::MainWindow(){ setWindowTitle(tr("myMainWindow")); text = new QTextEdit(this); setCentralWidget(text); /* workSpace = new QWorkspace; setCentralWidget(workSpace); QMainWindow *window1 = new QMainWindow; window1->setWindowTitle("window1"); QTextEdit *text1 = new QTextEdit; text1->setText("text1"); window1->setCentralWidget(text1); workSpace->addWindow(window1);*/ createActions(); createMenus(); createToolBars();}voidMainWindow::createActions(){ // file open action fileOpenAction = new QAction(QIcon(":/images/open.png"),tr("Open"),this);// 湖羲恅璃 fileOpenAction->setShortcut(tr("Ctrl+O")); fileOpenAction->setStatusTip(tr("open a file")); connect(fileOpenAction,SIGNAL(triggered()),this,SLOT(slotOpenFile())); // file new action fileNewAction = new QAction(QIcon(":/images/new.png"),tr("New"),this);// 陔膘恅璃 fileNewAction->setShortcut(tr("Ctrl+N")); fileNewAction->setStatusTip(tr("new file")); connect(fileNewAction,SIGNAL(triggered()),this,SLOT(slotNewFile())); // save file action fileSaveAction = new QAction(QPixmap(":/images/save.png"),tr("Save"),this);// 悵湔恅璃 fileSaveAction->setShortcut(tr("Ctrl+S")); fileSaveAction->setStatusTip(tr("save file")); connect(fileSaveAction,SIGNAL(activated()),this,SLOT(slotSaveFile())); // exit action exitAction = new QAction(tr("Exit"), this);// 豖堤 exitAction->setShortcut(tr("Ctrl+Q")); exitAction->setStatusTip(tr("exit")); connect(exitAction, SIGNAL(triggered()), this, SLOT(close())); cutAction = new QAction(QIcon(":/images/cut.png"), tr("Cut"), this);// 熟 cutAction->setShortcut(tr("Ctrl+X")); cutAction->setStatusTip(tr("cut to clipboard")); connect(cutAction, SIGNAL(triggered()), text, SLOT(cut())); copyAction = new QAction(QIcon(":/images/copy.png"), tr("Copy"), this);// 葩秶 copyAction->setShortcut(tr("Ctrl+C")); copyAction->setStatusTip(tr("copy to clipboard")); connect(copyAction, SIGNAL(triggered()), text, SLOT(copy())); pasteAction = new QAction(QIcon(":/images/paste.png"), tr("Paste"), this);// 梜泂 pasteAction->setShortcut(tr("Ctrl+V")); pasteAction->setStatusTip(tr("paste clipboard to selection")); connect(pasteAction, SIGNAL(triggered()), text, SLOT(paste())); aboutAction = new QAction(tr("About"), this);// 壽衾 connect(aboutAction, SIGNAL(triggered()), this, SLOT(slotAbout()));}voidMainWindow::createMenus(){ fileMenu = menuBar()->addMenu(tr("File")); editMenu = menuBar()->addMenu(tr("Edit")); aboutMenu = menuBar()->addMenu(tr("Help")); fileMenu->addAction(fileNewAction); fileMenu->addAction(fileOpenAction); fileMenu->addAction(fileSaveAction); fileMenu->addAction(exitAction); editMenu->addAction(copyAction); editMenu->addAction(cutAction); editMenu->addAction(pasteAction); aboutMenu->addAction(aboutAction);}voidMainWindow::createToolBars(){ fileTool = addToolBar(tr("File")); fileTool->setMovable(false); editTool = addToolBar(tr("Edit")); fileTool->addAction(fileNewAction); fileTool->addAction(fileOpenAction); fileTool->addAction(fileSaveAction); editTool->addAction(copyAction); editTool->addAction(cutAction); editTool->addAction(pasteAction);}void MainWindow::slotNewFile(){ MainWindow *newWin = new MainWindow(); newWin->show();}void MainWindow::loadFile(QString fileName){ QFile file( fileName ); if ( file.open (QIODevice::ReadOnly | QIODevice::Text)) { QTextStream textStream( &file ); while( !textStream.atEnd() ) { text->append( textStream.readLine() ); } }}void MainWindow::slotOpenFile(){ QString fileName = QFileDialog::getOpenFileName(this); if ( !fileName.isEmpty() ) { if( text->document()->isEmpty() ) loadFile(fileName); else { MainWindow *newWin = new MainWindow; newWin->show(); newWin->loadFile(fileName); } }}void MainWindow::slotSaveFile(){}void MainWindow::slotCopy(){}void MainWindow::slotCut(){}void MainWindow::slotPaste(){}void MainWindow::slotAbout(){}
- QT 创建主窗口 MainWindow 实例
- 6--QT 创建主窗口MainWindow
- QT学习笔记(4):主窗口 MainWindow
- QT实例之十二(mainwindow)
- Qt中MainWindow类实例
- QT基础(六)----QDialog窗口 & MainWIndow窗口
- QT创建主窗口
- [Qt]创建主窗口
- QT 创建主窗口
- Qt学习心得--mainwindow
- Qt之MainWindow学习
- QT之MainWindow
- Qt学习之三:创建主窗口
- Qt中UI::MainWindow与MainWindow
- QT 创建无边窗口
- Qt 创建OpenGL窗口
- WPF[调用线程无法访问此对象,因为另一个线程拥有该对象]主窗口MainWindow 创建的子线程 调用窗口线程的控件方法
- 3.关于QT中的MainWindow窗口,MenuBar,ToolBar,QuickTip等方面的知识点
- OCX控件相关
- 上传资料被锁定帐户
- 线段树的运用 以及poj上的经典题目
- HTTP协议状态码的含义
- uva 11151
- QT 创建主窗口 MainWindow 实例
- arraylist用法
- 【 DLL 破解】 .NET DLL 一次破解说明
- 常用的正则表达式
- 指针 与 引用
- linux进程调度浅析
- oracle利用行内视图实现分页显示
- Android学习笔记(五)相对布局(3)
- jquery上传之Uploadify