From f656098ad2a58b0b53c3c40b647ee0a1293ec85d Mon Sep 17 00:00:00 2001 From: HwangKC Date: Thu, 17 Oct 2024 20:25:43 +0800 Subject: [PATCH] a --- applications/emsConfigurer/emsConfigurer.pro | 6 +- .../formserialportsettingdialog.cpp | 155 +++++ .../formserialportsettingdialog.h | 26 + .../formserialportsettingdialog.ui | 549 +++++++++++++++ applications/emsConfigurer/globalparameters.h | 60 +- .../images/icons8-refresh-64.png | Bin 2515 -> 2325 bytes applications/emsConfigurer/main.cpp | 2 +- applications/emsConfigurer/maindialog.cpp | 8 +- applications/emsConfigurer/maindialog.ui | 3 + applications/emsConfigurer/mainwindow.cpp | 3 +- applications/emsConfigurer/mainwindow.ui | 11 +- .../qdarkstyle/bingle/binglestyle.qrc | 1 + .../emsConfigurer/qdarkstyle/bingle/flat.qss | 628 ++++++++++++++++++ 13 files changed, 1442 insertions(+), 10 deletions(-) create mode 100644 applications/emsConfigurer/formserialportsettingdialog.cpp create mode 100644 applications/emsConfigurer/formserialportsettingdialog.h create mode 100644 applications/emsConfigurer/formserialportsettingdialog.ui create mode 100644 applications/emsConfigurer/qdarkstyle/bingle/flat.qss diff --git a/applications/emsConfigurer/emsConfigurer.pro b/applications/emsConfigurer/emsConfigurer.pro index 13abf6b..1b92ed0 100644 --- a/applications/emsConfigurer/emsConfigurer.pro +++ b/applications/emsConfigurer/emsConfigurer.pro @@ -76,6 +76,7 @@ win32:LIBS += Ws2_32.lib SOURCES += \ datafetcher.cpp \ devicepropertypage.cpp \ + formserialportsettingdialog.cpp \ globalparameters.cpp \ kutilities.cpp \ main.cpp \ @@ -88,6 +89,7 @@ SOURCES += \ HEADERS += \ datafetcher.h \ devicepropertypage.h \ + formserialportsettingdialog.h \ globalparameters.h \ kutilities.h \ maindialog.h \ @@ -98,6 +100,7 @@ HEADERS += \ ziputils.h FORMS += \ + formserialportsettingdialog.ui \ maindialog.ui \ mainwindow.ui @@ -107,7 +110,8 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target RESOURCES += \ - emscfgres.qrc + emscfgres.qrc \ + qdarkstyle/bingle/img.qrc RESOURCES += qdarkstyle/dark/darkstyle.qrc RESOURCES += qdarkstyle/light/lightstyle.qrc diff --git a/applications/emsConfigurer/formserialportsettingdialog.cpp b/applications/emsConfigurer/formserialportsettingdialog.cpp new file mode 100644 index 0000000..79c7086 --- /dev/null +++ b/applications/emsConfigurer/formserialportsettingdialog.cpp @@ -0,0 +1,155 @@ +#include "formserialportsettingdialog.h" +#include "ui_formserialportsettingdialog.h" + +#include +#include + +#include "globalparameters.h" + +FormSerialPortSettingDialog::FormSerialPortSettingDialog(QWidget *parent) + : QDialog(parent) + , ui(new Ui::FormSerialPortSettingDialog) +{ + ui->setupUi(this); + InitializeUi(); +} + +FormSerialPortSettingDialog::~FormSerialPortSettingDialog() +{ + delete ui; +} + +void FormSerialPortSettingDialog::InitializeUi() +{ + ui->delay_timeout->setText("1000"); + ui->loop_time->setText("5000"); + ui->slave_id->setText("1"); + + //设置奇偶校验 + ui->cb_parity->setView(new QListView(this)); + + QStandardItemModel* model_parity = new QStandardItemModel(this); + + vecParityItemData vparity; + vparity.push_back(std::make_pair(EMS_PARITY_NONE,tr("None"))); + vparity.push_back(std::make_pair(EMS_PARITY_ODD,tr("Odd"))); + vparity.push_back(std::make_pair(EMS_PARITY_EVEN,tr("Even"))); + + for (auto it = vparity.begin(); it != vparity.end(); it++) + { + int id = it->first; + QString name = it->second; + + QStandardItem* item = new QStandardItem(name); + //QVariant var = QVariant::fromValue(data); + item->setData(id); + model_parity->appendRow(item); + } + + ui->cb_parity->setModel(model_parity); + + //设置数据位 + ui->cb_data->setView(new QListView(this)); + QStandardItemModel* model_databits = new QStandardItemModel(this); + vecDataBitsItemData vdatabits; + vdatabits.push_back(std::make_pair(EMS_DATA_8_BITS,tr("8 Data bits"))); + vdatabits.push_back(std::make_pair(EMS_DATA_7_BITS,tr("7 Data bits"))); + + for (auto it = vdatabits.begin(); it != vdatabits.end(); it++) + { + int id = it->first; + QString name = it->second; + + QStandardItem* item = new QStandardItem(name); + item->setData(id); + model_databits->appendRow(item); + } + + ui->cb_data->setModel(model_databits); + + //设置数据位 + ui->cb_stop->setView(new QListView(this)); + QStandardItemModel* model_stopbits = new QStandardItemModel(this); + vecDataBitsItemData vstopbits; + vstopbits.push_back(std::make_pair(EMS_1_STOP_BITS,tr("1 Stop bit"))); + vstopbits.push_back(std::make_pair(EMS_2_STOP_BITS,tr("2 Stop bits"))); + + for (auto it = vstopbits.begin(); it != vstopbits.end(); it++) + { + int id = it->first; + QString name = it->second; + + QStandardItem* item = new QStandardItem(name); + item->setData(id); + model_stopbits->appendRow(item); + } + + ui->cb_stop->setModel(model_stopbits); + + //设置串口模式 + ui->cb_mode->setView(new QListView(this)); + QStandardItemModel* model_mode = new QStandardItemModel(this); + vecDataBitsItemData vportmode; + vportmode.push_back(std::make_pair(EMS_RTU_MODE,tr("RTU"))); + vportmode.push_back(std::make_pair(EMS_ASCII_MODE,tr("ASCII"))); + + for (auto it = vportmode.begin(); it != vportmode.end(); it++) + { + int id = it->first; + QString name = it->second; + + QStandardItem* item = new QStandardItem(name); + item->setData(id); + model_mode->appendRow(item); + } + + ui->cb_mode->setModel(model_mode); + + //设置串口模式 + ui->cb_baund->setView(new QListView(this)); + QStandardItemModel* model_baund = new QStandardItemModel(this); + vecBaundItemData vbaund; + vbaund.push_back(std::make_pair(EMS_BAUND_2400,tr("2400"))); + vbaund.push_back(std::make_pair(EMS_BAUND_2400,tr("4800"))); + vbaund.push_back(std::make_pair(EMS_BAUND_2400,tr("9600"))); + vbaund.push_back(std::make_pair(EMS_BAUND_2400,tr("19200"))); + vbaund.push_back(std::make_pair(EMS_BAUND_2400,tr("38400"))); + vbaund.push_back(std::make_pair(EMS_BAUND_2400,tr("57600"))); + vbaund.push_back(std::make_pair(EMS_BAUND_2400,tr("115200"))); + vbaund.push_back(std::make_pair(EMS_BAUND_2400,tr("128000"))); + vbaund.push_back(std::make_pair(EMS_BAUND_2400,tr("153600"))); + vbaund.push_back(std::make_pair(EMS_BAUND_2400,tr("230400"))); + vbaund.push_back(std::make_pair(EMS_BAUND_2400,tr("460800"))); + vbaund.push_back(std::make_pair(EMS_BAUND_2400,tr("921600"))); + + for (auto it = vbaund.begin(); it != vbaund.end(); it++) + { + int id = it->first; + QString name = it->second; + + QStandardItem* item = new QStandardItem(name); + item->setData(id); + model_baund->appendRow(item); + } + + ui->cb_baund->setModel(model_baund); + ui->cb_baund->setCurrentIndex(2); + + //设置串口类型 + ui->cb_type->setView(new QListView(this)); + QStandardItemModel* model_type = new QStandardItemModel(this); + vecPortTypeItemData vporttype; + vporttype.push_back(std::make_pair(EMS_SERIALPORT_TYPE,tr("Serial Port"))); + + for (auto it = vporttype.begin(); it != vporttype.end(); it++) + { + int id = it->first; + QString name = it->second; + + QStandardItem* item = new QStandardItem(name); + item->setData(id); + model_type->appendRow(item); + } + + ui->cb_type->setModel(model_type); +} diff --git a/applications/emsConfigurer/formserialportsettingdialog.h b/applications/emsConfigurer/formserialportsettingdialog.h new file mode 100644 index 0000000..ceec42d --- /dev/null +++ b/applications/emsConfigurer/formserialportsettingdialog.h @@ -0,0 +1,26 @@ +#ifndef FORMSERIALPORTSETTINGDIALOG_H +#define FORMSERIALPORTSETTINGDIALOG_H + +#include + +namespace Ui +{ +class FormSerialPortSettingDialog; +} + +class FormSerialPortSettingDialog : public QDialog +{ + Q_OBJECT + +public: + explicit FormSerialPortSettingDialog(QWidget *parent = nullptr); + ~FormSerialPortSettingDialog(); + +private: + Ui::FormSerialPortSettingDialog *ui; + +protected: + void InitializeUi(); +}; + +#endif // FORMSERIALPORTSETTINGDIALOG_H diff --git a/applications/emsConfigurer/formserialportsettingdialog.ui b/applications/emsConfigurer/formserialportsettingdialog.ui new file mode 100644 index 0000000..fba4237 --- /dev/null +++ b/applications/emsConfigurer/formserialportsettingdialog.ui @@ -0,0 +1,549 @@ + + + FormSerialPortSettingDialog + + + + 0 + 0 + 706 + 526 + + + + 设备串口设置 + + + + :/images/icon.png:/images/icon.png + + + + + 320 + 450 + 341 + 32 + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + 440 + 36 + 201 + 30 + + + + + + + 350 + 40 + 69 + 19 + + + + 设备名称 + + + device_name + + + + + + 50 + 40 + 69 + 19 + + + + 设备序号 + + + device_id + + + + + + 50 + 120 + 69 + 19 + + + + 串口类型 + + + cb_type + + + + + + 130 + 120 + 181 + 25 + + + + + + + 130 + 36 + 181 + 30 + + + + + + + 440 + 120 + 201 + 30 + + + + + + + 360 + 120 + 69 + 19 + + + + 从机地址 + + + slave_id + + + + + + 50 + 160 + 69 + 19 + + + + 串口号 + + + port + + + + + + 130 + 160 + 181 + 30 + + + + + + + 360 + 160 + 69 + 19 + + + + 波特率 + + + cb_baund + + + + + + 440 + 160 + 201 + 25 + + + + + + + 50 + 200 + 69 + 19 + + + + 数据位 + + + cb_data + + + + + + 130 + 200 + 181 + 25 + + + + + + + 360 + 200 + 69 + 19 + + + + 校验位 + + + cb_parity + + + + + + 440 + 200 + 201 + 25 + + + + + + + 50 + 240 + 69 + 19 + + + + 停止位 + + + cb_stop + + + + + + 130 + 240 + 181 + 25 + + + + + + + 440 + 240 + 201 + 25 + + + + + + + 360 + 240 + 69 + 19 + + + + 模式 + + + cb_mode + + + + + + 50 + 280 + 91 + 19 + + + + 响应超时 + + + delay_timeout + + + + + + 130 + 280 + 113 + 30 + + + + + + + 360 + 280 + 91 + 19 + + + + 轮询间隔 + + + loop_time + + + + + + 440 + 280 + 113 + 30 + + + + + + + 560 + 283 + 41 + 19 + + + + + 12 + + + + ms + + + + + + 250 + 283 + 41 + 19 + + + + + 12 + + + + ms + + + + + + 50 + 320 + 98 + 23 + + + + DSR + + + + + + 170 + 320 + 98 + 23 + + + + CTS + + + + + + 310 + 320 + 98 + 23 + + + + DTR + + + true + + + + + + 50 + 360 + 69 + 19 + + + + 插件绑定 + + + + + + 50 + 390 + 581 + 30 + + + + + + + 640 + 391 + 41 + 25 + + + + ... + + + QToolButton::DelayedPopup + + + + + + 50 + 80 + 69 + 19 + + + + 制造商 + + + device_manufature + + + + + + 130 + 80 + 511 + 30 + + + + + + device_id + device_name + device_manufature + cb_type + slave_id + port + cb_baund + cb_data + cb_parity + cb_stop + cb_mode + delay_timeout + loop_time + checkBox_DTS + checkBox_CTS + checkBox_DTR + toolButton + so_file + + + + + + + buttonBox + accepted() + FormSerialPortSettingDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + FormSerialPortSettingDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/applications/emsConfigurer/globalparameters.h b/applications/emsConfigurer/globalparameters.h index b28dd6f..571c223 100644 --- a/applications/emsConfigurer/globalparameters.h +++ b/applications/emsConfigurer/globalparameters.h @@ -17,7 +17,7 @@ typedef enum _tagSignalStatus STATUS_WARN = 1, STATUS_ERROR = 2, STATUS_INFO = 3, -}SignalStatus; +} SignalStatus; typedef struct _ModelItem { @@ -26,10 +26,66 @@ typedef struct _ModelItem std::string value; std::string unit; std::string sampleTime; -}ModelItem; +} ModelItem; typedef QList TableData; +//用来处理串口各种参数的ComboBox的Model + +//设置奇偶检验 +#define EMS_PARITY_NONE 0 +#define EMS_PARITY_ODD 1 +#define EMS_PARITY_EVEN 2 + +typedef std::pair ParityItemData; +typedef std::vector vecParityItemData; + +//设置数据位 +#define EMS_DATA_8_BITS 8 +#define EMS_DATA_7_BITS 7 + +typedef std::pair DataBitsItemData; +typedef std::vector vecDataBitsItemData; + +//设置停止位 +#define EMS_1_STOP_BITS 1 +#define EMS_2_STOP_BITS 2 + +typedef std::pair StopBitsItemData; +typedef std::vector vecStopBitsItemData; + +//设置串口模式 +#define EMS_RTU_MODE 1 +#define EMS_ASCII_MODE 2 + +typedef std::pair PortModeItemData; +typedef std::vector vecPortModeItemData; + +//设置串口类型 +#define EMS_SERIALPORT_TYPE 1 +#define EMS_CANPORT_TYPE 2 + +typedef std::pair PortTypeItemData; +typedef std::vector vecPortTypeItemData; + + +//设置串口类型 +#define EMS_BAUND_2400 2400 +#define EMS_BAUND_4800 4800 +#define EMS_BAUND_9600 9600 +#define EMS_BAUND_19200 19200 +#define EMS_BAUND_38400 38400 +#define EMS_BAUND_57600 57600 +#define EMS_BAUND_115200 115200 +#define EMS_BAUND_128000 128000 +#define EMS_BAUND_153600 153600 +#define EMS_BAUND_230400 230400 +#define EMS_BAUND_460800 460800 +#define EMS_BAUND_921600 921600 + +typedef std::pair BaundItemData; +typedef std::vector vecBaundItemData; + class CWaitorCursor { public: diff --git a/applications/emsConfigurer/images/icons8-refresh-64.png b/applications/emsConfigurer/images/icons8-refresh-64.png index 3f668bf799db26da39379f24810736ec97ea3d86..b7822a2bd82dfeea0b1ba0fe872bb186734d9fc3 100644 GIT binary patch delta 2293 zcmVIDZJoNkl4m#;L7Uv<|oBe$^GZEO%Li zT^3kTSw&dc>=s9kOVC6z^cd(lsh?5z);bH_KnUT{j zS!6h8@N;W(x$1et)re7M;9s(~TsRxJ>XeC6>Tirs<28?Y?DWV4v*vNeT~Ac+Wakxk zJ+W??Ty)O__e@&dGubL?O8o(^IgIhvbIw~2-g+K*>wj6G)iR*B>nI8s=$*k*Z#_-k z^USqQduB08>Pvhw81J9KHUA9o%ixONTs)q2P5%sheABt^*H-hIpMh~wUm;H?eezsd zC#P{bXci-$TU|ZBlBaQ2J{RQad@jzVzGBK8RFhH}_PpyV(ik3?#<{>Wm@uX)K{=B*do8hQI+dyvctZQ7en@-@iSa2AH=SGB z-uOaHoX%8@7BpJE)=bAYL5rXHSPP<0>UZ#pMt@7AdCbXZdz4D6Wq>w`3)*DRYFYfK zJvo^rqAfXzO9}-8yOVpm26t@|o3+V&nw-P~A#p6)L|;$Fos`6aWHG*E4)r9DG%FFq z%tV->;rioWD&nIxL&H^bUjmudV}b!u+u5+GGYvh)PAHE7L!YHp{-bnOO6Oei&hqdEG4tYa zvvv-8H7R-(WW;l@I}5PO7zf5_ly|{fZt?Ew%x8#Wv&B~;&I=o`d;2(diyGknbbp+C zqR*0htB5g7W23cmFvQ_&iT%{tSScr#2f4A3tHkMPUg5EL?>{AHqwu{sjY;Bs%Te~1 z9)k{4Av{?zOwNgg93>a6or7U2qeX1Ck~`MMN(*ARyf6lSB4x)~5W}TTb1M0Eff8~Q z3>D|Qk8ppt3EI;x6W^E@O~FtRGk-s(^TnMXgU^B(E(mW|G+)X2g|T>dm~def-ix9+ zzj!KiL9N0oVmce-qG;|5|Dy${IL!ThhoM~^;y;#&4Kvq>Zd;I!SRBpe_QtlTb9MR$ zYnNq_+*=+6E2lDAvXbRdG>X_IQOL!4T`g60wa}hwYuPJ2OQ#aBEE<+YcYnSGmPPYG z_!dVzeai}u@Ggz&{8QB~D$;SryKMRS}RE zNl-_=RiVi9BWTT!;9*{L+m*&D-U?&gTVb#|lp?ExB}rNxN~tCO=A%Vu4>9@Gp?tYI z3<|>7+{N657XN8FxN$289x86JOxUpnt*;K3t=KH42&w zLnwVagn$ACLxsd~p@K5eXZD0(+V01zUCOOsXrY2zB5rL6)1T}YZI-&X3nq2*-Q~JS zeo++6cSS+8tPSFq-Ccxr!E7lCre$3Sw5wpgUl+{gu1@~P@hQj@@kJqAFL~_YP1Gz3 z=4z4X3ud0w6E*~4+J6uP8-keMlRO&(aoZ5c#tlJSEDq#bACi&jn?kd z=RvV2L(1fAEt|yMcPDeFOit-`zg~QaTjIdr9TT~}V-oC`NS^dEvdfRCo&L1$@~7#& ziTFz|BYS+=w#OIt_;6#7XCMDW-51n4F!%!>KKZ~0{^Y~C-ChiT-eY)w62sp2K_&GS z6|Vfc+>zGi@%HW=T-a96B)VJi?ik4w3d63F7*}reHdTq$rqKLu-}7!S9##~ ztZPcNC+xD8CC7hC)Msy?M`!*8_S=?C9+<@z-o6ESG)00 z)T(mlOr^~F_Y=>A`tiJ0-~xbaVs+oJ8_dr0bU z9C9V5PR5l(E@07xIv27`GDcdPtICVvwK5EKE}X4%0ijwKu8SH{f2P)f!6qjb9dYKS z$r;RYqS@q3gUOlIhh=Dvy5M%egAo<33=$FxB-%vZ5gC6lIdj}3qsb%#p(Dy_;5-*9Uc P00000NkvXXu0mjfG~R89 delta 2485 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 diff --git a/applications/emsConfigurer/main.cpp b/applications/emsConfigurer/main.cpp index 9eb1bbd..5937f83 100644 --- a/applications/emsConfigurer/main.cpp +++ b/applications/emsConfigurer/main.cpp @@ -58,7 +58,7 @@ int main(int argc, char *argv[]) #if 1 //QFile f(":qdarkstyle/light/lightstyle.qss"); QFile f(":bingle/bingle/Ubuntu.qss"); - + //QFile f(":bingle/bingle/flat.qss"); if (!f.exists()) { hloge("Unable to set stylesheet, file not found"); diff --git a/applications/emsConfigurer/maindialog.cpp b/applications/emsConfigurer/maindialog.cpp index 7c57880..1b1eab1 100644 --- a/applications/emsConfigurer/maindialog.cpp +++ b/applications/emsConfigurer/maindialog.cpp @@ -15,6 +15,7 @@ #include #include "devicepropertypage.h" +#include "formserialportsettingdialog.h" MainDialog::MainDialog(QWidget *parent) : QMainWindow (parent), @@ -214,7 +215,12 @@ void MainDialog::loadWindowState() //增加设备 void MainDialog::onToolButton1Clicked() { - QMessageBox::information(this, "Button Clicked", "Button 1 was clicked!"); + FormSerialPortSettingDialog dlg; + dlg.setModal(true); + if(dlg.exec() == QDialog::Accepted) + QMessageBox::information(this, "OK Clicked", "Button 1 was clicked!"); + else + QMessageBox::information(this, "Cancel Clicked", "Cancel was clicked!"); } //删除设备 diff --git a/applications/emsConfigurer/maindialog.ui b/applications/emsConfigurer/maindialog.ui index d779f0c..314ebaf 100644 --- a/applications/emsConfigurer/maindialog.ui +++ b/applications/emsConfigurer/maindialog.ui @@ -19,6 +19,9 @@ Dialog + + + diff --git a/applications/emsConfigurer/mainwindow.cpp b/applications/emsConfigurer/mainwindow.cpp index 2a05a71..403faf4 100644 --- a/applications/emsConfigurer/mainwindow.cpp +++ b/applications/emsConfigurer/mainwindow.cpp @@ -29,7 +29,7 @@ MainWindow::MainWindow(QWidget *parent) QRegularExpressionValidator* ipValidator = new QRegularExpressionValidator(rx, this); ui->serverIp->setValidator(ipValidator); //setIp("127.0.0.1"); - setIp("192.168.10.254"); + setIp("192.168.0.155"); } MainWindow::~MainWindow() @@ -49,6 +49,7 @@ void MainWindow::setIp(const QString &ip) bool MainWindow::testDatabase() { + CWaitorCursor wait; QString svr = ui->serverIp->text(); std::string dbserver = svr.toStdString(); //"tcp://192.168.4.254"; int dbport = 3306; diff --git a/applications/emsConfigurer/mainwindow.ui b/applications/emsConfigurer/mainwindow.ui index 63ba472..affc7ff 100644 --- a/applications/emsConfigurer/mainwindow.ui +++ b/applications/emsConfigurer/mainwindow.ui @@ -20,7 +20,7 @@ EMS Configurer - backfround-color:rgb(170,255,127) + @@ -47,8 +47,9 @@ - 26 - true + 宋体 + false + false @@ -82,7 +83,9 @@ - 16 + 宋体 + false + false diff --git a/applications/emsConfigurer/qdarkstyle/bingle/binglestyle.qrc b/applications/emsConfigurer/qdarkstyle/bingle/binglestyle.qrc index 53ccfb6..27eb972 100644 --- a/applications/emsConfigurer/qdarkstyle/bingle/binglestyle.qrc +++ b/applications/emsConfigurer/qdarkstyle/bingle/binglestyle.qrc @@ -17,5 +17,6 @@ NeonButtons.qss Ubuntu.qss material-blue.qss + flat.qss diff --git a/applications/emsConfigurer/qdarkstyle/bingle/flat.qss b/applications/emsConfigurer/qdarkstyle/bingle/flat.qss new file mode 100644 index 0000000..824e7bf --- /dev/null +++ b/applications/emsConfigurer/qdarkstyle/bingle/flat.qss @@ -0,0 +1,628 @@ +*{ +font:15px "宋体"; +color: rgb(230, 230, 230); +selection-background-color: rgb(255, 255, 255);/*选中文本*/ +selection-color: rgb(0, 0, 0); +outline:none;/*焦点框*/ +} +#centralWidget{ +background-color: rgb(80, 80, 80); +border-bottom:5px solid rgb(20, 20, 20); +} +/*其他(控件公共样式在最后)*/ + +/*tab 1中按钮示例*/ +#btnHoverOrange{ +border-color:rgb(255, 170, 0); +} +#btnPressOrange{ +color:black; +border-color: rgb(128, 128, 128); +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(255, 177, 21, 255), stop:0.528409 rgba(236, 157, 0, 255), stop:1 rgba(255, 170, 0, 255)); +} +#btnHoverBlue{ +border-color:rgb(0, 170, 255); +} +#btnPressBlue{ +color:black; +border-color: rgb(128, 128, 128); +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(0, 170, 255, 255), stop:0.511364 rgba(0, 151, 227, 255), stop:1 rgba(0, 170, 255, 255)); +} +/*tab 1中勾选框示例*/ +#checkHoverOrange{ +color: rgb(255, 170, 0); +} +#checkHoverOrange::indicator{ +border-image: url(:/img/check_orange.png); +} +#checkCheckOrange::indicator{ +border-image: url(:/img/checked_orange.png); +} +#checkHoverBlue{ +color: rgb(0, 170, 255); +} +#checkHoverBlue::indicator{ +border-image: url(:/img/check_blue.png); +} +#checkCheckBlue::indicator{ +border-image: url(:/img/checked_blue.png); +} +#checkHoverGreen{ +color: rgb(0, 255, 170); +} +#checkHoverGreen::indicator{ +border-image: url(:/img/check_green.png); +} +#checkCheckGreen::indicator{ +border-image: url(:/img/checked_green.png); +} +/*tab1 下拉框示例*/ +#comboHover{ +border:1px solid rgb(255, 170, 0); +} +#comboHover::down-arrow{ +border-image: url(:/img/down_orange.png); +} +/*tab 1编辑框示例*/ +#editHover{ +border:1px solid rgb(255, 170, 0); +} +/*tab 1数字框示例*/ +#spinHoverOrange{ +border:1px solid rgb(255, 170, 0); +} +#spinHoverOrange::up-button{ +border-image: url(:/img/up_orange.png); +} +#spinHoverBlue{ +border:1px solid rgb(0, 170, 255); +} +#spinHoverBlue::up-button{ +border-image: url(:/img/up_blue.png); +} +/*自定义按钮栏*/ +#toolBar{ +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(57, 57, 57, 255), stop:0.534091 rgba(20, 20, 20, 255), stop:1 rgba(73, 73, 73, 255)); +border-bottom:2px solid rgb(0, 170, 255); +} +#toolBar QPushButton{ +color: rgb(200, 200, 200); +border:0; +border-radius:0; +background-color: transparent; +} +#toolBar QPushButton:hover{ +color:rgb(255, 170, 0); +background-color: rgba(255, 255, 255, 50); +} +#toolBar QPushButton:pressed{ +background-color: rgba(255, 255, 255, 80); +} +QPushButton#btnSet{ +background-image: url(:/img/set_gray.png); +background-repeat:no-repeat; +background-position:center center; +} +QPushButton#btnSet:hover{ +background-image: url(:/img/set_orange.png); +} +QPushButton#btnMin{ +background-image: url(:/img/min_gray.png); +background-repeat:no-repeat; +background-position:center center; +} +QPushButton#btnMin:hover{ +background-image: url(:/img/min_orange.png); +} +QPushButton#btnMax{ +background-image: url(:/img/max_gray.png); +background-repeat:no-repeat; +background-position:center center; +} +QPushButton#btnMax:hover{ +background-image: url(:/img/max_orange.png); +} +QPushButton#btnMax:checked{ +background-image: url(:/img/normal_gray.png); +} +QPushButton#btnMax:checked:hover{ +background-image: url(:/img/normal_orange.png); +} +QPushButton#btnClose{ +background-image: url(:/img/close_gray.png); +background-repeat:no-repeat; +background-position:center center; +} +QPushButton#btnClose:hover{ +background-image: url(:/img/close_red.png); +} +/*分裂器*/ +QSplitter::handle{ +background-color: rgb(60, 60, 60); +margin:2px; +} +/*滚动区域*/ +QScrollArea{ +border:0; +background-color: transparent; +} +QScrollArea>QWidget>QWidget{ +background-color: rgb(80, 80, 80); +} +/*滚动条 */ +QScrollBar:vertical{/*竖向*/ +width:20px; +padding:0 3px; +margin:0; +background-color:transparent; +} +QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical{ +background-color: transparent; +} +QScrollBar::handle:vertical{ +width:10px; +min-height:20px; +margin:20px 0; +border-radius:5px; +background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(91, 91, 91, 255), stop:0.545455 rgba(107, 107, 107, 255), stop:1 rgba(85, 85, 85, 255)); +} +QScrollBar::handle:vertical:hover{ +background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(136, 136, 136, 255), stop:0.545455 rgba(157, 157, 157, 255), stop:1 rgba(139, 139, 139, 255)); +} +QScrollBar::add-line:vertical{ +height:20px; +width:20px; +subcontrol-position:bottom; +border-image: url(:/img/down2_white.png); +} +QScrollBar::sub-line:vertical{ +height:20px; +width:20px; +subcontrol-position:top; +border-image: url(:/img/up2_white.png); +} +QScrollBar::sub-line:vertical:hover{ +border-image: url(:/img/up2_orange.png); +} +QScrollBar::add-line:vertical:hover{ +border-image: url(:/img/down2_orange.png); +} +QScrollBar:horizontal{/*横向*/ +height:20px; +padding:3px; +margin:0; +background-color:transparent; +} +QScrollBar::add-page:horizontal,QScrollBar::sub-page:horizontal{ +background-color: transparent; +} +QScrollBar::handle:horizontal{ +height:10px; +min-width:20px; +margin:0 20px; +border-radius:5px; +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(91, 91, 91, 255), stop:0.545455 rgba(107, 107, 107, 255), stop:1 rgba(85, 85, 85, 255)); +} +QScrollBar::handle:horizontal:hover{ +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(136, 136, 136, 255), stop:0.545455 rgba(157, 157, 157, 255), stop:1 rgba(139, 139, 139, 255)); +} +QScrollBar::add-line:horizontal{ +height:20px; +width:20px; +subcontrol-position:right; +border-image: url(:/img/right2_white.png); +} +QScrollBar::sub-line:horizontal{ +height:20px; +width:20px; +subcontrol-position:left; +border-image: url(:/img/left2_white.png); +} +QScrollBar::add-line:horizontal:hover{ +border-image: url(:/img/right2_orange.png); +} +QScrollBar::sub-line:horizontal:hover{ +border-image: url(:/img/left2_orange.png); +} +/*ToolBox*/ +QToolBox{ +background-color: rgb(80, 80, 80);/*背景色-空隙颜色*/ +border:1px solid rgb(128, 128, 128); +border-top-left-radius:16px 24px; +} +QToolBox>QWidget>QWidget>QWidget{/*tab页*/ +background-color: rgb(80, 80, 80); +} +QToolBox>QAbstractButton{/*标题栏*/ +min-height:30px; +} +QToolBox::tab{ +color: rgb(230, 230, 230); +padding-left:30px; +border-top-left-radius:16px 24px; +border-top:1px solid rgb(128, 128, 128); +border-left:1px solid rgb(128, 128, 128); +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(60, 60, 60, 255), stop:0.238636 rgba(40, 40, 40, 255), stop:0.909091 rgba(87, 87, 87, 255)); +} +QToolBox::tab:first{ +border-top:0; +border-left:0; +} +QToolBox::tab:hover{ +color:black; +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(255, 177, 21, 255), stop:0.295455 rgba(245, 163, 0, 255), stop:0.909091 rgba(255, 201, 93, 255)); +} +QToolBox::tab:selected{ +color:rgb(255, 170, 0); +border-bottom:1px solid rgb(0, 170, 255); +} +QToolBox::tab:selected:hover{ +color:black; +} +/*TabWidget*/ +QTabWidget{ +} +QTabWidget>QWidget>QWidget{/*tab页*/ +background-color: rgb(80, 80, 80); +} +QTabWidget::tab-bar{ +alignment:left;/*tab位置*/ +} +QTabWidget::pane { /*内容区域*/ +background-color: rgb(80, 80, 80);/*背景色-空隙颜色*/ +border:1px solid rgb(128, 128, 128); +} +QTabBar{ +color:white; +background-color:transparent; +} +QTabBar::tab{/*页签*/ +min-height:28px; +width:120px; +color: rgb(230, 230, 230); +margin-right:1px; +margin-bottom:1px; +border-top-left-radius:16px 24px; +border:1px solid rgb(128, 128, 128); +border-bottom:0; +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(60, 60, 60, 255), stop:0.238636 rgba(40, 40, 40, 255), stop:0.909091 rgba(87, 87, 87, 255)); +} +QTabBar::tab:hover{ +color:black; +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(255, 177, 21, 255), stop:0.295455 rgba(245, 163, 0, 255), stop:0.909091 rgba(255, 201, 93, 255)); +} +QTabBar::tab:selected{ +color:rgb(255, 170, 0); +border-bottom:1px solid rgb(0, 170, 255); +} +QTabBar::tab:selected:hover{ +color:black; +} +QTabBar::tear{/*选项过多时的。。。*/ +imag:; +} +QTabBar::scroller{ +width:60px; +} +/*文本框*/ +QTextEdit{ +color:white; +border:1px solid rgb(128, 128, 128); +background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(90, 90, 90, 255), stop:0.789773 rgba(90, 90, 90, 255), stop:1 rgba(102, 102, 102, 255)); +} +/*按钮*/ +QPushButton{ +color:rgb(240, 240, 240); +border:1px solid rgb(128, 128, 128); +border-radius:3px; +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(66, 66, 66, 255), stop:0.517045 rgba(46, 46, 46, 255), stop:1 rgba(69, 69, 69, 255)); +} +QPushButton:hover{ +border-color:rgb(255, 170, 0); +} +QPushButton:pressed{ +border-color: rgb(128, 128, 128); +color:black; +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(255, 177, 21, 255), stop:0.528409 rgba(236, 157, 0, 255), stop:1 rgba(255, 170, 0, 255)); +} +QPushButton:checked{ +color:rgb(0, 255, 170); +border-color: rgba(0, 255, 170, 128); +background-image: url(:/img/right3_green.png); +background-repeat:no-repeat; +background-position:center left; +} +QPushButton:disabled{ +color: rgb(230, 230, 230); +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(150, 150, 150, 255), stop:0.522727 rgba(134, 134, 134, 255), stop:1 rgba(150, 150, 150, 255)); +} +QPushButton:checked:pressed{ +color:black; +} +QPushButton:checked:disabled{ +color: rgb(230, 230, 230); +border-color: rgb(128, 128, 128); +background-image: url(:/img/right3_white.png); +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(150, 150, 150, 255), stop:0.522727 rgba(134, 134, 134, 255), stop:1 rgba(150, 150, 150, 255)); +} +/*勾选框*/ +QCheckBox{ +margin-left:5px; +spacing:3px;/*点击框与文字距离*/ +color: rgb(250, 250, 250); +} +QCheckBox:hover{ +color: rgb(0, 255, 170); +} +QCheckBox:disabled{ +color: rgb(230, 230, 230); +} +QCheckBox::indicator{/*点击框*/ +width:20px; +height:20px; +} +QCheckBox::indicator:unchecked{/*可添加未点击时点击区域图片*/ +border-image: url(:/img/check_white.png); +} +QCheckBox::indicator:unchecked:hover{ +border-image: url(:/img/check_green.png); +} +QCheckBox::indicator:unchecked:disabled{ +border-image: url(:/img/check_white.png); +} +QCheckBox::indicator:checked{/*点击时区域样式*/ +border-image: url(:/img/checked_green.png); +} +QCheckBox::indicator:checked:hover{ +border-image: url(:/img/checked_green.png); +} +QCheckBox::indicator:checked:disabled{ +border-image: url(:/img/checked_white.png); +} +QCheckBox::indicator:indeterminate{/*半选中状态*/ +} +/*下拉列表*/ +QComboBox{ +padding-left: 5px; +padding-right: 2px; +color:rgb(250 ,250 ,250); +border:1px solid rgb(128, 128, 128); +background-color: rgb(100 ,100 ,100); +} +QComboBox:hover{ +border:1px solid rgb(255, 170, 0); +} +QComboBox:disabled{ +color: rgb(230, 230, 230); +background-color:rgb(150, 150, 150); +} +QComboBox:editable{ +background-color:rgb(100, 100, 100); +} +QComboBox:editable:disabled{ +background-color:rgb(150, 150, 150); +} +QComboBox QAbstractItemView{ +background-color:rgb(110, 110, 110); +} +QComboBox QAbstractItemView::item{/*需要代码中->setView(new QListView(this));*/ +height:26px; +font: 15px "宋体"; +} +QComboBox QAbstractItemView::item:hover{ +color:black; +background-color: rgb(255, 170, 0); +} +QComboBox QAbstractItemView::item:selected{ +background-color: rgb(255, 170, 0); +} +QComboBox::drop-down { +width:20px; +height:20px; +subcontrol-position: center right; +right:2px; +border:0; +background-color:transparent; +} +QComboBox::down-arrow {/*替换三角小图标*/ +width:20px; +height:20px; +border-image: url(:/img/down_white.png); +} +QComboBox::down-arrow:hover { +border-image: url(:/img/down_orange.png); +} +QComboBox::down-arrow:disabled { +border-image: url(:/img/down2_white.png); +} +/*编辑框*/ +QLineEdit{ +padding: 0 5px; +color: rgb(250 ,250 ,250); +background-color: rgb(100, 100, 100); +border:1px solid rgb(128, 128, 128); +} +QLineEdit:hover{ +border:1px solid rgb(255, 170, 0); +} +QLineEdit[readOnly=true],QLineEdit:disabled{ +color: rgb(230, 230, 230); +background-color:rgb(150, 150, 150); +} +/*整数框*/ +QSpinBox{ +padding:0 5px; +color: rgb(250, 250, 250); +background-color: rgb(100, 100, 100); +border:1px solid rgb(128, 128, 128); +} +QSpinBox:hover{ +border:1px solid rgb(255, 170, 0); +} +QSpinBox:disabled{ +color: rgb(230, 230, 230); +background-color:rgb(150, 150, 150); +} +QSpinBox[buttonSymbols="0"]::up-button{/*显示按钮=0*/ +width:20px; +height:14px; +subcontrol-origin:border; +subcontrol-position:top right; +right:2px; +top:1px; +border-image: url(:/img/up_white.png); +} +QSpinBox[buttonSymbols="0"]::up-button:hover{ +border-image: url(:/img/up_orange.png); +} +QSpinBox[buttonSymbols="0"]::up-button:pressed{ +} +QSpinBox[buttonSymbols="0"]::up-button:disabled{ +border-image: url(:/img/up2_white.png); +} +QSpinBox[buttonSymbols="0"]::down-button{ +width:20px; +height:14px; +subcontrol-origin:border; +subcontrol-position:bottom right; +right:2px; +bottom:1px; +border-image: url(:/img/down_white.png); +} +QSpinBox[buttonSymbols="0"]::down-button:hover{ +border-image: url(:/img/down_orange.png); +} +QSpinBox[buttonSymbols="0"]::down-button:pressed{ +} +QSpinBox[buttonSymbols="0"]::down-button:disabled{ +border-image: url(:/img/down2_white.png); +} +/*表头*/ +QHeaderView{ +font: 15px "宋体"; +color:rgb(230, 230, 230); +background-color: rgb(80, 80, 80); +} +QHeaderView::section:horizontal{/*横表头*/ +min-height:30px; +border:0; +border-bottom:1px solid rgb(0, 170, 255); +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(60, 60, 60, 255), stop:0.301136 rgba(40, 40, 40, 255), stop:0.909091 rgba(68, 68, 68, 255)); +} +QHeaderView::section:vertical{/*竖表头*/ +min-width:60px; +padding-left:15px; +border:1px solid rgb(128, 128, 128); +border-top:0; +border-left:0; +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(60, 60, 60, 255), stop:0.301136 rgba(40, 40, 40, 255), stop:0.909091 rgba(68, 68, 68, 255)); +} +QHeaderView::section{ +font: 15px "宋体"; +} +QHeaderView::section:hover{ +color:black; +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(255, 177, 21, 255), stop:0.335227 rgba(245, 163, 0, 255), stop:0.909091 rgba(255, 192, 66, 255)); +} +QHeaderView::section:checked{/*不取消高亮*/ +font: 15px "宋体"; +color: rgb(255, 170, 0); +} +QHeaderView::section:selected{ +font: 15px "宋体"; +color: rgb(255, 170, 0); +} +QHeaderView::section:checked:hover{ +color: rgb(230, 230, 230); +} +QHeaderView::section:first{/*表头第一个位置*/ +} +QHeaderView::down-arrow{/*图标用来排序的*/ +} +QHeaderView::up-arrow{ +} +/*表格*/ +QTableView{/*对齐方式代码设置*/ +border:1px solid rgb(128, 128, 128); +gridline-color: rgb(128, 128, 128);/*网格线颜色*/ +background-color: rgb(80, 80, 80); +} +QTableView QTableCornerButton::section{/*表头左上*/ +border:0; +border-bottom:1px solid rgb(0, 170, 255); +background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:1, y2:1, stop:0 rgba(60, 60, 60, 255), stop:0.301136 rgba(40, 40, 40, 255), stop:0.909091 rgba(68, 68, 68, 255)); +} +QTableView::item{/*表内容*/ +font: 15px "宋体"; +color: rgb(230, 230, 230); +background-color: rgb(80, 80, 80); +} +QTableView::item:selected{ +color:black; +background-color: rgb(255, 170, 0); +} +QTableView::indicator{ +width: 20px; +height: 20px; +} +QTableView::indicator:enabled:checked{ +image: ; +} +QTableView::indicator:enabled:unchecked{ +image: ; +} +/*滑动条*/ +QSlider::groove:vertical { +background: red; +position: absolute; +left: 4px; right: 4px; +} +QSlider::handle:vertical { +height: 10px; +background: green; +margin: 0 -4px; +} +QSlider::add-page:vertical { +background: white; +} +QSlider::sub-page:vertical { +background: pink; +} +/*菜单*/ +QPushButton::menu-indicator{/*setmenu*/ +image:none; +} +QMenu{ +border:1px solid rgb(128, 128, 128); +background-color:rgb(70, 70, 70); +margin:0px; +padding:0px; +} +QMenu::item { +margin:0px; +padding:0 20 0 10px; +font:15px "宋体"; +min-height:26px; +max-height:28px; +color:rgb(240, 240, 240); +background-color:rgb(70, 70, 70); +} +QSpacerItem{ +background-color: rgb(0, 255, 0); +} +QMenu::item:disabled{ +color:rgb(240, 240, 240); +background-color:rgb(110, 110, 110); +} +QMenu::item:selected { +color:black; +background-color: rgb(255, 170, 0); +} +QMenu::item:selected:disabled{ +color:rgb(240, 240, 240); +background-color:rgb(110, 110, 110); +} +QMenu::separator {/*分割线*/ +height: 1px; +background: transparent; +}