#include "frmmain.h" #include "ui_frmmain.h" #include "quihelper.h" #include "iconhelper.h" #include "frmconfig1.h" frmMain::frmMain(QWidget *parent) : QWidget(parent), ui(new Ui::frmMain) { ui->setupUi(this); this->initForm(); this->initStyle(); this->initNav(); } frmMain::~frmMain() { delete ui; } void frmMain::initForm() { ui->widgetLeft->setProperty("flag", "left"); this->setWindowTitle("系统设置"); } void frmMain::initStyle() { QFile file(":/qss/lightyellow.css"); if (file.open(QFile::ReadOnly)) { QString qss = QLatin1String(file.readAll()); file.close(); int labHeight = 40; int tabWidth = 70; int tabHeight = 25; int addWidth = 25; int addHeight = 20; int rbtnWidth = 25; int ckWidth = 20; int scrWidth = 25; int sliderHeight = 16; //追加样式 QStringList list; //左侧导航栏高度 list.append(QString("#widgetLeft>QAbstractButton{min-height:%1px;}").arg(65)); //全局导航栏 list.append(QString("*{font-size:18px;}")); list.append(QString("#widgetLeft>QAbstractButton{font-size:12px;}")); list.append(QString("#widgetGlobalNav>QAbstractButton{font-size:18px;}")); list.append(QString("#widgetGlobalBottom>QAbstractButton{font-size:35px;}")); list.append(QString("#widgetConfig{background:#FFF0BC;}")); list.append(QString("#widgetGlobalBottom{background:#FFF5D6;}")); list.append(QString("#lineGlobal{background:#F7AE13;border:none;}")); list.append(QString("#widgetGlobalNav>QAbstractButton,#widgetGlobalBottom>QAbstractButton{" "color:#F7AE13;padding:0px;border-radius:5px;border:3px solid #F7AE13;background:#FCDC97;}")); list.append(QString("#widgetGlobalNav>QAbstractButton:hover,#widgetGlobalNav>QAbstractButton:pressed{border-color:#FCDC97;background:#F7AE13;}")); list.append(QString("#widgetGlobalBottom>QAbstractButton:hover,#widgetGlobalBottom>QAbstractButton:pressed{color:#FFFFFF;border-color:#FCDC97;background:#F7AE13;}")); list.append(QString("#widgetGlobalNav>QAbstractButton{color:#54626F;padding-top:8px;}")); //下拉箭头复选框单选框等指示器大小 list.append(QString("QComboBox QAbstractItemView::item{min-height:%1px;}").arg(addHeight + 5)); list.append(QString("QComboBox::drop-down,QDateEdit::drop-down,QTimeEdit::drop-down,QDateTimeEdit::drop-down{width:%1px;}").arg(addWidth)); list.append(QString("QComboBox::down-arrow,QDateEdit[calendarPopup=\"true\"]::down-arrow,QTimeEdit[calendarPopup=\"true\"]::down-arrow," "QDateTimeEdit[calendarPopup=\"true\"]::down-arrow{width:%1px;height:%1px;right:2px;}").arg(addHeight)); list.append(QString("QRadioButton::indicator{width:%1px;height:%1px;}").arg(rbtnWidth)); list.append(QString("QCheckBox::indicator,QGroupBox::indicator,QTreeWidget::indicator,QListWidget::indicator{width:%1px;height:%1px;}").arg(ckWidth)); list.append(QString("QScrollBar:horizontal{min-height:%1px;max-height:%1px;border-radius:%2px;}QScrollBar::handle:horizontal{border-radius:%2px;}" "QScrollBar:vertical{min-width:%1px;max-width:%1px;border-radius:%2px;}QScrollBar::handle:vertical{border-radius:%2px;}").arg(scrWidth).arg(scrWidth / 2)); //滚动条 int sliderRadius = sliderHeight / 2; int handleWidth = (sliderHeight * 3) / 2 + (sliderHeight / 5); int handleRadius = handleWidth / 2; int handleOffset = handleRadius / 2; list.append(QString("QSlider::groove:horizontal,QSlider::add-page:horizontal,QSlider::sub-page:horizontal" "{height:%1px;border-radius:%2px;}").arg(sliderHeight).arg(sliderRadius)); list.append(QString("QSlider::handle:horizontal{width:%1px;margin-top:-%2px;margin-bottom:-%2px;border-radius:%3px;}") .arg(handleWidth).arg(handleOffset).arg(handleRadius)); handleWidth = handleWidth + 1; list.append(QString("QSlider::groove:vertical,QSlider::add-page:vertical,QSlider::sub-page:vertical" "{width:%1px;border-radius:%2px;}").arg(sliderHeight).arg(sliderRadius)); list.append(QString("QSlider::handle:vertical{height:%1px;margin-left:-%2px;margin-right:-%2px;border-radius:%3px;}") .arg(handleWidth).arg(handleOffset).arg(handleRadius)); qss += list.join(""); qApp->setPalette(QPalette("#FFF5D6")); qApp->setStyleSheet(qss); } } void frmMain::initNav() { //加载按钮功能 icons << 0xf085 << 0xf07c << 0xf0db; btns << ui->btnConfig1 << ui->btnConfig2 << ui->btnConfig3; int count = btns.count(); for (int i = 0; i < count; i++) { QToolButton *btn = (QToolButton *)btns.at(i); btn->setCheckable(true); btn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); connect(btn, SIGNAL(clicked(bool)), this, SLOT(btnClicked())); } IconHelper::StyleColor styleColor; styleColor.position = "left"; styleColor.iconSize = 25; styleColor.iconWidth = 35; styleColor.iconHeight = 35; styleColor.borderWidth = 5; styleColor.borderColor = "#F7AE13"; styleColor.setColor("#FCDC97", "#54626F", "#FFF0BC", "#54626F"); IconHelper::setStyle(ui->widgetLeft, btns, icons, styleColor); //加载界面 frmConfig1 *config1 = new frmConfig1; ui->stackedWidget->addWidget(config1); QWidget *config2 = new QWidget; ui->stackedWidget->addWidget(config2); QWidget *config3 = new QWidget; ui->stackedWidget->addWidget(config3); ui->btnConfig1->click(); } void frmMain::btnClicked() { QAbstractButton *b = (QAbstractButton *)sender(); ui->stackedWidget->setCurrentIndex(btns.indexOf(b)); int count = btns.count(); for (int i = 0; i < count; i++) { QAbstractButton *btn = btns.at(i); btn->setChecked(btn == b); } }