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

📄 mainwindow.cpp

📁 本文件是<精通QT4编程>的配套源代码
💻 CPP
字号:
#include <QtGui>#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent)   : QMainWindow(parent){	fontColor = Qt::black;	fontSize = 16;	createActions();	createToolBars();	createMenus();	updateColor();	fontEdit = new QTextEdit();	setCentralWidget(fontEdit);		resize(800,600);	listAllFonts();}void MainWindow::changeFontColor(){    QColor color = QColorDialog::getColor(fontColor, this);    if (color.isValid()) {		fontColor = color;		updateColor();		listAllFonts();    }}void MainWindow::fontSizeChanged(const QString &text){	fontSize = text.toUInt();	if(fontSize > 0)		listAllFonts();}void MainWindow::createActions(){    fontColorAct = new QAction(QPixmap(32, 32), tr("Change Color..."), this);    connect(fontColorAct, SIGNAL(triggered()), this, SLOT(changeFontColor()));}void MainWindow::createMenus(){    fontMenu = menuBar()->addMenu(tr("&Font"));    fontMenu->addAction(fontColorAct);}void MainWindow::createToolBars(){    fontToolBar = addToolBar(tr("FontColor"));    fontToolBar->addAction(fontColorAct);	fontToolBar->addSeparator();    QStringList fontSizes;	fontSizes << "32" << "24" << "16" << "14" << "12" << "8" << "4" << "2";	sizeComboBox = new QComboBox();	sizeComboBox->setMinimumWidth(100);	sizeComboBox->setEditable(true);	sizeComboBox->addItems(fontSizes);	sizeComboBox->setValidator(new QIntValidator(1, 65535, this));	sizeComboBox->setCurrentIndex(2);    fontToolBar->addWidget(sizeComboBox);	connect(sizeComboBox, SIGNAL(editTextChanged(const QString&)), this, SLOT(fontSizeChanged(const QString&)));}void MainWindow::listAllFonts(){	QFont font;	QTextCharFormat textFormat;    QFontDatabase database;	QTextCursor cursor;	textFormat.setForeground(fontColor);	fontEdit->clear();    foreach (QString family, database.families()) {        const QStringList styles = database.styles(family);		foreach(QString style, styles) {			font = QFont(family, fontSize, database.weight(family, style), database.italic(family, style));			textFormat.setFont(font);			cursor = fontEdit->textCursor();	        cursor.insertText(QString("%1 %2").arg(family).arg(style), textFormat); 			cursor.insertBlock();		}    }}void MainWindow::updateColor(){    QPixmap pixmap(32, 32);    QPainter painter(&pixmap);    painter.fillRect(0, 0, 32, 32, fontColor);    QColor lighter = fontColor.light();    painter.setPen(lighter);    QPoint lightFrame[] = { QPoint(0, 31), QPoint(0, 0), QPoint(31, 0) };    painter.drawPolyline(lightFrame, 3);    painter.setPen(fontColor.dark());    QPoint darkFrame[] = { QPoint(1, 31), QPoint(31, 31), QPoint(31, 1) };    painter.drawPolyline(darkFrame, 3);    painter.end();    fontColorAct->setIcon(pixmap);}

⌨️ 快捷键说明

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