⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainwindow.cpp

📁 QT 开发环境里面一个很重要的文件
💻 CPP
字号:
/******************************************************************************** Copyright (C) 2005-2006 Trolltech ASA. All rights reserved.**** This file is part of the example classes of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include <QtGui>#include "locationdialog.h"#include "mainwindow.h"#include "settingstree.h"MainWindow::MainWindow(){    settingsTree = new SettingsTree;    setCentralWidget(settingsTree);    locationDialog = 0;    createActions();    createMenus();    autoRefreshAct->setChecked(true);    fallbacksAct->setChecked(true);    setWindowTitle(tr("Settings Editor"));    resize(500, 600);}void MainWindow::openSettings(){    if (!locationDialog)        locationDialog = new LocationDialog(this);    if (locationDialog->exec()) {        QSettings *settings = new QSettings(locationDialog->format(),                                            locationDialog->scope(),                                            locationDialog->organization(),                                            locationDialog->application());        setSettingsObject(settings);        fallbacksAct->setEnabled(true);    }}void MainWindow::openIniFile(){    QString fileName = QFileDialog::getOpenFileName(this, tr("Open INI File"),                               "", tr("INI Files (*.ini *.conf)"));    if (!fileName.isEmpty()) {        QSettings *settings = new QSettings(fileName, QSettings::IniFormat);        setSettingsObject(settings);        fallbacksAct->setEnabled(false);    }}void MainWindow::openPropertyList(){    QString fileName = QFileDialog::getOpenFileName(this,                               tr("Open Property List"),                               "", tr("Property List Files (*.plist)"));    if (!fileName.isEmpty()) {        QSettings *settings = new QSettings(fileName, QSettings::NativeFormat);        setSettingsObject(settings);        fallbacksAct->setEnabled(false);    }}void MainWindow::openRegistryPath(){    QString path = QInputDialog::getText(this, tr("Open Registry Path"),                           tr("Enter the path in the Windows registry:"),                           QLineEdit::Normal, "HKEY_CURRENT_USER\\");    if (!path.isEmpty()) {        QSettings *settings = new QSettings(path, QSettings::NativeFormat);        setSettingsObject(settings);        fallbacksAct->setEnabled(false);    }}void MainWindow::about(){    QMessageBox::about(this, tr("About Settings Editor"),            tr("The <b>Settings Editor</b> example shows how to access "               "application settings using Qt."));}void MainWindow::createActions(){    openSettingsAct = new QAction(tr("&Open Application Settings..."), this);    openSettingsAct->setShortcut(tr("Ctrl+O"));    connect(openSettingsAct, SIGNAL(triggered()), this, SLOT(openSettings()));    openIniFileAct = new QAction(tr("Open I&NI File..."), this);    openIniFileAct->setShortcut(tr("Ctrl+N"));    connect(openIniFileAct, SIGNAL(triggered()), this, SLOT(openIniFile()));    openPropertyListAct = new QAction(tr("Open Mac &Property List..."), this);    openPropertyListAct->setShortcut(tr("Ctrl+P"));    connect(openPropertyListAct, SIGNAL(triggered()),            this, SLOT(openPropertyList()));    openRegistryPathAct = new QAction(tr("Open Windows &Registry Path..."),                                      this);    openRegistryPathAct->setShortcut(tr("Ctrl+G"));    connect(openRegistryPathAct, SIGNAL(triggered()),            this, SLOT(openRegistryPath()));    refreshAct = new QAction(tr("&Refresh"), this);    refreshAct->setShortcut(tr("Ctrl+R"));    refreshAct->setEnabled(false);    connect(refreshAct, SIGNAL(triggered()), settingsTree, SLOT(refresh()));    exitAct = new QAction(tr("E&xit"), this);    exitAct->setShortcut(tr("Ctrl+Q"));    connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));    autoRefreshAct = new QAction(tr("&Auto-Refresh"), this);    autoRefreshAct->setShortcut(tr("Ctrl+A"));    autoRefreshAct->setCheckable(true);    autoRefreshAct->setEnabled(false);    connect(autoRefreshAct, SIGNAL(triggered(bool)),            settingsTree, SLOT(setAutoRefresh(bool)));    connect(autoRefreshAct, SIGNAL(triggered(bool)),            refreshAct, SLOT(setDisabled(bool)));    fallbacksAct = new QAction(tr("&Fallbacks"), this);    fallbacksAct->setShortcut(tr("Ctrl+F"));    fallbacksAct->setCheckable(true);    fallbacksAct->setEnabled(false);    connect(fallbacksAct, SIGNAL(triggered(bool)),            settingsTree, SLOT(setFallbacksEnabled(bool)));    aboutAct = new QAction(tr("&About"), this);    connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));    aboutQtAct = new QAction(tr("About &Qt"), this);    connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));#ifndef Q_WS_MAC    openPropertyListAct->setEnabled(false);#endif#ifndef Q_WS_WIN    openRegistryPathAct->setEnabled(false);#endif}void MainWindow::createMenus(){    fileMenu = menuBar()->addMenu(tr("&File"));    fileMenu->addAction(openSettingsAct);    fileMenu->addAction(openIniFileAct);    fileMenu->addAction(openPropertyListAct);    fileMenu->addAction(openRegistryPathAct);    fileMenu->addSeparator();    fileMenu->addAction(refreshAct);    fileMenu->addSeparator();    fileMenu->addAction(exitAct);    optionsMenu = menuBar()->addMenu(tr("&Options"));    optionsMenu->addAction(autoRefreshAct);    optionsMenu->addAction(fallbacksAct);    menuBar()->addSeparator();    helpMenu = menuBar()->addMenu(tr("&Help"));    helpMenu->addAction(aboutAct);    helpMenu->addAction(aboutQtAct);}void MainWindow::setSettingsObject(QSettings *settings){    settings->setFallbacksEnabled(fallbacksAct->isChecked());    settingsTree->setSettingsObject(settings);    refreshAct->setEnabled(true);    autoRefreshAct->setEnabled(true);    QString niceName = settings->fileName();    niceName.replace("\\", "/");    int pos = niceName.lastIndexOf("/");    if (pos != -1)        niceName.remove(0, pos + 1);    if (!settings->isWritable())        niceName = tr("%1 (read only)").arg(niceName);    setWindowTitle(tr("%1 - %2").arg(niceName).arg(tr("Settings Editor")));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -