From a117497eb2afd078ec606c1506946952e4b10aa7 Mon Sep 17 00:00:00 2001 From: touwoyimuli Date: Fri, 4 Oct 2019 23:37:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=9B=E5=BB=BA=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E5=AF=B9=E8=AF=9D=E6=A1=86=E7=9A=84=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- QtCustomDialogEx/ExCustomMainWin.cpp | 91 ++++++++++++++++++++ QtCustomDialogEx/ExCustomMainWin.h | 40 +++++++++ QtCustomDialogEx/ExCustomMainWin.ui | 104 ++++++++++++++++++++++ QtCustomDialogEx/ExDlgLocate.cpp | 45 ++++++++++ QtCustomDialogEx/ExDlgLocate.h | 34 ++++++++ QtCustomDialogEx/ExDlgLocate.ui | 102 ++++++++++++++++++++++ QtCustomDialogEx/ExDlgSetHeaders.cpp | 27 ++++++ QtCustomDialogEx/ExDlgSetHeaders.h | 28 ++++++ QtCustomDialogEx/ExDlgSetHeaders.ui | 107 +++++++++++++++++++++++ QtCustomDialogEx/ExDlgSize.cpp | 32 +++++++ QtCustomDialogEx/ExDlgSize.h | 26 ++++++ QtCustomDialogEx/ExDlgSize.ui | 119 ++++++++++++++++++++++++++ QtCustomDialogEx/QtCustomDialogEx.pro | 54 ++++++++++++ QtCustomDialogEx/images/Image001.png | Bin 0 -> 1421 bytes QtCustomDialogEx/images/Image002.png | Bin 0 -> 1199 bytes QtCustomDialogEx/images/Image003.png | Bin 0 -> 1281 bytes QtCustomDialogEx/images/Image004.jpg | Bin 0 -> 877 bytes QtCustomDialogEx/images/Image005.png | Bin 0 -> 773 bytes QtCustomDialogEx/images/Image006.png | Bin 0 -> 1551 bytes QtCustomDialogEx/images/Image007.png | Bin 0 -> 538 bytes QtCustomDialogEx/main.cpp | 11 +++ QtCustomDialogEx/qt.ico | Bin 0 -> 4286 bytes QtCustomDialogEx/resources.qrc | 11 +++ 23 files changed, 831 insertions(+) create mode 100644 QtCustomDialogEx/ExCustomMainWin.cpp create mode 100644 QtCustomDialogEx/ExCustomMainWin.h create mode 100644 QtCustomDialogEx/ExCustomMainWin.ui create mode 100644 QtCustomDialogEx/ExDlgLocate.cpp create mode 100644 QtCustomDialogEx/ExDlgLocate.h create mode 100644 QtCustomDialogEx/ExDlgLocate.ui create mode 100644 QtCustomDialogEx/ExDlgSetHeaders.cpp create mode 100644 QtCustomDialogEx/ExDlgSetHeaders.h create mode 100644 QtCustomDialogEx/ExDlgSetHeaders.ui create mode 100644 QtCustomDialogEx/ExDlgSize.cpp create mode 100644 QtCustomDialogEx/ExDlgSize.h create mode 100644 QtCustomDialogEx/ExDlgSize.ui create mode 100644 QtCustomDialogEx/QtCustomDialogEx.pro create mode 100644 QtCustomDialogEx/images/Image001.png create mode 100644 QtCustomDialogEx/images/Image002.png create mode 100644 QtCustomDialogEx/images/Image003.png create mode 100644 QtCustomDialogEx/images/Image004.jpg create mode 100644 QtCustomDialogEx/images/Image005.png create mode 100644 QtCustomDialogEx/images/Image006.png create mode 100644 QtCustomDialogEx/images/Image007.png create mode 100644 QtCustomDialogEx/main.cpp create mode 100644 QtCustomDialogEx/qt.ico create mode 100644 QtCustomDialogEx/resources.qrc diff --git a/QtCustomDialogEx/ExCustomMainWin.cpp b/QtCustomDialogEx/ExCustomMainWin.cpp new file mode 100644 index 0000000..4123fd8 --- /dev/null +++ b/QtCustomDialogEx/ExCustomMainWin.cpp @@ -0,0 +1,91 @@ +#include "ExCustomMainWin.h" +#include "ui_ExCustomMainWin.h" +#include + + +ExCustomMainWin::ExCustomMainWin(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::ExCustomMainWin) +{ + ui->setupUi(this); + setWindowTitle(QObject::tr("自定义对话框的用法")); + + m_model = nullptr; + m_dlglocate = nullptr; + m_dlgSetHeaders = nullptr; + + m_model = new QStandardItemModel(this); +} + +ExCustomMainWin::~ExCustomMainWin() +{ + delete ui; +} + +void ExCustomMainWin::setACellText(int row, int col, QString text) +{ + QModelIndex index = m_model->index(row, col); + m_seleModel->clearSelection(); + m_seleModel->setCurrentIndex(index, QItemSelectionModel::Select); + m_model->setData(index, text, Qt::DisplayRole); +} + +void ExCustomMainWin::on_actSetHeader_triggered() +{ + if (m_dlgSetHeaders == nullptr) + m_dlgSetHeaders = new ExDlgSetHeaders(this); //只有主窗口销毁时候,该dialog窗口才会销毁 + + if(m_dlgSetHeaders->headerList().count() != m_model->columnCount()) { //如果表头列数发生变化,就重新初始化 + QStringList list; + + for (int i = 0; i < m_model->columnCount(); i++) { + list.append(m_model->headerData(i, Qt::Horizontal, Qt::DisplayRole).toString()); + } + + m_dlgSetHeaders->setHeaderList(list); //对话框,初始化显示 + } + + int ret = m_dlgSetHeaders->exec(); //以模态对话框的方式显示 + if (ret == QDialog::Accepted) { //Ok按键被按下 + QStringList list = m_dlgSetHeaders->headerList(); + m_model->setHorizontalHeaderLabels(list); //设置模型的表头标题 + } +} + + +void ExCustomMainWin::on_actSetSize_triggered() +{ + //创建模态对话框, 动态创建, 使用过后删除 + ExDlgSize *dlgSize = new ExDlgSize(this); + Qt::WindowFlags flags = dlgSize->windowFlags(); + dlgSize->setWindowFlags(flags | Qt::MSWindowsFixedSizeDialogHint); //在窗口上给窗口一个窄的对话框边框。用于固定大小的对话框。 + dlgSize->setRowCol(m_model->rowCount(), m_model->columnCount()); + + int ret = dlgSize->exec(); //以模态对话框显示 + if (ret == QDialog::Accepted) { //Ok按钮被按下,获取对话框中输入,设置行数和列数 + int row = dlgSize->getRowCount(); + int col = dlgSize->getColCount(); + m_model->setRowCount(row); + m_model->setColumnCount(col); + } + + delete dlgSize; +} + +void ExCustomMainWin::on_actLocate_triggered() +{ + ui->actLocate->setEnabled(false); + m_dlglocate = new ExDlgLocate(this); + m_dlglocate->setAttribute(Qt::WA_DeleteOnClose); //关闭对话框时候,自动删除 + + Qt::WindowFlags flags = m_dlglocate->windowFlags(); + m_dlglocate->setWindowFlags(flags | Qt::WindowStaysOnTopHint); //窗口置顶 + + m_dlglocate->setSpinRange(m_model->rowCount(), m_model->columnCount()); + QModelIndex curIndex = m_seleModel->currentIndex(); + + if (curIndex.isValid()) + m_dlglocate->setSpinValue(curIndex.row(), curIndex.column()); + + m_dlglocate->show(); +} diff --git a/QtCustomDialogEx/ExCustomMainWin.h b/QtCustomDialogEx/ExCustomMainWin.h new file mode 100644 index 0000000..2e464d0 --- /dev/null +++ b/QtCustomDialogEx/ExCustomMainWin.h @@ -0,0 +1,40 @@ +#ifndef EXCUSTOMMAINWIN_H +#define EXCUSTOMMAINWIN_H + +#include +#include +#include + +#include "ExDlgSize.h" +#include "ExDlgSetHeaders.h" +#include "ExDlgLocate.h" + +namespace Ui { +class ExCustomMainWin; +} + +class ExCustomMainWin : public QMainWindow +{ + Q_OBJECT + +public: + explicit ExCustomMainWin(QWidget *parent = nullptr); + ~ExCustomMainWin(); + + void setACellText(int row, int col, QString text); //设置一个单元格,有ExDlgLocate调用 + +private slots: + void on_actSetHeader_triggered(); + void on_actSetSize_triggered(); + void on_actLocate_triggered(); + +private: + Ui::ExCustomMainWin *ui; + + QStandardItemModel *m_model; //数据模型 + QItemSelectionModel *m_seleModel; //item选择模型 + ExDlgSetHeaders *m_dlgSetHeaders; + ExDlgLocate *m_dlglocate; +}; + +#endif // EXCUSTOMMAINWIN_H diff --git a/QtCustomDialogEx/ExCustomMainWin.ui b/QtCustomDialogEx/ExCustomMainWin.ui new file mode 100644 index 0000000..4aeb527 --- /dev/null +++ b/QtCustomDialogEx/ExCustomMainWin.ui @@ -0,0 +1,104 @@ + + + ExCustomMainWin + + + + 0 + 0 + 816 + 472 + + + + ExCustomMainWin + + + + + + + + + + + + 0 + 0 + 816 + 23 + + + + + + Qt::ToolButtonTextBesideIcon + + + TopToolBarArea + + + false + + + + + + + + + + + + :/images/Image002.png:/images/Image002.png + + + 设置表头 + + + 设置表头列表 + + + + + + :/images/Image001.png:/images/Image001.png + + + 设置表格行列 + + + 设置表格行列数 + + + + + + :/images/Image004.jpg:/images/Image004.jpg + + + 修改单元格 + + + 修改某一单元格 + + + + + + :/images/Image003.png:/images/Image003.png + + + 退出 + + + 退出程序 + + + + + + + + + diff --git a/QtCustomDialogEx/ExDlgLocate.cpp b/QtCustomDialogEx/ExDlgLocate.cpp new file mode 100644 index 0000000..17375b9 --- /dev/null +++ b/QtCustomDialogEx/ExDlgLocate.cpp @@ -0,0 +1,45 @@ +#include "ExDlgLocate.h" +#include "ui_ExDlgLocate.h" + +#include "ExCustomMainWin.h" + +ExDlgLocate::ExDlgLocate(QWidget *parent) : + QDialog(parent), + ui(new Ui::ExDlgLocate) +{ + ui->setupUi(this); +} + +ExDlgLocate::~ExDlgLocate() +{ + delete ui; +} + +void ExDlgLocate::setSpinRange(int rowCount, int colCount) +{ + +} + +void ExDlgLocate::setSpinValue(int rowNo, int colNo) +{ + +} + +void ExDlgLocate::closeEvent(QCloseEvent *e) +{ + +} + +void ExDlgLocate::on_btnSetText_clicked() +{ + int row = ui->spinBoxRow->value(); //定位到单元格,并且设置字符串 + int col = ui->spinBoxCol->value(); + + ExCustomMainWin *parWind = new ExCustomMainWin(nullptr); //向具体的item中填写字符串 + parWind->setACellText(row, col, ui->lineEdit->text()); + + if (ui->checkBoxRow->isChecked()) + ui->spinBoxRow->setValue(1 + ui->spinBoxRow->value()); + if (ui->checkBoxCol->isChecked()) + ui->spinBoxCol->setValue(1 + ui->spinBoxCol->value()); +} diff --git a/QtCustomDialogEx/ExDlgLocate.h b/QtCustomDialogEx/ExDlgLocate.h new file mode 100644 index 0000000..7c60711 --- /dev/null +++ b/QtCustomDialogEx/ExDlgLocate.h @@ -0,0 +1,34 @@ +#ifndef EXDLGLOCATE_H +#define EXDLGLOCATE_H + +#include + +class ExCustomMainWin; + + +namespace Ui { +class ExDlgLocate; +} + +class ExDlgLocate : public QDialog +{ + Q_OBJECT + +public: + explicit ExDlgLocate(QWidget *parent = nullptr); + ~ExDlgLocate(); + + void setSpinRange(int rowCount, int colCount); //设置spin的设定值 + void setSpinValue(int rowNo, int colNo); //设置spin的显示值 + +private slots: + void on_btnSetText_clicked(); + +private: + void closeEvent(QCloseEvent* e); + +private: + Ui::ExDlgLocate *ui; +}; + +#endif // EXDLGLOCATE_H diff --git a/QtCustomDialogEx/ExDlgLocate.ui b/QtCustomDialogEx/ExDlgLocate.ui new file mode 100644 index 0000000..0c6596e --- /dev/null +++ b/QtCustomDialogEx/ExDlgLocate.ui @@ -0,0 +1,102 @@ + + + ExDlgLocate + + + + 0 + 0 + 414 + 159 + + + + Dialog + + + + + + + + GroupBox + + + + + + + + + 行号: + + + + + + + 列号: + + + + + + + 行增 + + + + + + + 列增 + + + + + + + 设置文字: + + + + + + + + + + + + + + + + 设定文字 + + + + :/images/Image005.png:/images/Image005.png + + + + + + + 关闭 + + + + :/images/Image007.png:/images/Image007.png + + + + + + + + + + + + diff --git a/QtCustomDialogEx/ExDlgSetHeaders.cpp b/QtCustomDialogEx/ExDlgSetHeaders.cpp new file mode 100644 index 0000000..7bb52fe --- /dev/null +++ b/QtCustomDialogEx/ExDlgSetHeaders.cpp @@ -0,0 +1,27 @@ +#include "ExDlgSetHeaders.h" +#include "ui_ExDlgSetHeaders.h" +#include + +ExDlgSetHeaders::ExDlgSetHeaders(QWidget *parent) : + QDialog(parent), + ui(new Ui::ExDlgSetHeaders) +{ + ui->setupUi(this); + m_model = new QStringListModel(this); +} + +ExDlgSetHeaders::~ExDlgSetHeaders() +{ + QMessageBox::information(this,"提示","设置表头消息框被删除"); + delete ui; +} + +void ExDlgSetHeaders::setHeaderList(QStringList &headers) +{ + m_model->setStringList(headers); //初始化字符串列表 +} + +QStringList ExDlgSetHeaders::headerList() +{ + return m_model->stringList(); //返回字符串列表 +} diff --git a/QtCustomDialogEx/ExDlgSetHeaders.h b/QtCustomDialogEx/ExDlgSetHeaders.h new file mode 100644 index 0000000..c9c691d --- /dev/null +++ b/QtCustomDialogEx/ExDlgSetHeaders.h @@ -0,0 +1,28 @@ +#ifndef EXDLGSETHEADERS_H +#define EXDLGSETHEADERS_H + +#include +#include + +namespace Ui { +class ExDlgSetHeaders; +} + +class ExDlgSetHeaders : public QDialog +{ + Q_OBJECT + +public: + explicit ExDlgSetHeaders(QWidget *parent = nullptr); + ~ExDlgSetHeaders(); + + void setHeaderList(QStringList& headers); + QStringList headerList(); + +private: + Ui::ExDlgSetHeaders *ui; + + QStringListModel *m_model; //管理字符串列表数据 +}; + +#endif // EXDLGSETHEADERS_H diff --git a/QtCustomDialogEx/ExDlgSetHeaders.ui b/QtCustomDialogEx/ExDlgSetHeaders.ui new file mode 100644 index 0000000..a231f45 --- /dev/null +++ b/QtCustomDialogEx/ExDlgSetHeaders.ui @@ -0,0 +1,107 @@ + + + ExDlgSetHeaders + + + + 0 + 0 + 274 + 370 + + + + Dialog + + + + + + 表头标题: + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 确定 + + + + :/images/Image005.png:/images/Image005.png + + + + + + + 取消 + + + + :/images/Image007.png:/images/Image007.png + + + + + + + + + + + + + + + + btnOk + clicked() + ExDlgSetHeaders + accept() + + + 135 + 337 + + + 136 + 184 + + + + + btnClose + clicked() + ExDlgSetHeaders + reject() + + + 216 + 337 + + + 136 + 184 + + + + + diff --git a/QtCustomDialogEx/ExDlgSize.cpp b/QtCustomDialogEx/ExDlgSize.cpp new file mode 100644 index 0000000..9650a8f --- /dev/null +++ b/QtCustomDialogEx/ExDlgSize.cpp @@ -0,0 +1,32 @@ +#include "ExDlgSize.h" +#include "ui_ExDlgSize.h" +#include + +ExDlgSize::ExDlgSize(QWidget *parent) : + QDialog(parent), + ui(new Ui::ExDlgSize) +{ + ui->setupUi(this); +} + +ExDlgSize::~ExDlgSize() +{ + QMessageBox::information(this,"提示","设置表格行列数对话框被删除"); + delete ui; +} + +int ExDlgSize::getRowCount() +{ + return ui->spinBoxRow->value(); +} + +int ExDlgSize::getColCount() +{ + return ui->spinBoxCol->value(); +} + +void ExDlgSize::setRowCol(int row, int col) +{ + ui->spinBoxRow->setValue(row); + ui->spinBoxCol->setValue(col); +} diff --git a/QtCustomDialogEx/ExDlgSize.h b/QtCustomDialogEx/ExDlgSize.h new file mode 100644 index 0000000..7fab89e --- /dev/null +++ b/QtCustomDialogEx/ExDlgSize.h @@ -0,0 +1,26 @@ +#ifndef EXDLGSIZE_H +#define EXDLGSIZE_H + +#include + +namespace Ui { +class ExDlgSize; +} + +class ExDlgSize : public QDialog +{ + Q_OBJECT + +public: + explicit ExDlgSize(QWidget *parent = nullptr); + ~ExDlgSize(); + + int getRowCount(); + int getColCount(); + void setRowCol(int row, int col); + +private: + Ui::ExDlgSize *ui; +}; + +#endif // EXDLGSIZE_H diff --git a/QtCustomDialogEx/ExDlgSize.ui b/QtCustomDialogEx/ExDlgSize.ui new file mode 100644 index 0000000..c78165f --- /dev/null +++ b/QtCustomDialogEx/ExDlgSize.ui @@ -0,0 +1,119 @@ + + + ExDlgSize + + + + 0 + 0 + 236 + 128 + + + + Dialog + + + + + + 设置表格行列数: + + + + + + 6 + + + + + + + 行数: + + + + + + + 列数: + + + + + + + 5 + + + + + + + + + + + + 确定 + + + + :/images/Image005.png:/images/Image005.png + + + + + + + 关闭 + + + + :/images/Image007.png:/images/Image007.png + + + + + + + + + + + + + btnOk + clicked() + ExDlgSize + accept() + + + 62 + 105 + + + 117 + 63 + + + + + btnClose + clicked() + ExDlgSize + reject() + + + 173 + 105 + + + 117 + 63 + + + + + diff --git a/QtCustomDialogEx/QtCustomDialogEx.pro b/QtCustomDialogEx/QtCustomDialogEx.pro new file mode 100644 index 0000000..3269873 --- /dev/null +++ b/QtCustomDialogEx/QtCustomDialogEx.pro @@ -0,0 +1,54 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2019-10-02T06:43:57 +# +#------------------------------------------------- + +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = QtCustomDialogEx +TEMPLATE = app + +# The following define makes your compiler emit warnings if you use +# any feature of Qt which has been marked as deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if you use deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +CONFIG += c++11 + +SOURCES += \ + main.cpp \ + ExCustomMainWin.cpp \ + ExDlgSize.cpp \ + ExDlgSetHeaders.cpp \ + ExDlgLocate.cpp + +HEADERS += \ + ExCustomMainWin.h \ + ExDlgSize.h \ + ExDlgSetHeaders.h \ + ExDlgLocate.h + +FORMS += \ + ExCustomMainWin.ui \ + ExDlgSize.ui \ + ExDlgSetHeaders.ui \ + ExDlgLocate.ui + +RC_ICONS += qt.ico + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target + +RESOURCES += \ + resources.qrc diff --git a/QtCustomDialogEx/images/Image001.png b/QtCustomDialogEx/images/Image001.png new file mode 100644 index 0000000000000000000000000000000000000000..97d62a444471f3ea8e1c03314aacc11a8e75bc57 GIT binary patch literal 1421 zcmV;81#ld>XP z$-tJ|6Jv>(o!_z&Yj37X{wiZ}p(T92Cx{kv1kI)}nzRaTXgtDloBO9?F8t0s4S?6q zSWsxeVB{Ib#>NndL=XrB5DW%IJJpZ-d3?5h?(j44+HnHI!@~%NLurF*lo9N`NyClOFWBN!SQ5*bLhqiRh68_M+fu1UuJn^xquc#wNnNy3_P z84W$kj2Uu;Mv+-yiW2YyheZbJbU_^L^d+Oii*K&Vc;~bpwg{F!e>`p*mB7(GHvsPCkSv2@Q(>_g~pyar@hzV z73n^Y3H5u;%rw_4b({?5u;WY!l$(B z3%$`=;M&+yX%HFU8c0jP78pUhaR6-wMOZgES5gor@S7!qQ{4fSb^B5Jw+}^~P82<| zL*413u`pIsmY4und8cDYpu--4$>T@;Q@6+flSz6FV+2?%e!6EzPPraAr}~h6wjTwL z{c!>pwIQrO-7g-;da8-_YAI?ftf;4jV+8WMe8@g$6Z1LF&#nE@3{VZE)PX1gn@}u| z*AI*07inV0q0zB80Z#iheGqj|71Ta)3wu=`LL=1$kHrY^9G=f{%x)hBe1T{U)H+fV z;IwQyZxXVZd%GVC3e3WR@ykPRoIni~=Bp=kSd_29qT{-_-$Io|EF2?n_`#qUkNM@b zDnv4zo&f8>rgKJ-fmGrl2vG3Ef=i_bOn~2lR7#kZKuig>r(UH!%A~pHB(5);h84h8w#YUD$cqf}IU!Vc(;%HB?}i>6P1F@5HvcaZpiht2SYK zwNbp1Zy`9MINeQ#4;9Y9*G--%Xji+h$kjpDjE)IJzR+W-#Swb8Dv!g4z{_9MX-9Gx*VC7x zs9UaLvQ8Sh7v}4}Nc?7-?z3tEA#>c$mEZjT{TuOx b_&WXvd|&{Ejwd$h00000NkvXXu0mjfioc-= literal 0 HcmV?d00001 diff --git a/QtCustomDialogEx/images/Image002.png b/QtCustomDialogEx/images/Image002.png new file mode 100644 index 0000000000000000000000000000000000000000..8f0257edcd6821c07ed0b7b4e6b9fb135c6a553e GIT binary patch literal 1199 zcmV;g1W@~lP)P)t-s0000) zL_kDDKtx19L_|PDL_iFa-x#z@5|!w(CYc@^Z2XU^=-fIzvB11-0p3@?Q6N^x!LW(3+rVqtWc5(CVky^k=;8KC9`d+4WMc;!>^Qd%x&4rRWut+!vGE7L?o+m*fd4wT~#mgEtU+!K-8 z5|`wD#_?yn?LMa9Q?%|$J*N4-0JGb+uGdR$3+SY+U#q<00060 zNkl9q)y?4fMDa#-|F*A`L1KL2)qJ@hVLYP9!7D0=meSbmwpjH2Y z%b*Cf+O&!OfDnzzP-h0TqL{KUQ}5jSwm8kgkHOC7Jn+8f9L~f0L&q$dJ7!0cZwSFG zIg-eN0Q1KVk{R7yw64p3;{Zq^Nos_4fMUau1&}1OFxf}JZfv;TX8q9p5kLCC4b)H9 z^4sd#2+wX?$5)-%rh9|IU+Sz5e#`CPdbj#Fh7mO@kl4Ch1gpu&p6uhr<^JSHirDC-Z*`lN|TPsxZW^cX8 z+pLwPQj$~)l?%CfNi(ce^5s$A(95lzSQ0&(1}F4WvXj(7eOt5MWOQ#`(mB>F2y?0_ zNrzYoCAT{7O>T}kac_a+~- zGz}0B40D##z^TO=Q&H`aH~ILV=~R|xnfpYS zjX*#si?UQ}5u;H8#fliE)+OSQJ^4QgAtYx131sQF9pAin-n;jnH*?ROb2g8(6@!XH z0RVs@<`D9cd-3}d8iXLB2Bl*PsDf6tP@r+wW6R9EjX+ zSlOWsV?YD~9@%k?nmzrxXqK|{z8>GJM}5d6rR?6x_$JK<8kE|hTh^-mKSVH|Enn0O zWwa^KbX7cCdUiy&fF&&+FyebAvFBdStB3HN%BVBX@tyLcLs|?&HVnd1bP0woe+aoS zSH!s55i~>D{?-w~0#S9+*cx73^(`b5#sE=lXg)`SbdF-E5oW~YiT7_Ng#Hi1SxQ9O z1FdV-I@w# zK@pe02sVges*!%W#%*_GHlECWSK;I-oP%nY%sg{n=|t2$1mPj2ZBStqs9=}N1;frK zp!KH_^N`ww3_&2b49Lv)#3sAl?r=DK$nyL7O8DHE^-mCfAT`|=8}CjS{eHj4=Wl;& zXFb&$t@iP0x7p=I2J#N}V6I5|q|UAhhuh=Ry|ZC1Ph|h5kLGBElkTlI^jf2JeTQ;T zZrXfZVYAz{?`&m!P5Gd)e8^NbXwo}8;I!2?<7*PxXFR@MkpXGqiO$VU()A&xsXUTT zDgbsneZ!$buV>b_GiZ+3HS4v17Z4H(yHRK{>TQ!+XlV{0;B8_+v-Q!4KuAgbS+LXKOhTEGq0tajrJHro7 zJHu!WmnZ6%0|8w}0ulG3h=go%=8j_w0W~^1_H>Iv4)yV?@sz~2LzU$Pr3d%pLzgT` zIgotj;veR8PBb7>2Lv+WBK@^_3q=ljoFI z71Kz&fXAXwGA|{rp?&=GSdA>cA*74xG_;Q;N@hVmu`w{^WOlof{?~LB_cXxD?v4*4 z+pevnQ#$JRn6aF^Tz01Gx_oLW5d1AyyQR`>>91(ZD1HOi3Ns>;K1vvF-b4@nLZHo! zsqV^H(YpxytB0Fe*+?N5k_`H}NfP=u)rC`^3*R1=P&9MUA8`L z7bU-l6qB{SF`@p&LP0^@!jQVxr>WeU>(+l31lCfg#vloCrT$e_+U@3Xn{y_lp?|HV za%GXIq+n3~w?J5ZzGQ8G8+t}GrIJ%HUtdTyu%3_NnX?;%ziL^l*QHME6tK^T>}v>R lyj;4F9&E~?^g;VB3~^&Wbz=8d>_BV@5Vw#BH#hA&@h|Nv!Jq&D literal 0 HcmV?d00001 diff --git a/QtCustomDialogEx/images/Image004.jpg b/QtCustomDialogEx/images/Image004.jpg new file mode 100644 index 0000000000000000000000000000000000000000..08aae9d5832c2012ad179b21ab2d5be2a0961ae5 GIT binary patch literal 877 zcmex=``2_j6xdp@o1cgOJMMZh|#U;coyG6VInuyV4pa*FVB^NNrR z{vTivP+(?MVqg+vWEN!ne}qAjfq{vckpT&?u`{!BZ~~?D1Q?hYnOK>a*;%2| zj7-cdf()!|LXL`t>`IA1XBs&bHU78B7+c{(#DI*K%*8O{P6!40}s$WOoGgU4E78!uhp)2d`eC#Vo}we zLkn(6Ww_ql>(9XF`GSr0=|`@0QYS9oD`MqY@OyLEZrit4B%R){Gwu2uu*Y+@r$ox? zwdGJ0cCc(Nqk17}SE#aSKnZKp~@wyuSe;tqKcjkL*VRLAj?0=I<1Q|3o0UFU`3?U<`J9wXk3pHl$VX-e>y-HTP&R+ZN z+t*|5(`IIQb6!p9XxewS^-5o!<$*8rzamyN5GvCKbFAJiBbGW1I0!0~5~!AIfeNn7;mh69CgFJ4gTk literal 0 HcmV?d00001 diff --git a/QtCustomDialogEx/images/Image005.png b/QtCustomDialogEx/images/Image005.png new file mode 100644 index 0000000000000000000000000000000000000000..686336c2e902d29c944cdea583f6d1f4ba0f897c GIT binary patch literal 773 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0V6+bK32_B+T^w+s&`{6VaF@`~ zP+wo~xKNMG^2(wa%M;^+V}jhHygU;keJVDcYP|BR{>=Nt2+za_-`XROlZy&c@^Z45 z9|Ee+UU4`+!qdsgAtWR?F3de8BOyM@AIOLcaWC6=yz$bHtcKS3Ft_ZLhZ7>b5;IbZ z=dMWzb5E|UDw@3t$cPVf⪴Xnw(r<*}jeSu2jjh596ABmo5*E`BSTvnCT$9 zF~SWfn7-^#Y^ZBudScG1BgyG;nJbTEFWm=JkPzUI810`qaei832hd5DmS)Kj&e2|; zKw~S9y{J0&GG)=ehD+aT&wK=mWUM?|f8h&|tULD+Xhr(+LqNM~&wZ*m{5*Bx-n1nL zi+0}1-*P#5;hy9LyZQ6lm4U$*ToU9L%)rRV#LUdX!pbPB$;>_B{Gt7l{M!!xyS!k> ziJLc{_P$uj$=-HimrKK;7iUVIuey1#_RfLYE#LkfYt4SYEW#Wv#sp-zqM_ zpBFZ`x!M_7E&F9>XJ~19_G3}!%*gD#I>jfQM;k6LRiAxydibI_8mlYY4YzGOSMIq? zdNynO#YdiLdCfkqzVy<|$XVNi-__I=R+iQ(-#K}Ecm11`6-y2% nmj$iXldOy_`g>in^6q{kbGyEIp&1K+5yIf<>gTe~DWM4ff^A@H literal 0 HcmV?d00001 diff --git a/QtCustomDialogEx/images/Image006.png b/QtCustomDialogEx/images/Image006.png new file mode 100644 index 0000000000000000000000000000000000000000..328ba50a7a7ee147f48557c8b307640eb18a8e22 GIT binary patch literal 1551 zcmXX_3piA17(R1hTy{)FDpa0WBDaWybt$TmTqawd+BDeYT1l-+k;-~<$&)cRta?^* zNp_VcLk!tOZR4(z%ebZ;U98K@nRDix{b%z$|2hA6-tYb1@BP2${5Jyq_fWMAv>*tg z()W5Zz;3L1G)Um>eK)fWf{2NMe!)JfPj64KAQrC1$2FE0rp8q+<6K;mw;Y4)H;|k= zPv&9}2PbfpYoFGWSulkS8=kENSt1W#Q;d;$IFyG&`51|Ui2cT|F89!BOUXoVP=uS%JhAZly`lmkH`2ZwOnqyz&vwGj9D z6J1dReBz)AQnkR;*$N^T2kpQ?R8o11fazR?0^1O9o3B#P;35RB5(omO79S(sT7-br zD>xxvWk%&Q3(&Cj#R!3gst{1Z$1LJ=43le#eE1up$wNR#(yb*zK0?f12BBQsIWj_} z&p~Oa{VFDKm4{PuKM}aNIv-c(DM`6YWY7_G`9EtG%A#*$=0p($hNZ3=@t{eez%lKl;_(E6%OkktUWAiOz z3m^-;wNA>y8#1G!fLxf27-%F)$<;;5dli_)GH+=TFqGdw%cxd6-qznY2 zvH9Ae#T+p#l*pn*2&Zf5Ru`P#4f{TXfzHteq;^Ce+k!9~k)ocZ8?RMok8YAP8)S*C zvdbL`&=(+O@8p6}dD=^bZw*}XMxHH(GsWPlE zy}kV$k>uG(64T4I39wR1VFLlvmy!WKk|NHKVqwae&va5;o@Z?9nIfOM8?lwPdSp41Z` zZqJIVCrB)fk|dw5HZ%RJPWrxjUVallb}`4E`(_z$PN*4l4^n3pJUu zZ(cs2lI!Y}#**l%$h=zpnJm*O>R!`mh`COqIismuLoivRd5?0CR55skmJ(PQz3 zkGQjD?&3|0^iv5O;AZvIT_@l>%flz_k2-2+*?!#NY9bjn^i?lmly!s@EV!H3 ztw|oBzftH8<*XEKvfggdFV#Ao;Fb69R-4drI^zkQp7N^H3jPc3Z>Za{tu?1 hKe)gh0mGS}w!aUA>ce^*@lSDf|Ec literal 0 HcmV?d00001 diff --git a/QtCustomDialogEx/images/Image007.png b/QtCustomDialogEx/images/Image007.png new file mode 100644 index 0000000000000000000000000000000000000000..9d0055157373c3a55696651e156d6837d0b0f722 GIT binary patch literal 538 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEdf3uu0Wcha1RI-fKmP~hQi$p z1-o5b9Ds-^e>+3|E(jY)vgU1KDBQ(Rw1+Kc14NKLXB|WSZjS6Va5bFSt3hh=cQY{j z2b;W`BWE>B?q;U^9Y8K)!7iqPoj@y?^S86)Z)3^Z%2cppyN~T+pfglTg8YIRmV8ag z__ipGnI-2FBRfalzl0oauEL}|CSLyH&+`~p{>aTrd(a(Qz`($$=;`7ZV$oZBIeL1N zf(Yva+sH=NvWadbIm=FaZu$5B|7>KP;^T0T4VPHVr_*0le;3};HtJ25kqL{2^YYWZfq!kV(S zv(_nb5=v&TZGvYB3U=>&;GpF?e@n*>A4WYjPxk9t(pHUnH9^l)_2y0wP3)MoF?^fw z?D>LMll9&CRK8ZexwWffPX3cuo1LG{pPT;bZ2jKdYR><6$ISh$*8E+6-{lRS|NpLj zZ<1ql;`wrU6U$TYm)Sqgzs!E*%b$Z^7#A-4`{O0^gyk!DFJbtxu6Kv8mc@q5MfcSA zE{(8T@!$UHlQP50``$%F_TN2sd-ckV_v9L8-ky8!^=JFOU*?(Rb)P1IBH7c`&t;uc GLK6U*>*hZI literal 0 HcmV?d00001 diff --git a/QtCustomDialogEx/main.cpp b/QtCustomDialogEx/main.cpp new file mode 100644 index 0000000..e6a3ade --- /dev/null +++ b/QtCustomDialogEx/main.cpp @@ -0,0 +1,11 @@ +#include "ExCustomMainWin.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + ExCustomMainWin w; + w.show(); + + return a.exec(); +} diff --git a/QtCustomDialogEx/qt.ico b/QtCustomDialogEx/qt.ico new file mode 100644 index 0000000000000000000000000000000000000000..0ee0568945377c30d5d973d89afcc31770cd8818 GIT binary patch literal 4286 zcmeHKdr(y86+io87ZyYwA_hySrjx{)Njo~7w3D=Go0O&*)2xbtP|_lTj{v^F6l<|4 z!TRE16coi*F_>DPiHV~$YSL&Lgk=|&m4~p)V}S)!47%0a{(A22URjA+|FAR3OzzI_ zp6@&7JHKBO?Lu5#%-ZBiRg$@WRi6TzUI$u#k!Uz4@+6%sBmDt|-5nU_e| z7fHeg@p7SVjknOZZ=`Vjy7MivgQDE}G#O0Oe_VLG8&NBA&`P!TV~z&n1pb#e?G?}cIT z&=`F2_fRJW4~F8#u}5(8_!tb9kHklFz0kAS7lZplFi;kZfgNhJq$t6h5IOG!{VQ~X z2S8Ikg_Bh8jEmPp%hXZkq`TBPS!M-yb_T3X;-}6Hkc0Gxn(s1;a2I2DF zQMg(b%I!v@XIn5j-}YnqC>qnhiyATZjC(_j`NC+@{_Pi}tBIyBD_$a)m&h4GCPW}OX$I{VzbSW->umrt_;?Pqz6}FObux$xM$Ce*qcgVDYBr!b^G2IH$T7-M9pWr$KL5339F zo}z&LQ50A4GT};|0`{%`=qwIL&%P)$WlzGtbj%TVcYHow2J@TWhi&JxXnQ-1;|HOu z1eh#6pNW=5zkM_;sXkHPDN*+Jc>vGiH2i4rS`h|XI zD+obbzCXG)`NFt>P!)G?KZ(=yJ2?s?X>55E&9|)}bZ^!&#|T*eqGf*>Ota;8pe{jy zx`aD*Vw($`gJqQxZF#=v*E(4YbQJn>d|$Nw zQHH8`In2olC+b-m6BT%WrW}W-%TdL7)F&}mFT%ia8Ws}THhMFMA9^>+QOV;k+9VE9 zO6?_m!(0Up&!ne5pG#T2>t$#!5aatexoYPsadE*A&L^mF^{-)Y90|wi`5IKsVQ#nG zJYR|0d18Du&x0?zH^^c5z0B>e7~iG(B@ZiPm?oVgEcIv~zs(B0?RX z9}Q`YRF`a8Gz!=D{1{iZhr;phSe$u7gX(!M+eL0;oX`2^aeN*>8;_-t$JWzd;<+uE zyOD7sPWk-V7%J&pCFZX|2j}0qoN$42Yh0poVX+G46cyX2!B+Yl?~xGP*v~nn@;>A| zO$${pEhhH$cJ`q&mr%>`Z~Kcp%yGB+C&>!kKW5Q>YdXhYuS7eqf!=%tKAx>WQ-&9s zmJPw2riLY7$2mm8UOd{F!`U=%RLoYQD_8DZdu4oOyUby6jc`@fuID_~6l-uJ_o#~Iht=`Vut!w3I zPT_Mj-Q_3xO1Q*a5|5R zkfGrmqMbSP?D!t8+f8UcsDqW)pCy~mj5+eJ_;~tzmaE_N$uh0b);FzCqdt+)!t0S&hcxBwX#Ng~Q>%HJb@7ISO9WuD-Ws zYw#eb%NkM8v`TBS-a4r_U zZwHP%j$Vr%1NIhJi=IR?uOS1U3nJHp;$lv~-b=aKZtEIvo_}xD@V;-(41#qXpTirK z=q>T%?|@)9j)vmqiAQjY;dr0F1>Oxo-wuCRwuHgDX*^n2kAZ%+3YJ`rlSksSxOt`e zaB0d3JYiYq+h<+Jd&dnU_pu>!0=oCS0Nb`FU@IDh?jl~7TYb>G%?CZjK78i}z*amC zUAw37-SZ-97Wl!sc8Ejb6QxuZ`K7v~YuONd%(^LTxixQeZe@xV5SUH(7$yHwU9E_`fj_S-voQd_h?I-zHrnpw?2gij z-{EgC0{=xY#Za*^hECprSzMPO*`&Ise3j1C#?pU`vAp+V`TP@Qj9B)BThF@M7+NdF zeV9*ulDwM1catZ?yUJY`?;tLlljN7h{yxmuB3Da>s;D`G&#eD}mJH?ThaFqwtIZ;> z_H5PDEm^7`+z-vm$p8Nl|69&)<_KWevy%75gMfQ0?xEpe)zGt&?Wg%a9&lRi!mwam F{Vzx7jH3Vm literal 0 HcmV?d00001 diff --git a/QtCustomDialogEx/resources.qrc b/QtCustomDialogEx/resources.qrc new file mode 100644 index 0000000..fd9c464 --- /dev/null +++ b/QtCustomDialogEx/resources.qrc @@ -0,0 +1,11 @@ + + + images/Image001.png + images/Image002.png + images/Image003.png + images/Image004.jpg + images/Image005.png + images/Image006.png + images/Image007.png + +