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

📄 mainwindow.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
字号:
/******************************************************************************** Copyright (C) 2004-2007 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://trolltech.com/products/qt/licenses/licensing/opensource/**** If you are unsure which license is appropriate for your use, please** review the following information:** http://trolltech.com/products/qt/licenses/licensing/licensingoverview** or contact the sales department at sales@trolltech.com.**** In addition, as a special exception, Trolltech gives you certain** additional rights. These rights are described in the Trolltech GPL** Exception version 1.0, which can be found at** http://www.trolltech.com/products/qt/gplexception/ and in the file** GPL_EXCEPTION.txt in this package.**** In addition, as a special exception, Trolltech, as the sole copyright** holder for Qt Designer, grants users of the Qt/Eclipse Integration** plug-in the right for the Qt/Eclipse Integration to link to** functionality provided by Qt Designer and its related libraries.**** Trolltech reserves all rights not expressly granted herein.**** 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 "characterwidget.h"#include "mainwindow.h"MainWindow::MainWindow(){    QWidget *centralWidget = new QWidget;    QLabel *fontLabel = new QLabel(tr("Font:"));    fontCombo = new QFontComboBox;    QLabel *sizeLabel = new QLabel(tr("Size:"));    sizeCombo = new QComboBox;    QLabel *styleLabel = new QLabel(tr("Style:"));    styleCombo = new QComboBox;    QLabel *fontMergingLabel = new QLabel(tr("Automatic Font Merging:"));    fontMerging = new QCheckBox;    fontMerging->setChecked(true);    scrollArea = new QScrollArea;    characterWidget = new CharacterWidget;    scrollArea->setWidget(characterWidget);    findStyles(fontCombo->currentFont());    findSizes(fontCombo->currentFont());    lineEdit = new QLineEdit;    QPushButton *clipboardButton = new QPushButton(tr("&To clipboard"));    clipboard = QApplication::clipboard();    connect(fontCombo, SIGNAL(currentFontChanged(const QFont &)),            this, SLOT(findStyles(const QFont &)));    connect(fontCombo, SIGNAL(currentFontChanged(const QFont &)),            this, SLOT(findSizes(const QFont &)));    connect(fontCombo, SIGNAL(currentFontChanged(const QFont &)),            characterWidget, SLOT(updateFont(const QFont &)));    connect(sizeCombo, SIGNAL(currentIndexChanged(const QString &)),            characterWidget, SLOT(updateSize(const QString &)));    connect(styleCombo, SIGNAL(currentIndexChanged(const QString &)),            characterWidget, SLOT(updateStyle(const QString &)));    connect(characterWidget, SIGNAL(characterSelected(const QString &)),            this, SLOT(insertCharacter(const QString &)));    connect(clipboardButton, SIGNAL(clicked()), this, SLOT(updateClipboard()));    connect(fontMerging, SIGNAL(toggled(bool)), characterWidget, SLOT(updateFontMerging(bool)));    QHBoxLayout *controlsLayout = new QHBoxLayout;    controlsLayout->addWidget(fontLabel);    controlsLayout->addWidget(fontCombo, 1);    controlsLayout->addWidget(sizeLabel);    controlsLayout->addWidget(sizeCombo, 1);    controlsLayout->addWidget(styleLabel);    controlsLayout->addWidget(styleCombo, 1);    controlsLayout->addWidget(fontMergingLabel);    controlsLayout->addWidget(fontMerging, 1);    controlsLayout->addStretch(1);    QHBoxLayout *lineLayout = new QHBoxLayout;    lineLayout->addWidget(lineEdit, 1);    lineLayout->addSpacing(12);    lineLayout->addWidget(clipboardButton);    QVBoxLayout *centralLayout = new QVBoxLayout;    centralLayout->addLayout(controlsLayout);    centralLayout->addWidget(scrollArea, 1);    centralLayout->addSpacing(4);    centralLayout->addLayout(lineLayout);    centralWidget->setLayout(centralLayout);    setCentralWidget(centralWidget);    setWindowTitle(tr("Character Map"));}void MainWindow::findStyles(const QFont &font){    QFontDatabase fontDatabase;    QString currentItem = styleCombo->currentText();    styleCombo->clear();    QString style;    foreach (style, fontDatabase.styles(font.family()))        styleCombo->addItem(style);    int styleIndex = styleCombo->findText(currentItem);    if (styleIndex == -1)        styleCombo->setCurrentIndex(0);    else        styleCombo->setCurrentIndex(styleIndex);}void MainWindow::findSizes(const QFont &font){    QFontDatabase fontDatabase;    QString currentSize = sizeCombo->currentText();    sizeCombo->blockSignals(true);    sizeCombo->clear();    int size;    if(fontDatabase.isSmoothlyScalable(font.family(), fontDatabase.styleString(font))) {        foreach(size, QFontDatabase::standardSizes()) {            sizeCombo->addItem(QVariant(size).toString());            sizeCombo->setEditable(true);        }    } else {        foreach(size, fontDatabase.smoothSizes(font.family(), fontDatabase.styleString(font))) {            sizeCombo->addItem(QVariant(size).toString());            sizeCombo->setEditable(false);        }    }    sizeCombo->blockSignals(false);    int sizeIndex = sizeCombo->findText(currentSize);    if(sizeIndex == -1)        sizeCombo->setCurrentIndex(qMax(0, sizeCombo->count() / 3));    else        sizeCombo->setCurrentIndex(sizeIndex);}void MainWindow::insertCharacter(const QString &character){    lineEdit->insert(character);}void MainWindow::updateClipboard(){    clipboard->setText(lineEdit->text(), QClipboard::Clipboard);    clipboard->setText(lineEdit->text(), QClipboard::Selection);}

⌨️ 快捷键说明

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