📄 preferencedialog.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 + -