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

📄 mainwindow.cpp

📁 使用Qt4编写的星际译王(stardict)
💻 CPP
字号:
#include "mainwindow.h"#include <stdio.h>#include <QApplication>#include <QCloseEvent>#include <QDockWidget>#include <QFileDialog>#include <QListWidgetItem>#include <QMenu>#include <QMessageBox>#include <QSettings>#include "dictcore.h"#include "popupwindow.h"#include "settingsdialog.h"MainWindow::MainWindow(QWidget *parent)    : QMainWindow(parent){    setupUi(this);    m_dict = new DictCore(this);    popup = new PopupWindow(m_dict, this);    menu_View->addAction(wordsListDock->toggleViewAction());    createTrayIcon();    createConnections();    loadSettings();}MainWindow::~MainWindow(){    saveSettings();}void MainWindow::createTrayIcon(){    trayIcon = new QSystemTrayIcon(QIcon(":/icons/icon.png"), this);    trayIcon->show();    trayMenu = new QMenu(tr("QStarDict"), this);    trayMenu->addAction(actionScan);    trayMenu->addAction(actionQuit);    trayIcon->setContextMenu(trayMenu);}void MainWindow::createConnections(){    connect(actionAbout, SIGNAL(activated()), SLOT(aboutAction()));    connect(actionAboutQt, SIGNAL(activated()), qApp, SLOT(aboutQt()));    connect(actionScan, SIGNAL(toggled(bool)), popup, SLOT(setScan(bool)));    connect(popup, SIGNAL(scanChanged(bool)), actionScan, SLOT(setChecked(bool)));    actionScan->setChecked(popup->isScan());    connect(actionSettings, SIGNAL(activated()), SLOT(settingsAction()));    connect(actionQuit, SIGNAL(activated()), qApp, SLOT(quit()));            connect(queryButton, SIGNAL(clicked()), SLOT(queryButtonClicked()));    connect(wordsList, SIGNAL(itemActivated(QListWidgetItem*)),            SLOT(wordsListItemActivated(QListWidgetItem*)));    connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),            SLOT(trayIconActivated(QSystemTrayIcon::ActivationReason)));}void MainWindow::loadSettings(){    QSettings config;    restoreGeometry(config.value("MainWindow/geometry", QByteArray()).toByteArray());    restoreState(config.value("MainWindow/state", QByteArray()).toByteArray());    setVisible(config.value("MainWindow/visible", true).toBool());    wordsListDock->setFloating(config.value("MainWindow/wordsListDock/floating", wordsListDock->isFloating()).toBool());    wordsListDock->setGeometry(config.value("MainWindow/wordsListDock/geometry", wordsListDock->geometry()).toRect());    m_dict->setDicts(config.value("DictCore/orderedDicts", m_dict->avialableDicts()).toStringList());}void MainWindow::saveSettings(){    QSettings config;    config.setValue("MainWindow/geometry", saveGeometry());    config.setValue("MainWindow/state", saveState());    config.setValue("MainWindow/visible", isVisible());    config.setValue("MainWindow/wordsListDock/floating", wordsListDock->isFloating());    config.setValue("MainWindow/wordsListDock/geometry", wordsListDock->geometry());    config.setValue("DictCore/orderedDicts", m_dict->orderedDicts());    config.setValue("DictCore/disabledDicts", m_dict->disabledDicts());}void MainWindow::aboutAction(){    QMessageBox::about(this,            tr("About QStarDict"),            tr("The Qt version of StarDict\n"               "Copyright (C) 2007, Alex Rodin"));}void MainWindow::settingsAction(){    SettingsDialog *dialog = new SettingsDialog(this);    dialog->show();}void MainWindow::queryButtonClicked(){    if (searchBox->text().isEmpty())        return;    wordsList->clear();    wordsList->addItems(m_dict->find(searchBox->text()));    translationView->setHtml(m_dict->translate(searchBox->text()));}void MainWindow::wordsListItemActivated(QListWidgetItem *item){    searchBox->setText(item->text());    translationView->setText(m_dict->translate(item->text()));}void MainWindow::trayIconActivated(QSystemTrayIcon::ActivationReason reason){    if (reason == QSystemTrayIcon::Trigger)        setVisible(! isVisible());}

⌨️ 快捷键说明

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