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

📄 textartdialog.cpp

📁 Qt4的一些例子
💻 CPP
字号:
#include <QtGui>#include "textartdialog.h"#include "textartinterface.h"TextArtDialog::TextArtDialog(const QString &text, QWidget *parent)    : QDialog(parent){    listWidget = new QListWidget;    listWidget->setViewMode(QListWidget::IconMode);    listWidget->setMovement(QListWidget::Static);    listWidget->setIconSize(QSize(260, 80));    QPushButton *okButton = new QPushButton(tr("OK"));    okButton->setDefault(true);    QPushButton *cancelButton = new QPushButton(tr("Cancel"));    connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));    connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));    QHBoxLayout *buttonLayout = new QHBoxLayout;    buttonLayout->addStretch();    buttonLayout->addWidget(okButton);    buttonLayout->addWidget(cancelButton);    QVBoxLayout *mainLayout = new QVBoxLayout;    mainLayout->addWidget(listWidget);    mainLayout->addLayout(buttonLayout);    setLayout(mainLayout);    loadPlugins();    populateListWidget(text);    setWindowTitle(tr("Text Art"));}QPixmap TextArtDialog::selectedPixmap() const{    if (!listWidget->currentItem())        return QPixmap();    return qvariant_cast<QPixmap>(                listWidget->currentItem()->data(Qt::DecorationRole));}void TextArtDialog::loadPlugins(){    QDir pluginDir(QApplication::applicationDirPath());#if defined(Q_OS_WIN)    if (pluginDir.dirName().toLower() == "debug"            || pluginDir.dirName().toLower() == "release")        pluginDir.cdUp();#elif defined(Q_OS_MAC)    if (pluginDir.dirName() == "MacOS") {        pluginDir.cdUp();        pluginDir.cdUp();        pluginDir.cdUp();    }#endif    if (!pluginDir.cd("plugins"))        return;    foreach (QString fileName, pluginDir.entryList(QDir::Files)) {        QPluginLoader loader(pluginDir.absoluteFilePath(fileName));        if (TextArtInterface *interface =                    qobject_cast<TextArtInterface *>(loader.instance()))            interfaces.append(interface);    }}void TextArtDialog::populateListWidget(const QString &text){    QSize iconSize = listWidget->iconSize();    QPen pen(QColor("darkseagreen"));    QLinearGradient gradient(0, 0, iconSize.width() / 2,                             iconSize.height() / 2);    gradient.setColorAt(0.0, QColor("darkolivegreen"));    gradient.setColorAt(0.8, QColor("darkgreen"));    gradient.setColorAt(1.0, QColor("lightgreen"));    QFont font("Helvetica", iconSize.height(), QFont::Bold);    foreach (TextArtInterface *interface, interfaces) {        foreach (QString effect, interface->effects()) {            QListWidgetItem *item = new QListWidgetItem(effect,                                                        listWidget);            QPixmap pixmap = interface->applyEffect(effect, text, font,                                                    iconSize, pen,                                                    gradient);            item->setData(Qt::DecorationRole, pixmap);        }    }    listWidget->setCurrentRow(0);}

⌨️ 快捷键说明

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