diff --git a/other/0snap/multobj2slot.jpg b/other/0snap/multobj2slot.jpg new file mode 100644 index 0000000..584aeaa Binary files /dev/null and b/other/0snap/multobj2slot.jpg differ diff --git a/other/dbpage/main.cpp b/other/dbpage/main.cpp index e666386..3b0a430 100644 --- a/other/dbpage/main.cpp +++ b/other/dbpage/main.cpp @@ -12,7 +12,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/other/echartgauge/main.cpp b/other/echartgauge/main.cpp index 4b2a476..cbb2ba0 100644 --- a/other/echartgauge/main.cpp +++ b/other/echartgauge/main.cpp @@ -9,7 +9,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/other/lineeditnext/main.cpp b/other/lineeditnext/main.cpp index 92dc79f..e35d4b0 100644 --- a/other/lineeditnext/main.cpp +++ b/other/lineeditnext/main.cpp @@ -9,7 +9,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/other/mouseline/main.cpp b/other/mouseline/main.cpp index d88544c..65db2c8 100644 --- a/other/mouseline/main.cpp +++ b/other/mouseline/main.cpp @@ -9,7 +9,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/other/multobj2slot/main.cpp b/other/multobj2slot/main.cpp new file mode 100644 index 0000000..077b3ec --- /dev/null +++ b/other/multobj2slot/main.cpp @@ -0,0 +1,31 @@ +#pragma execution_character_set("utf-8") + +#include "widget.h" +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setFont(QFont("Microsoft Yahei", 9)); + +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if _MSC_VER + QTextCodec *codec = QTextCodec::codecForName("gbk"); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); +#endif + QTextCodec::setCodecForLocale(codec); + QTextCodec::setCodecForCStrings(codec); + QTextCodec::setCodecForTr(codec); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); + QTextCodec::setCodecForLocale(codec); +#endif + + Widget w; + w.setWindowTitle("多对象共用槽 (QQ: 517216493 WX: feiyangqingyun)"); + w.show(); + + return a.exec(); +} diff --git a/other/multobj2slot/multobj2slot.pro b/other/multobj2slot/multobj2slot.pro new file mode 100644 index 0000000..0502909 --- /dev/null +++ b/other/multobj2slot/multobj2slot.pro @@ -0,0 +1,13 @@ +QT += core gui +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets +greaterThan(QT_MAJOR_VERSION, 5): QT += core5compat + +TARGET = mouseline +TEMPLATE = app +DESTDIR = $$PWD/../bin +CONFIG += warn_off + +SOURCES += main.cpp +SOURCES += widget.cpp +HEADERS += widget.h +FORMS += widget.ui diff --git a/other/multobj2slot/widget.cpp b/other/multobj2slot/widget.cpp new file mode 100644 index 0000000..88873c6 --- /dev/null +++ b/other/multobj2slot/widget.cpp @@ -0,0 +1,70 @@ +#include "widget.h" +#include "ui_widget.h" +#include "qpushbutton.h" +#include "qsignalmapper.h" +#include "qdatetime.h" +#include "qdebug.h" + +#define TIMEMS QTime::currentTime().toString("hh:mm:ss zzz") +Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) +{ + ui->setupUi(this); + this->initBtn(); +} + +Widget::~Widget() +{ + delete ui; +} + +void Widget::initBtn() +{ + QSignalMapper *signMap = new QSignalMapper(this); + connect(signMap, SIGNAL(mapped(QString)), this, SLOT(doBtn(QString))); + + int x = 5, y = -25; + for (int i = 0; i < 1000; ++i) { + //动态设置坐标 + x += 80; + if (i % 10 == 0) { + x = 5; + y += 30; + } + + QPushButton *btn = new QPushButton(this); + btn->setObjectName(QString("btn_%1").arg(i + 1)); + btn->setText(QString("text_%1").arg(i + 1)); + btn->setGeometry(x, y, 75, 25); + + //方法0: 每个按钮关联到一个独立的槽,代码量大不可取放弃 + //方式1: 绑定到一个槽函数 + connect(btn, SIGNAL(clicked(bool)), this, SLOT(doBtn())); + //方式2: 通过 QSignalMapper 转发信号 + connect(btn, SIGNAL(clicked(bool)), signMap, SLOT(map())); + signMap->setMapping(btn, btn->objectName()); + //方法3: 用 lambda 表达式 +#if (QT_VERSION >= QT_VERSION_CHECK(5,6,0)) + connect(btn, &QPushButton::clicked, [btn] { + QString name = btn->objectName(); + qDebug() << TIMEMS << "doBtn3" << name; + }); + + connect(btn, &QPushButton::clicked, [=]() { + QString name = btn->objectName(); + qDebug() << TIMEMS << "doBtn3" << name; + }); +#endif + } +} + +void Widget::doBtn() +{ + QPushButton *btn = (QPushButton *)sender(); + QString name = btn->objectName(); + qDebug() << TIMEMS << "doBtn1" << name; +} + +void Widget::doBtn(const QString &name) +{ + qDebug() << TIMEMS << "doBtn2" << name; +} diff --git a/other/multobj2slot/widget.h b/other/multobj2slot/widget.h new file mode 100644 index 0000000..9abf0f6 --- /dev/null +++ b/other/multobj2slot/widget.h @@ -0,0 +1,27 @@ +#ifndef WIDGET_H +#define WIDGET_H + +#include + +namespace Ui { +class Widget; +} + +class Widget : public QWidget +{ + Q_OBJECT + +public: + explicit Widget(QWidget *parent = 0); + ~Widget(); + +private: + Ui::Widget *ui; + +private slots: + void initBtn(); + void doBtn(); + void doBtn(const QString &name); +}; + +#endif // WIDGET_H diff --git a/other/multobj2slot/widget.ui b/other/multobj2slot/widget.ui new file mode 100644 index 0000000..3227497 --- /dev/null +++ b/other/multobj2slot/widget.ui @@ -0,0 +1,20 @@ + + + Widget + + + + 0 + 0 + 800 + 600 + + + + + + + + + + diff --git a/other/other.pro b/other/other.pro index 97a141c..16069e4 100644 --- a/other/other.pro +++ b/other/other.pro @@ -6,3 +6,4 @@ SUBDIRS += mouseline SUBDIRS += ntpclient SUBDIRS += trayicon SUBDIRS += echartgauge +SUBDIRS += multobj2slot diff --git a/third/designer/main.cpp b/third/designer/main.cpp index 80dfb71..e62a417 100644 --- a/third/designer/main.cpp +++ b/third/designer/main.cpp @@ -55,7 +55,7 @@ int main(int argc, char *argv[]) QDesigner app(argc, argv); app.setQuitOnLastWindowClosed(false); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/third/qcustomplotdemo/readme.md b/third/qcustomplotdemo/readme.md index e3c4486..d540e99 100644 --- a/third/qcustomplotdemo/readme.md +++ b/third/qcustomplotdemo/readme.md @@ -1,4 +1,4 @@ -按照国际惯例,先吹吹牛,QCustomPlot这个开源图表组件,作者绝对是全宇宙Qt领域的天花板,设计的极其巧妙和精美,各种情况都考虑到了,将每个功能细分到不同的类,又极具拓展性,当时阅读完代码的时候,我直接跪了8个小时,膝盖现在还是红的。 +按照国际惯例,先吹吹牛,QCustomPlot这个开源图表组件,作者绝对是全宇宙Qt领域的天花板,设计的极其巧妙和精美,各种情况都考虑到了,将每个功能细分到不同的类,每个类负责管理自己的绘制和各种属性参数等,虽然代码量不多但是又极具拓展性,当时阅读完代码的时候,我直接跪了8个小时,膝盖现在还是红的。作者的实力至少是八星斗圣级别,只要一个巴掌就能把斗宗干趴下。 ## 一、功能特点 1. 同时支持多个版本,比如1.3、2.0、2.1。 2. 官方提供的最新的2.1不支持Qt4,也不支持Qt6.2,所以这里通过define判断Qt套件的版本来加载不同的版本。 diff --git a/third/third.pro b/third/third.pro index df7bfb5..d968c73 100644 --- a/third/third.pro +++ b/third/third.pro @@ -17,7 +17,6 @@ greaterThan(QT_MAJOR_VERSION, 5) { SUBDIRS -= hotkey SUBDIRS -= shortcut SUBDIRS -= qwtdemo -SUBDIRS -= qcustomplotdemo } win32 { diff --git a/tool/countcode/main.cpp b/tool/countcode/main.cpp index 827f7c0..5767f4a 100644 --- a/tool/countcode/main.cpp +++ b/tool/countcode/main.cpp @@ -9,7 +9,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/tool/emailtool/main.cpp b/tool/emailtool/main.cpp index 42b36cf..7d04704 100644 --- a/tool/emailtool/main.cpp +++ b/tool/emailtool/main.cpp @@ -9,7 +9,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/tool/keydemo/main.cpp b/tool/keydemo/main.cpp index dda6fa1..85d82da 100644 --- a/tool/keydemo/main.cpp +++ b/tool/keydemo/main.cpp @@ -10,7 +10,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/tool/keytool/main.cpp b/tool/keytool/main.cpp index 44b3dc7..f463491 100644 --- a/tool/keytool/main.cpp +++ b/tool/keytool/main.cpp @@ -9,7 +9,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/tool/livedemo/main.cpp b/tool/livedemo/main.cpp index 7e9e6f1..5b0a0b4 100644 --- a/tool/livedemo/main.cpp +++ b/tool/livedemo/main.cpp @@ -10,7 +10,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/tool/livetool/main.cpp b/tool/livetool/main.cpp index 685a7a2..5254301 100644 --- a/tool/livetool/main.cpp +++ b/tool/livetool/main.cpp @@ -11,7 +11,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setWindowIcon(QIcon(":/main.ico")); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/tool/pngtool/main.cpp b/tool/pngtool/main.cpp index 0901d4f..e3cd0c4 100644 --- a/tool/pngtool/main.cpp +++ b/tool/pngtool/main.cpp @@ -9,7 +9,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/ui/flatui/flatui.cpp b/ui/flatui/flatui.cpp index 923b3d4..78a76fb 100644 --- a/ui/flatui/flatui.cpp +++ b/ui/flatui/flatui.cpp @@ -53,7 +53,7 @@ QString FlatUI::setProgressQss(QProgressBar *bar, int barHeight, { QStringList list; - list.append(QString("QProgressBar{font:%1pt;background:%2;max-height:%3px;border-radius:%4px;text-align:center;border:1px solid %2;}") + list.append(QString("QProgressBar{font:%1px;background:%2;max-height:%3px;border-radius:%4px;text-align:center;border:1px solid %2;}") .arg(fontSize).arg(normalColor).arg(barHeight).arg(barRadius)); list.append(QString("QProgressBar:chunk{border-radius:%2px;background-color:%1;}") .arg(chunkColor).arg(barRadius)); diff --git a/ui/flatui/flatui.h b/ui/flatui/flatui.h index 5c44910..bfcb64c 100644 --- a/ui/flatui/flatui.h +++ b/ui/flatui/flatui.h @@ -53,7 +53,7 @@ public: static QString setProgressQss(QProgressBar *bar, int barHeight = 8, //进度条高度 int barRadius = 5, //进度条半径 - int fontSize = 9, //文字字号 + int fontSize = 12, //文字字号 const QString &normalColor = "#E8EDF2", //正常颜色 const QString &chunkColor = "#E74C3C"); //进度颜色 diff --git a/ui/styledemo/frmmain.cpp b/ui/styledemo/frmmain.cpp index 9aa4385..71e1fbb 100644 --- a/ui/styledemo/frmmain.cpp +++ b/ui/styledemo/frmmain.cpp @@ -24,9 +24,7 @@ void frmMain::initForm() int rowHeight = 23; ui->tableWidget->horizontalHeader()->setFixedHeight(rowHeight); - for (int i = 0; i < 5; ++i) { - ui->tableWidget->setRowHeight(i, rowHeight); - } + ui->tableWidget->verticalHeader()->setDefaultSectionSize(rowHeight); //加载鼠标右键菜单翻译文件 QTranslator *translator1 = new QTranslator(qApp); diff --git a/ui/styledemo/frmmain.ui b/ui/styledemo/frmmain.ui index a63ec76..0c58d04 100644 --- a/ui/styledemo/frmmain.ui +++ b/ui/styledemo/frmmain.ui @@ -6,8 +6,8 @@ 0 0 - 817 - 616 + 820 + 632 @@ -310,7 +310,7 @@ - 弹出新窗体 + 新窗体 @@ -427,7 +427,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'SimSun'; font-size:9.07563pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:9.07563pt;"><br /></p></body></html> @@ -545,9 +545,6 @@ p, li { white-space: pre-wrap; } - - true - 20 @@ -563,9 +560,6 @@ p, li { white-space: pre-wrap; } false - - true - 1 @@ -765,7 +759,7 @@ p, li { white-space: pre-wrap; } 0 0 - 817 + 820 26 @@ -892,12 +886,28 @@ p, li { white-space: pre-wrap; } setValue(int) - 369 - 235 + 424 + 265 - 468 - 235 + 547 + 260 + + + + + verticalSlider + valueChanged(int) + progressBar2 + setValue(int) + + + 736 + 101 + + + 760 + 115 diff --git a/ui/styledemo/main.cpp b/ui/styledemo/main.cpp index 2d612dd..390c61b 100644 --- a/ui/styledemo/main.cpp +++ b/ui/styledemo/main.cpp @@ -5,9 +5,13 @@ int main(int argc, char *argv[]) { //设置不应用操作系统设置比如字体 QApplication::setDesktopSettingsAware(false); -#if (QT_VERSION >= QT_VERSION_CHECK(5,14,0)) - QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::Floor); +#if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) + QApplication::setAttribute(Qt::AA_Use96Dpi); #endif +#if (QT_VERSION >= QT_VERSION_CHECK(5,14,0)) + QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::Floor); +#endif + QApplication a(argc, argv); //a.setFont(QFont("Microsoft Yahei", 9)); QFont font; diff --git a/video/playffmpeg/main.cpp b/video/playffmpeg/main.cpp index a5e8fcc..d22ee79 100644 --- a/video/playffmpeg/main.cpp +++ b/video/playffmpeg/main.cpp @@ -11,7 +11,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/video/plaympv/main.cpp b/video/plaympv/main.cpp index cf29f5d..c29e982 100644 --- a/video/plaympv/main.cpp +++ b/video/plaympv/main.cpp @@ -8,7 +8,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else diff --git a/video/playvlc/main.cpp b/video/playvlc/main.cpp index c301696..840229a 100644 --- a/video/playvlc/main.cpp +++ b/video/playvlc/main.cpp @@ -8,7 +8,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); -#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("gbk"); #else