Qt实现基本QMainWindow主窗口程序
生活随笔
收集整理的這篇文章主要介紹了
Qt实现基本QMainWindow主窗口程序
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
這個(gè)實(shí)驗(yàn)用Qt實(shí)現(xiàn)基本QMainWindow主窗口
?
先上實(shí)驗(yàn)效果圖
????
打開(kāi)一個(gè)文件,讀取文件類(lèi)容
?
?
詳細(xì)步驟:
?
1.打開(kāi)Qt creator新建MainWindow工程
?
右鍵工程名添加新文件,main文件,后綴自動(dòng)補(bǔ)全后為main.cpp
?
?
選中工程,再次右鍵,選擇模板的時(shí)候選擇C++類(lèi),添加一個(gè)MainWindow類(lèi),該類(lèi)繼承字QMainWindow
?
?
#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QApplication> #include <QAction> #include <QMenu> #include <QFileDialog> #include <QFile> #include <QTextStream> #include <QToolBar> #include <QTextEdit> #include <QMainWindow> #include <QString> #include <QMenuBar>class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();void createMenus();void createActions();void createToolBars();void loadFile(QString fileName);public slots:void slotNewFile();void slotOpenFile();void slotSaveFile();private:QMenu *fileMenu;QMenu *editMenu;QMenu *aboutMenu;QString fileName;QToolBar *fileTool;QToolBar *editTool;QAction *fileOpenAction;QAction *fileNewAction;QAction *fileSaveAction;QAction *exitAction;QAction *copyAction;QAction *cutAction;QAction *pasteAction;QAction *aboutAction;QTextEdit *text;};#endif // MAINWINDOW_H?
#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent){//設(shè)置主窗口標(biāo)題setWindowTitle(tr("QMainWindow"));text = new QTextEdit(this);setCentralWidget(text);createActions();createMenus();createToolBars();}MainWindow::~MainWindow() {}void MainWindow::createActions() {//通過(guò)圖片路徑來(lái)實(shí)現(xiàn)添加Qt資源文件目的fileOpenAction = new QAction(QIcon("C:/qt/Mwindow/open.png"),tr("Open"),this);fileOpenAction->setShortcut(tr("Ctrl+O"));fileOpenAction->setStatusTip(tr("Open a file"));connect(fileOpenAction,SIGNAL(triggered()),this,SLOT(slotOpenFile()));fileNewAction = new QAction(QIcon("C:/qt/Mwindow/new.png"),tr("New"),this);fileNewAction->setShortcut(tr("Ctrl+N"));fileNewAction->setStatusTip(tr("new file"));connect(fileNewAction,SIGNAL(triggered()),this,SLOT(slotNewFile()));fileSaveAction = new QAction(QIcon("C:/qt/Mwindow/save.png"),tr("Save"),this);fileSaveAction->setShortcut(tr("Ctrl+S"));fileNewAction->setStatusTip(tr("save file"));connect(fileNewAction,SIGNAL(triggered()),this,SLOT(slotSaveFile()));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("C:/qt/Mwindow/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("C:/qt/Mwindow/copy.png"),tr("Copy"),this);copyAction->setShortcut(tr("Ctrl+C"));copyAction->setStatusTip(tr("copy to clipboard"));connect(copyAction,SIGNAL(triggered()),this,SLOT(copy()));pasteAction = new QAction(QIcon("C:/qt/Mwindow/paste.png"),tr("paste"),this);pasteAction->setShortcut(tr("Ctrl+V"));pasteAction->setStatusTip(tr("paste clipboard to selection"));connect(pasteAction,SIGNAL(triggered()),this,SLOT(paste()));aboutAction = new QAction(tr("About"),this);connect(aboutAction,SIGNAL(triggered()),this,SLOT(slotAbout()));}void MainWindow::createMenus() {fileMenu = menuBar()->addMenu(tr("File"));fileMenu->addAction(fileNewAction);fileMenu->addAction(fileOpenAction);fileMenu->addAction(fileSaveAction);fileMenu->addAction(exitAction);editMenu = menuBar()->addMenu(tr("Edit"));editMenu->addAction(copyAction);editMenu->addAction(cutAction);editMenu->addAction(pasteAction);aboutMenu = menuBar()->addMenu(tr("Help"));aboutMenu->addAction(aboutAction);}void MainWindow::createToolBars() {fileTool = addToolBar("File");fileTool->addAction(fileNewAction);fileTool->addAction(fileOpenAction);fileTool->addAction(fileSaveAction);editTool = addToolBar("Edit");editTool->addAction(copyAction);editTool->addAction(cutAction);editTool->addAction(pasteAction); }void MainWindow::slotNewFile() {MainWindow *newWin = new MainWindow;newWin->show(); }void MainWindow::slotOpenFile() {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::loadFile(QString fileName) {printf("file name:%s\n",fileName.data());QFile file(fileName);if(file.open(QIODevice::ReadOnly|QIODevice::Text)){QTextStream textStream(&file);while(!textStream.atEnd()){text->append(textStream.readLine());printf("read line.\n");}printf("end\n");} }?
#include <QtGui/QApplication> #include "mainwindow.h"int main(int argc, char *argv[]) {QApplication a(argc, argv);MainWindow w;w.show();return a.exec(); }?
轉(zhuǎn)載于:https://www.cnblogs.com/JeffreyCheung/p/5826664.html
總結(jié)
以上是生活随笔為你收集整理的Qt实现基本QMainWindow主窗口程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 基于Session的国际化实现
- 下一篇: 直播技术初体验,简单实现直播不同阶段