/** * Constructor of Options Dialog */ OptionsDialog::OptionsDialog(QWidget *parent) :QDialog(parent) { mainWindow = (MainWindow *)parent; createAppearancePage(); createGameplayPage(); buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel,Qt::Horizontal,this); listWidget = new QListWidget(this); listWidget->addItem("Appearance"); listWidget->addItem("Gameplay"); stackedLayout = new QStackedLayout(); stackedLayout->addWidget(appearancePage); stackedLayout->addWidget(gameplayPage); connect(listWidget, SIGNAL(currentRowChanged(int)), stackedLayout, SLOT(setCurrentIndex(int))); QGridLayout *mainLayout = new QGridLayout(this); mainLayout->setColumnStretch(0,1); mainLayout->setColumnStretch(1,3); mainLayout->addWidget(listWidget,0,0); mainLayout->addLayout(stackedLayout,0,1); mainLayout->addWidget(buttonBox,1,0,1,2); setLayout(mainLayout); connect(buttonBox, SIGNAL(rejected()),this,SLOT(reject()) ); connect(buttonBox, SIGNAL(accepted()), this, SLOT(saveChanges())); setWindowTitle("Othello FPG - Options"); listWidget->setCurrentRow(0); }
PreferenceDialog::PreferenceDialog(QWidget *parent) : QDialog(parent) { // 创建右边的四个页面 createAppearancePage(); createWebBrowserPage(); createMailAndNewsPage(); createAdvancedPage(); // 创建下面的 button box buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); // 创建左边的导航的list listWidget = new QListWidget; listWidget->setIconSize(QSize(20, 20)); // 相对路径从运行程序的当前路径算起 // QListWidgetItem *item = new QListWidgetItem(QIcon("../preferences/Resources/start1.png"), tr("Appearance")); QListWidgetItem *item = new QListWidgetItem(QIcon("../LearnOptionDialog/Resources/stop.png"), tr("Appearance")); item->setSizeHint(QSize(-1, 30)); // item->setIC(); listWidget->addItem(item); // listWidget->addItem(tr("Appearance")); listWidget->addItem(tr("Web Browser")); listWidget->addItem(tr("Mail & News")); listWidget->addItem(tr("Advanced")); // 把4个页面放入 QStackedLayout stackedLayout = new QStackedLayout; stackedLayout->addWidget(appearancePage); stackedLayout->addWidget(webBrowserPage); stackedLayout->addWidget(mailAndNewsPage); stackedLayout->addWidget(advancedPage); connect(listWidget, SIGNAL(currentRowChanged(int)), stackedLayout, SLOT(setCurrentIndex(int))); // 布局 QGridLayout *mainLayout = new QGridLayout; mainLayout->setColumnStretch(0, 1); mainLayout->setColumnStretch(1, 3); mainLayout->addWidget(listWidget, 0, 0); mainLayout->addLayout(stackedLayout, 0, 1); mainLayout->addWidget(buttonBox, 1, 0, 1, 2); setLayout(mainLayout); connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); setWindowTitle(tr("Preferences")); listWidget->setCurrentRow(0); }
PreferenceDialog::PreferenceDialog(QWidget *parent) : QWidget(parent), ui(new Ui::PreferenceDialog) { ui->setupUi(this); createAppearancePage(); createWebBrowserPage(); createMailAndNewsPage(); createAdvancedPage(); buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); //列表框 listWidget = new QListWidget; listWidget->addItem(tr("Appearance")); listWidget->addItem(tr("Web Browser")); listWidget->addItem(tr("Mail & News")); listWidget->addItem(tr("Advanced")); //分页--通过设置当前的页号,来调用appearancePage/webBrowserPage/mailAndNewsPage/advancedPage stackedLayout = new QStackedLayout; stackedLayout->addWidget(appearancePage); stackedLayout->addWidget(webBrowserPage); stackedLayout->addWidget(mailAndNewsPage); stackedLayout->addWidget(advancedPage); //页号的改变,引发页面的转换 connect(listWidget, SIGNAL(currentRowChanged(int)), stackedLayout, SLOT(setCurrentIndex(int))); //Grid的页面布局---这里通常用设计师比较好,而非手写 QGridLayout *mainLayout = new QGridLayout; mainLayout->setColumnStretch(0, 1); mainLayout->setColumnStretch(1, 3); mainLayout->addWidget(listWidget, 0, 0); mainLayout->addLayout(stackedLayout, 0, 1); mainLayout->addWidget(buttonBox, 1, 0, 1, 2); setLayout(mainLayout); connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); setWindowTitle(tr("Preferences")); listWidget->setCurrentRow(0); }
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); }
PreferenceDialog::PreferenceDialog(QWidget *parent) : QDialog(parent) { createAppearancePage(); createWebBrowserPage(); createMailAndNewsPage(); createAdvancedPage(); buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); 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))); QGridLayout *mainLayout = new QGridLayout; mainLayout->setColumnStretch(0, 1); mainLayout->setColumnStretch(1, 3); mainLayout->addWidget(listWidget, 0, 0); mainLayout->addLayout(stackedLayout, 0, 1); mainLayout->addWidget(buttonBox, 1, 0, 1, 2); setLayout(mainLayout); connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); setWindowTitle(tr("Preferences")); listWidget->setCurrentRow(0); }