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

📄 preferencedialog.cpp

📁 Qt4的一些例子
💻 CPP
字号:
#include <QtGui>#include "preferencedialog.h"PreferenceDialog::PreferenceDialog(QWidget *parent)    : QDialog(parent){    createAppearancePage();    createWebBrowserPage();    createMailAndNewsPage();    createAdvancedPage();    okButton = new QPushButton(tr("OK"));    cancelButton = new QPushButton(tr("Cancel"));    okButton->setDefault(true);    listWidget = new QListWidget;    listWidget->addItem(tr("Appearance"));    listWidget->addItem(tr("Web Browser"));    listWidget->addItem(tr("Mail & News"));    listWidget->addItem(tr("Advanced"));    stackedLayout = new QStackedLayout;    stackedLayout->addWidget(appearancePage);    stackedLayout->addWidget(webBrowserPage);    stackedLayout->addWidget(mailAndNewsPage);    stackedLayout->addWidget(advancedPage);    connect(listWidget, SIGNAL(currentRowChanged(int)),            stackedLayout, SLOT(setCurrentIndex(int)));    QHBoxLayout *buttonLayout = new QHBoxLayout;    buttonLayout->addStretch();    buttonLayout->addWidget(okButton);    buttonLayout->addWidget(cancelButton);    QGridLayout *mainLayout = new QGridLayout;    mainLayout->setColumnStretch(0, 1);    mainLayout->setColumnStretch(1, 3);    mainLayout->addWidget(listWidget, 0, 0);    mainLayout->addLayout(stackedLayout, 0, 1);    mainLayout->addLayout(buttonLayout, 1, 0, 1, 2);    setLayout(mainLayout);    connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));    connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));    setWindowTitle(tr("Preferences"));    listWidget->setCurrentRow(0);}void PreferenceDialog::createAppearancePage(){    appearancePage = new QWidget;    openGroupBox = new QGroupBox(tr("Open at startup"));    webBrowserCheckBox = new QCheckBox(tr("Web browser"));    mailEditorCheckBox = new QCheckBox(tr("Mail editor"));    newsgroupCheckBox = new QCheckBox(tr("Newsgroups"));    toolbarsGroupBox = new QGroupBox(tr("Show toolbars as"));    picturesAndTextRadioButton = new QRadioButton(tr("Pictures and "                                                     "text"));    picturesOnlyRadioButton = new QRadioButton(tr("Pictures only"));    textOnlyRadioButton = new QRadioButton(tr("Text only"));    tooltipsCheckBox = new QCheckBox(tr("Show tooltips"));    webSiteIconsCheckBox = new QCheckBox(tr("Show web site icons"));    resizeImagesCheckBox = new QCheckBox(tr("Resize large images to "                                            "fit in the window"));    QVBoxLayout *openLayout = new QVBoxLayout;    openLayout->addWidget(webBrowserCheckBox);    openLayout->addWidget(mailEditorCheckBox);    openLayout->addWidget(newsgroupCheckBox);    openGroupBox->setLayout(openLayout);    QVBoxLayout *toolbarsLayout = new QVBoxLayout;    toolbarsLayout->addWidget(picturesAndTextRadioButton);    toolbarsLayout->addWidget(picturesOnlyRadioButton);    toolbarsLayout->addWidget(textOnlyRadioButton);    toolbarsGroupBox->setLayout(toolbarsLayout);    QVBoxLayout *pageLayout = new QVBoxLayout;    pageLayout->setMargin(0);    pageLayout->addWidget(openGroupBox);    pageLayout->addWidget(toolbarsGroupBox);    pageLayout->addWidget(tooltipsCheckBox);    pageLayout->addWidget(webSiteIconsCheckBox);    pageLayout->addWidget(resizeImagesCheckBox);    pageLayout->addStretch();    appearancePage->setLayout(pageLayout);    webBrowserCheckBox->setChecked(true);    mailEditorCheckBox->setChecked(true);    picturesAndTextRadioButton->setChecked(true);    tooltipsCheckBox->setChecked(true);    webSiteIconsCheckBox->setChecked(true);}void PreferenceDialog::createWebBrowserPage(){    webBrowserPage = new QWidget;    displayGroupBox = new QGroupBox(tr("Display on startup"));    blankRadioButton = new QRadioButton(tr("Blank page"));    homeRadioButton = new QRadioButton(tr("Blank page"));    lastRadioButton = new QRadioButton(tr("Last page visited"));    homeGroupBox = new QGroupBox(tr("Home Page"));    locationLabel = new QLabel(tr("Location:"));    locationLineEdit = new QLineEdit;    webButtonsGroupBox = new QGroupBox(tr("Select the buttons you want "                                          "in the toolbar"));    bookmarksCheckBox = new QCheckBox(tr("Bookmarks"));    goCheckBox = new QCheckBox(tr("Go"));    homeCheckBox = new QCheckBox(tr("Home"));    searchCheckBox = new QCheckBox(tr("Search"));    printCheckBox = new QCheckBox(tr("Print"));    QVBoxLayout *displayLayout = new QVBoxLayout;    displayLayout->addWidget(blankRadioButton);    displayLayout->addWidget(homeRadioButton);    displayLayout->addWidget(lastRadioButton);    displayGroupBox->setLayout(displayLayout);    QHBoxLayout *homeLayout = new QHBoxLayout;    homeLayout->addWidget(locationLabel);    homeLayout->addWidget(locationLineEdit);    homeGroupBox->setLayout(homeLayout);    QGridLayout *webButtonsLayout = new QGridLayout;    webButtonsLayout->addWidget(bookmarksCheckBox, 0, 0);    webButtonsLayout->addWidget(goCheckBox, 1, 0);    webButtonsLayout->addWidget(homeCheckBox, 2, 0);    webButtonsLayout->addWidget(searchCheckBox, 0, 1);    webButtonsLayout->addWidget(printCheckBox, 1, 1);    webButtonsGroupBox->setLayout(webButtonsLayout);    QVBoxLayout *pageLayout = new QVBoxLayout;    pageLayout->setMargin(0);    pageLayout->addWidget(displayGroupBox);    pageLayout->addWidget(homeGroupBox);    pageLayout->addWidget(webButtonsGroupBox);    pageLayout->addStretch();    webBrowserPage->setLayout(pageLayout);    homeRadioButton->setChecked(true);    locationLineEdit->setText("http://www.trolltech.com/");    bookmarksCheckBox->setChecked(true);    homeCheckBox->setChecked(true);    searchCheckBox->setChecked(true);    printCheckBox->setChecked(true);}void PreferenceDialog::createMailAndNewsPage(){    mailAndNewsPage = new QWidget;    generalGroupBox = new QGroupBox(tr("General settings"));    confirmCheckBox = new QCheckBox(tr("Warn when moving folders to "                                       "the Trash"));    rememberCheckBox = new QCheckBox(tr("Remember the last selected "                                        "message"));    mailButtonsGroupBox = new QGroupBox(tr("Select the buttons you "                                           "want in the toolbar"));    fileCheckBox = new QCheckBox(tr("File"));    nextCheckBox = new QCheckBox(tr("Next"));    stopCheckBox = new QCheckBox(tr("Stop"));    junkCheckBox = new QCheckBox(tr("Junk"));    QVBoxLayout *generalLayout = new QVBoxLayout;    generalLayout->addWidget(confirmCheckBox);    generalLayout->addWidget(rememberCheckBox);    generalGroupBox->setLayout(generalLayout);    QGridLayout *mailButtonsLayout = new QGridLayout;    mailButtonsLayout->addWidget(fileCheckBox, 0, 0);    mailButtonsLayout->addWidget(nextCheckBox, 1, 0);    mailButtonsLayout->addWidget(stopCheckBox, 0, 1);    mailButtonsLayout->addWidget(junkCheckBox, 1, 1);    mailButtonsGroupBox->setLayout(mailButtonsLayout);    QVBoxLayout *pageLayout = new QVBoxLayout;    pageLayout->setMargin(0);    pageLayout->addWidget(generalGroupBox);    pageLayout->addWidget(mailButtonsGroupBox);    pageLayout->addStretch();    mailAndNewsPage->setLayout(pageLayout);    confirmCheckBox->setChecked(true);    rememberCheckBox->setChecked(true);    nextCheckBox->setChecked(true);    junkCheckBox->setChecked(true);}void PreferenceDialog::createAdvancedPage(){    advancedPage = new QWidget;    featuresGroupBox = new QGroupBox(tr("Features that help "                                        "interpret web pages"));    javaCheckBox = new QCheckBox(tr("Enable Java"));    ftpCheckBox = new QCheckBox(tr("Use this email address for "                                   "anonymous FTP:"));    ftpLineEdit = new QLineEdit;    connect(ftpCheckBox, SIGNAL(toggled(bool)),            ftpLineEdit, SLOT(setEnabled(bool)));    QGridLayout *featuresLayout = new QGridLayout;    featuresLayout->addWidget(javaCheckBox, 0, 0, 1, 2);    featuresLayout->addWidget(ftpCheckBox, 1, 0, 1, 2);    featuresLayout->addWidget(ftpLineEdit, 2, 1);    featuresGroupBox->setLayout(featuresLayout);    QVBoxLayout *pageLayout = new QVBoxLayout;    pageLayout->setMargin(0);    pageLayout->addWidget(featuresGroupBox);    pageLayout->addStretch();    advancedPage->setLayout(pageLayout);    javaCheckBox->setChecked(true);    ftpLineEdit->setEnabled(false);}

⌨️ 快捷键说明

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