hikyuu 2.6.5__py3-none-win_amd64.whl → 2.6.7__py3-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. hikyuu/__init__.py +16 -0
  2. hikyuu/__init__.pyi +484 -474
  3. hikyuu/analysis/__init__.pyi +466 -445
  4. hikyuu/analysis/analysis.pyi +467 -446
  5. hikyuu/core.pyi +468 -447
  6. hikyuu/cpp/boost_date_time-mt.dll +0 -0
  7. hikyuu/cpp/boost_serialization-mt.dll +0 -0
  8. hikyuu/cpp/boost_wserialization-mt.dll +0 -0
  9. hikyuu/cpp/core310.pyd +0 -0
  10. hikyuu/cpp/core310.pyi +1070 -878
  11. hikyuu/cpp/core311.pyd +0 -0
  12. hikyuu/cpp/core311.pyi +1070 -878
  13. hikyuu/cpp/core312.pyd +0 -0
  14. hikyuu/cpp/core312.pyi +1070 -878
  15. hikyuu/cpp/core313.pyd +0 -0
  16. hikyuu/cpp/core313.pyi +1070 -876
  17. hikyuu/cpp/core39.pyd +0 -0
  18. hikyuu/cpp/core39.pyi +1070 -878
  19. hikyuu/cpp/hikyuu.dll +0 -0
  20. hikyuu/cpp/hikyuu.lib +0 -0
  21. hikyuu/cpp/i18n/__init__.py +0 -0
  22. hikyuu/cpp/i18n/zh_CN/__init__.py +0 -0
  23. hikyuu/cpp/i18n/zh_CN/hikyuu.mo +0 -0
  24. hikyuu/cpp/sqlite3.dll +0 -0
  25. hikyuu/data/clickhouse_upgrade/__init__.py +1 -0
  26. hikyuu/data/clickhouse_upgrade/createdb.sql +1085 -0
  27. hikyuu/data/common_clickhouse.py +465 -0
  28. hikyuu/data/em_block_to_clickhouse.py +120 -0
  29. hikyuu/data/hku_config_template.py +58 -3
  30. hikyuu/data/pytdx_finance_to_clickhouse.py +107 -0
  31. hikyuu/data/pytdx_to_clickhouse.py +841 -0
  32. hikyuu/data/pytdx_to_mysql.py +4 -4
  33. hikyuu/data/pytdx_weight_to_clickhouse.py +191 -0
  34. hikyuu/data/tdx_to_clickhouse.py +448 -0
  35. hikyuu/data/tdx_to_h5.py +1 -1
  36. hikyuu/data/zh_bond10_to_clickhouse.py +49 -0
  37. hikyuu/draw/__init__.pyi +1 -1
  38. hikyuu/draw/drawplot/bokeh_draw.pyi +479 -471
  39. hikyuu/draw/drawplot/echarts_draw.py +9 -8
  40. hikyuu/draw/drawplot/echarts_draw.pyi +479 -471
  41. hikyuu/draw/drawplot/matplotlib_draw.py +3 -3
  42. hikyuu/draw/drawplot/matplotlib_draw.pyi +479 -471
  43. hikyuu/draw/elder.pyi +6 -6
  44. hikyuu/draw/kaufman.py +1 -1
  45. hikyuu/draw/kaufman.pyi +10 -10
  46. hikyuu/draw/volume.pyi +5 -5
  47. hikyuu/examples/notebook/000-Index.ipynb +1 -1
  48. hikyuu/examples/notebook/001-overview.ipynb +78 -63
  49. hikyuu/examples/notebook/002-HowToGetStock.ipynb +259 -40
  50. hikyuu/examples/notebook/003-HowToGetKDataAndDraw.ipynb +49 -41
  51. hikyuu/examples/notebook/004-IndicatorOverview.ipynb +29 -29
  52. hikyuu/examples/notebook/005-Drawplot.ipynb +66 -37
  53. hikyuu/examples/notebook/006-TradeManager.ipynb +808 -61
  54. hikyuu/examples/notebook/007-SystemDetails.ipynb +23 -23
  55. hikyuu/examples/notebook/009-RealData.ipynb +3 -3
  56. hikyuu/examples/notebook/010-Portfolio.ipynb +761 -122
  57. hikyuu/extend.py +15 -100
  58. hikyuu/extend.pyi +478 -493
  59. hikyuu/fetcher/stock/zh_stock_a_pytdx.py +9 -20
  60. hikyuu/fetcher/stock/zh_stock_a_qmt.py +4 -5
  61. hikyuu/fetcher/stock/zh_stock_a_sina_qq.py +16 -60
  62. hikyuu/flat/Spot.py +96 -200
  63. hikyuu/gui/HikyuuTDX.py +134 -7
  64. hikyuu/gui/data/ImportBlockInfoTask.py +11 -0
  65. hikyuu/gui/data/ImportHistoryFinanceTask.py +15 -1
  66. hikyuu/gui/data/ImportPytdxTimeToH5Task.py +11 -1
  67. hikyuu/gui/data/ImportPytdxToH5Task.py +13 -1
  68. hikyuu/gui/data/ImportPytdxTransToH5Task.py +11 -1
  69. hikyuu/gui/data/ImportTdxToH5Task.py +13 -1
  70. hikyuu/gui/data/ImportWeightToSqliteTask.py +14 -1
  71. hikyuu/gui/data/ImportZhBond10Task.py +11 -0
  72. hikyuu/gui/data/MainWindow.py +210 -135
  73. hikyuu/gui/data/UsePytdxImportToH5Thread.py +45 -26
  74. hikyuu/gui/data/UseTdxImportToH5Thread.py +19 -1
  75. hikyuu/gui/dataserver.py +12 -4
  76. hikyuu/gui/spot_server.py +30 -40
  77. hikyuu/gui/start_qmt.py +20 -3
  78. hikyuu/hub.pyi +6 -6
  79. hikyuu/include/hikyuu/DataType.h +2 -0
  80. hikyuu/include/hikyuu/KQuery.h +22 -28
  81. hikyuu/include/hikyuu/MarketInfo.h +1 -1
  82. hikyuu/include/hikyuu/Stock.h +15 -3
  83. hikyuu/include/hikyuu/StockManager.h +12 -3
  84. hikyuu/include/hikyuu/StockTypeInfo.h +6 -0
  85. hikyuu/include/hikyuu/TransRecord.h +2 -8
  86. hikyuu/include/hikyuu/data_driver/kdata/mysql/KRecordTable.h +1 -0
  87. hikyuu/include/hikyuu/doc.h +4 -0
  88. hikyuu/include/hikyuu/global/GlobalSpotAgent.h +1 -1
  89. hikyuu/include/hikyuu/global/SpotRecord.h +15 -31
  90. hikyuu/include/hikyuu/global/agent/spot_generated.h +48 -232
  91. hikyuu/include/hikyuu/global/schedule/scheduler.h +1 -1
  92. hikyuu/include/hikyuu/indicator/Indicator.h +37 -0
  93. hikyuu/include/hikyuu/lang.h +27 -0
  94. hikyuu/include/hikyuu/plugin/KDataToHdf5Importer.h +9 -1
  95. hikyuu/include/hikyuu/plugin/dataserver.h +26 -1
  96. hikyuu/include/hikyuu/plugin/device.h +2 -1
  97. hikyuu/include/hikyuu/plugin/hkuextra.h +56 -0
  98. hikyuu/include/hikyuu/plugin/interface/DataDriverPluginInterface.h +27 -0
  99. hikyuu/include/hikyuu/plugin/interface/DataServerPluginInterface.h +2 -1
  100. hikyuu/include/hikyuu/plugin/interface/DevicePluginInterface.h +1 -1
  101. hikyuu/include/hikyuu/plugin/interface/HkuExtraPluginInterface.h +38 -0
  102. hikyuu/include/hikyuu/plugin/interface/ImportKDataToHdf5PluginInterface.h +13 -1
  103. hikyuu/include/hikyuu/plugin/interface/plugins.h +4 -0
  104. hikyuu/include/hikyuu/python/pybind_utils.h +9 -0
  105. hikyuu/include/hikyuu/strategy/Strategy.h +0 -9
  106. hikyuu/include/hikyuu/trade_manage/TradeRecord.h +1 -1
  107. hikyuu/include/hikyuu/utilities/config.h +0 -2
  108. hikyuu/include/hikyuu/utilities/os.h +9 -0
  109. hikyuu/include/hikyuu/utilities/plugin/PluginLoader.h +2 -1
  110. hikyuu/include/hikyuu/version.h +4 -4
  111. hikyuu/include/hikyuu/view/MarketView.h +59 -0
  112. hikyuu/indicator/__init__.py +0 -1
  113. hikyuu/indicator/indicator.py +14 -53
  114. hikyuu/plugin/backtest.dll +0 -0
  115. hikyuu/plugin/clickhousedriver.dll +0 -0
  116. hikyuu/plugin/dataserver.dll +0 -0
  117. hikyuu/plugin/device.dll +0 -0
  118. hikyuu/plugin/extind.dll +0 -0
  119. hikyuu/plugin/hkuextra.dll +0 -0
  120. hikyuu/plugin/import2hdf5.dll +0 -0
  121. hikyuu/plugin/tmreport.dll +0 -0
  122. hikyuu/test/test_init.py +59 -0
  123. hikyuu/test/test_real_tdx_import.py +336 -0
  124. hikyuu/test/test_tdx_import.py +315 -0
  125. hikyuu/test/test_tdx_real_data_import.py +281 -0
  126. hikyuu/trade_manage/__init__.pyi +479 -471
  127. hikyuu/trade_manage/trade.py +4 -65
  128. hikyuu/trade_manage/trade.pyi +479 -483
  129. hikyuu/trade_sys/__init__.py +11 -0
  130. hikyuu/util/__init__.py +1 -0
  131. hikyuu/util/__init__.pyi +4 -4
  132. hikyuu/util/check.py +8 -0
  133. hikyuu/util/check.pyi +5 -1
  134. hikyuu/util/singleton.pyi +1 -1
  135. {hikyuu-2.6.5.dist-info → hikyuu-2.6.7.dist-info}/METADATA +7 -5
  136. {hikyuu-2.6.5.dist-info → hikyuu-2.6.7.dist-info}/RECORD +142 -124
  137. {hikyuu-2.6.5.dist-info → hikyuu-2.6.7.dist-info}/top_level.txt +4 -3
  138. hikyuu/include/hikyuu/global/agent/hikyuu/flat/__init__.py +0 -1
  139. hikyuu/include/hikyuu/utilities/mo/__init__.py +0 -1
  140. hikyuu/include/hikyuu/utilities/mo/mo.h +0 -48
  141. hikyuu/indicator/talib_wrap.py +0 -1273
  142. /hikyuu/include/hikyuu/utilities/{mo/moFileReader.h → moFileReader.h} +0 -0
  143. /hikyuu/include/hikyuu/{global/agent/hikyuu → view}/__init__.py +0 -0
  144. {hikyuu-2.6.5.dist-info → hikyuu-2.6.7.dist-info}/LICENSE +0 -0
  145. {hikyuu-2.6.5.dist-info → hikyuu-2.6.7.dist-info}/WHEEL +0 -0
  146. {hikyuu-2.6.5.dist-info → hikyuu-2.6.7.dist-info}/entry_points.txt +0 -0
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Form implementation generated from reading ui file 'MainWindow.ui'
4
4
  #
5
- # Created by: PyQt5 UI code generator 5.15.11
5
+ # Created by: PyQt5 UI code generator 5.15.10
6
6
  #
7
7
  # WARNING: Any manual changes made to this file will be lost when pyuic5 is
8
8
  # run again. Do not edit this file unless you know what you are doing.
@@ -14,7 +14,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
14
14
  class Ui_MainWindow(object):
15
15
  def setupUi(self, MainWindow):
16
16
  MainWindow.setObjectName("MainWindow")
17
- MainWindow.resize(1178, 746)
17
+ MainWindow.resize(1178, 719)
18
18
  self.centralwidget = QtWidgets.QWidget(MainWindow)
19
19
  self.centralwidget.setObjectName("centralwidget")
20
20
  self.horizontalLayout_12 = QtWidgets.QHBoxLayout(self.centralwidget)
@@ -63,8 +63,6 @@ class Ui_MainWindow(object):
63
63
  spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
64
64
  self.horizontalLayout.addItem(spacerItem)
65
65
  self.verticalLayout_12.addLayout(self.horizontalLayout)
66
- spacerItem1 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
67
- self.verticalLayout_12.addItem(spacerItem1)
68
66
  self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
69
67
  self.horizontalLayout_5.setContentsMargins(10, 0, -1, -1)
70
68
  self.horizontalLayout_5.setObjectName("horizontalLayout_5")
@@ -103,8 +101,6 @@ class Ui_MainWindow(object):
103
101
  self.horizontalLayout_24.addWidget(self.qmt_radioButton)
104
102
  self.verticalLayout_12.addLayout(self.horizontalLayout_24)
105
103
  self.verticalLayout_13.addWidget(self.groupBox_2)
106
- spacerItem2 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
107
- self.verticalLayout_13.addItem(spacerItem2)
108
104
  self.groupBox_7 = QtWidgets.QGroupBox(self.tab_4)
109
105
  self.groupBox_7.setObjectName("groupBox_7")
110
106
  self.verticalLayout_11 = QtWidgets.QVBoxLayout(self.groupBox_7)
@@ -135,8 +131,8 @@ class Ui_MainWindow(object):
135
131
  self.import_future_checkBox.setEnabled(False)
136
132
  self.import_future_checkBox.setObjectName("import_future_checkBox")
137
133
  self.horizontalLayout_3.addWidget(self.import_future_checkBox)
138
- spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
139
- self.horizontalLayout_3.addItem(spacerItem3)
134
+ spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
135
+ self.horizontalLayout_3.addItem(spacerItem1)
140
136
  self.verticalLayout_11.addLayout(self.horizontalLayout_3)
141
137
  self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
142
138
  self.horizontalLayout_2.setContentsMargins(10, -1, -1, -1)
@@ -158,11 +154,9 @@ class Ui_MainWindow(object):
158
154
  self.import_time_checkBox.setEnabled(True)
159
155
  self.import_time_checkBox.setObjectName("import_time_checkBox")
160
156
  self.horizontalLayout_2.addWidget(self.import_time_checkBox)
161
- spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
162
- self.horizontalLayout_2.addItem(spacerItem4)
157
+ spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
158
+ self.horizontalLayout_2.addItem(spacerItem2)
163
159
  self.verticalLayout_11.addLayout(self.horizontalLayout_2)
164
- spacerItem5 = QtWidgets.QSpacerItem(20, 15, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
165
- self.verticalLayout_11.addItem(spacerItem5)
166
160
  self.line = QtWidgets.QFrame(self.groupBox_7)
167
161
  self.line.setFrameShape(QtWidgets.QFrame.HLine)
168
162
  self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
@@ -178,7 +172,7 @@ class Ui_MainWindow(object):
178
172
  self.label_6.setObjectName("label_6")
179
173
  self.gridLayout_4.addWidget(self.label_6, 3, 0, 1, 1)
180
174
  self.min5_start_dateEdit = QtWidgets.QDateEdit(self.groupBox_7)
181
- self.min5_start_dateEdit.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(1989, 12, 24), QtCore.QTime(16, 0, 0)))
175
+ self.min5_start_dateEdit.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(1989, 12, 22), QtCore.QTime(0, 0, 0)))
182
176
  self.min5_start_dateEdit.setCalendarPopup(True)
183
177
  self.min5_start_dateEdit.setObjectName("min5_start_dateEdit")
184
178
  self.gridLayout_4.addWidget(self.min5_start_dateEdit, 1, 1, 1, 1)
@@ -200,7 +194,7 @@ class Ui_MainWindow(object):
200
194
  self.trans_start_dateEdit.setObjectName("trans_start_dateEdit")
201
195
  self.gridLayout_4.addWidget(self.trans_start_dateEdit, 3, 1, 1, 1)
202
196
  self.day_start_dateEdit = QtWidgets.QDateEdit(self.groupBox_7)
203
- self.day_start_dateEdit.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(1989, 12, 24), QtCore.QTime(16, 0, 0)))
197
+ self.day_start_dateEdit.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(1989, 12, 22), QtCore.QTime(0, 0, 0)))
204
198
  self.day_start_dateEdit.setCalendarPopup(True)
205
199
  self.day_start_dateEdit.setObjectName("day_start_dateEdit")
206
200
  self.gridLayout_4.addWidget(self.day_start_dateEdit, 0, 1, 1, 1)
@@ -208,17 +202,17 @@ class Ui_MainWindow(object):
208
202
  self.time_start_dateEdit.setCalendarPopup(True)
209
203
  self.time_start_dateEdit.setObjectName("time_start_dateEdit")
210
204
  self.gridLayout_4.addWidget(self.time_start_dateEdit, 4, 1, 1, 1)
211
- spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
212
- self.gridLayout_4.addItem(spacerItem6, 1, 2, 1, 1)
205
+ spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
206
+ self.gridLayout_4.addItem(spacerItem3, 1, 2, 1, 1)
213
207
  self.verticalLayout_11.addLayout(self.gridLayout_4)
214
- spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
215
- self.verticalLayout_11.addItem(spacerItem7)
208
+ spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
209
+ self.verticalLayout_11.addItem(spacerItem4)
216
210
  self.verticalLayout_13.addWidget(self.groupBox_7)
217
211
  self.tabWidget.addTab(self.tab_4, "")
218
212
  self.tab_3 = QtWidgets.QWidget()
219
213
  self.tab_3.setObjectName("tab_3")
220
- self.verticalLayout_9 = QtWidgets.QVBoxLayout(self.tab_3)
221
- self.verticalLayout_9.setObjectName("verticalLayout_9")
214
+ self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.tab_3)
215
+ self.verticalLayout_8.setObjectName("verticalLayout_8")
222
216
  self.groupBox_4 = QtWidgets.QGroupBox(self.tab_3)
223
217
  sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
224
218
  sizePolicy.setHorizontalStretch(0)
@@ -238,12 +232,13 @@ class Ui_MainWindow(object):
238
232
  self.enable_mysql_radioButton = QtWidgets.QRadioButton(self.groupBox_4)
239
233
  self.enable_mysql_radioButton.setObjectName("enable_mysql_radioButton")
240
234
  self.horizontalLayout_19.addWidget(self.enable_mysql_radioButton)
241
- spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
242
- self.horizontalLayout_19.addItem(spacerItem8)
235
+ self.enable_clickhouse_radioButton = QtWidgets.QRadioButton(self.groupBox_4)
236
+ self.enable_clickhouse_radioButton.setObjectName("enable_clickhouse_radioButton")
237
+ self.horizontalLayout_19.addWidget(self.enable_clickhouse_radioButton)
238
+ spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
239
+ self.horizontalLayout_19.addItem(spacerItem5)
243
240
  self.verticalLayout_14.addLayout(self.horizontalLayout_19)
244
- self.verticalLayout_9.addWidget(self.groupBox_4)
245
- spacerItem9 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
246
- self.verticalLayout_9.addItem(spacerItem9)
241
+ self.verticalLayout_8.addWidget(self.groupBox_4)
247
242
  self.groupBox_3 = QtWidgets.QGroupBox(self.tab_3)
248
243
  sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
249
244
  sizePolicy.setHorizontalStretch(0)
@@ -267,15 +262,13 @@ class Ui_MainWindow(object):
267
262
  self.label.setObjectName("label")
268
263
  self.gridLayout_3.addWidget(self.label, 0, 0, 1, 1)
269
264
  self.verticalLayout_10.addLayout(self.gridLayout_3)
270
- self.verticalLayout_9.addWidget(self.groupBox_3)
271
- spacerItem10 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
272
- self.verticalLayout_9.addItem(spacerItem10)
265
+ self.verticalLayout_8.addWidget(self.groupBox_3)
273
266
  self.groupBox = QtWidgets.QGroupBox(self.tab_3)
274
267
  self.groupBox.setFlat(False)
275
268
  self.groupBox.setCheckable(False)
276
269
  self.groupBox.setObjectName("groupBox")
277
- self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.groupBox)
278
- self.verticalLayout_8.setObjectName("verticalLayout_8")
270
+ self.verticalLayout_9 = QtWidgets.QVBoxLayout(self.groupBox)
271
+ self.verticalLayout_9.setObjectName("verticalLayout_9")
279
272
  self.gridLayout_5 = QtWidgets.QGridLayout()
280
273
  self.gridLayout_5.setContentsMargins(10, 10, -1, 10)
281
274
  self.gridLayout_5.setObjectName("gridLayout_5")
@@ -315,17 +308,68 @@ class Ui_MainWindow(object):
315
308
  self.mysql_pwd_lineEdit = QtWidgets.QLineEdit(self.groupBox)
316
309
  self.mysql_pwd_lineEdit.setObjectName("mysql_pwd_lineEdit")
317
310
  self.gridLayout_5.addWidget(self.mysql_pwd_lineEdit, 4, 1, 1, 1)
318
- self.verticalLayout_8.addLayout(self.gridLayout_5)
319
- self.verticalLayout_9.addWidget(self.groupBox)
320
- spacerItem11 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
321
- self.verticalLayout_9.addItem(spacerItem11)
311
+ self.verticalLayout_9.addLayout(self.gridLayout_5)
312
+ self.verticalLayout_8.addWidget(self.groupBox)
313
+ self.groupBox_8 = QtWidgets.QGroupBox(self.tab_3)
314
+ self.groupBox_8.setObjectName("groupBox_8")
315
+ self.verticalLayout_19 = QtWidgets.QVBoxLayout(self.groupBox_8)
316
+ self.verticalLayout_19.setObjectName("verticalLayout_19")
317
+ self.gridLayout_7 = QtWidgets.QGridLayout()
318
+ self.gridLayout_7.setContentsMargins(10, 10, -1, 10)
319
+ self.gridLayout_7.setObjectName("gridLayout_7")
320
+ self.clickhouse_pwd_lineEdit = QtWidgets.QLineEdit(self.groupBox_8)
321
+ self.clickhouse_pwd_lineEdit.setObjectName("clickhouse_pwd_lineEdit")
322
+ self.gridLayout_7.addWidget(self.clickhouse_pwd_lineEdit, 5, 1, 1, 1)
323
+ self.label_53 = QtWidgets.QLabel(self.groupBox_8)
324
+ self.label_53.setObjectName("label_53")
325
+ self.gridLayout_7.addWidget(self.label_53, 0, 0, 1, 1)
326
+ self.label_54 = QtWidgets.QLabel(self.groupBox_8)
327
+ self.label_54.setObjectName("label_54")
328
+ self.gridLayout_7.addWidget(self.label_54, 1, 0, 1, 1)
329
+ self.clickhouse_ip_lineEdit = QtWidgets.QLineEdit(self.groupBox_8)
330
+ self.clickhouse_ip_lineEdit.setObjectName("clickhouse_ip_lineEdit")
331
+ self.gridLayout_7.addWidget(self.clickhouse_ip_lineEdit, 1, 1, 1, 1)
332
+ self.clickhouse_tmpdir_lineEdit = QtWidgets.QLineEdit(self.groupBox_8)
333
+ self.clickhouse_tmpdir_lineEdit.setObjectName("clickhouse_tmpdir_lineEdit")
334
+ self.gridLayout_7.addWidget(self.clickhouse_tmpdir_lineEdit, 0, 1, 1, 1)
335
+ self.label_51 = QtWidgets.QLabel(self.groupBox_8)
336
+ self.label_51.setObjectName("label_51")
337
+ self.gridLayout_7.addWidget(self.label_51, 2, 0, 1, 1)
338
+ self.label_50 = QtWidgets.QLabel(self.groupBox_8)
339
+ self.label_50.setObjectName("label_50")
340
+ self.gridLayout_7.addWidget(self.label_50, 4, 0, 1, 1)
341
+ self.clickhouse_usr_lineEdit = QtWidgets.QLineEdit(self.groupBox_8)
342
+ self.clickhouse_usr_lineEdit.setObjectName("clickhouse_usr_lineEdit")
343
+ self.gridLayout_7.addWidget(self.clickhouse_usr_lineEdit, 4, 1, 1, 1)
344
+ self.label_55 = QtWidgets.QLabel(self.groupBox_8)
345
+ self.label_55.setObjectName("label_55")
346
+ self.gridLayout_7.addWidget(self.label_55, 3, 0, 1, 1)
347
+ self.clickhouse_port_lineEdit = QtWidgets.QLineEdit(self.groupBox_8)
348
+ self.clickhouse_port_lineEdit.setObjectName("clickhouse_port_lineEdit")
349
+ self.gridLayout_7.addWidget(self.clickhouse_port_lineEdit, 3, 1, 1, 1)
350
+ self.label_52 = QtWidgets.QLabel(self.groupBox_8)
351
+ self.label_52.setObjectName("label_52")
352
+ self.gridLayout_7.addWidget(self.label_52, 5, 0, 1, 1)
353
+ self.clickhouse_test_pushButton = QtWidgets.QPushButton(self.groupBox_8)
354
+ self.clickhouse_test_pushButton.setObjectName("clickhouse_test_pushButton")
355
+ self.gridLayout_7.addWidget(self.clickhouse_test_pushButton, 2, 2, 1, 1)
356
+ self.clickhouse_tmpdir_pushButton = QtWidgets.QPushButton(self.groupBox_8)
357
+ self.clickhouse_tmpdir_pushButton.setObjectName("clickhouse_tmpdir_pushButton")
358
+ self.gridLayout_7.addWidget(self.clickhouse_tmpdir_pushButton, 0, 2, 1, 1)
359
+ self.clickhouse_http_port_lineEdit = QtWidgets.QLineEdit(self.groupBox_8)
360
+ self.clickhouse_http_port_lineEdit.setObjectName("clickhouse_http_port_lineEdit")
361
+ self.gridLayout_7.addWidget(self.clickhouse_http_port_lineEdit, 2, 1, 1, 1)
362
+ self.verticalLayout_19.addLayout(self.gridLayout_7)
363
+ self.verticalLayout_8.addWidget(self.groupBox_8)
364
+ spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
365
+ self.verticalLayout_8.addItem(spacerItem6)
322
366
  self.tabWidget.addTab(self.tab_3, "")
323
367
  self.tab_2 = QtWidgets.QWidget()
324
368
  self.tab_2.setObjectName("tab_2")
325
369
  self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.tab_2)
326
370
  self.verticalLayout_7.setObjectName("verticalLayout_7")
327
- spacerItem12 = QtWidgets.QSpacerItem(20, 9, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
328
- self.verticalLayout_7.addItem(spacerItem12)
371
+ spacerItem7 = QtWidgets.QSpacerItem(20, 9, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
372
+ self.verticalLayout_7.addItem(spacerItem7)
329
373
  self.label_43 = QtWidgets.QLabel(self.tab_2)
330
374
  self.label_43.setObjectName("label_43")
331
375
  self.verticalLayout_7.addWidget(self.label_43)
@@ -343,12 +387,12 @@ class Ui_MainWindow(object):
343
387
  self.sched_import_timeEdit = QtWidgets.QTimeEdit(self.tab_2)
344
388
  self.sched_import_timeEdit.setObjectName("sched_import_timeEdit")
345
389
  self.horizontalLayout_14.addWidget(self.sched_import_timeEdit)
346
- spacerItem13 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
347
- self.horizontalLayout_14.addItem(spacerItem13)
390
+ spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
391
+ self.horizontalLayout_14.addItem(spacerItem8)
348
392
  self.horizontalLayout_11.addLayout(self.horizontalLayout_14)
349
393
  self.verticalLayout_7.addLayout(self.horizontalLayout_11)
350
- spacerItem14 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
351
- self.verticalLayout_7.addItem(spacerItem14)
394
+ spacerItem9 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
395
+ self.verticalLayout_7.addItem(spacerItem9)
352
396
  self.horizontalLayout_18 = QtWidgets.QHBoxLayout()
353
397
  self.horizontalLayout_18.setContentsMargins(10, -1, 10, -1)
354
398
  self.horizontalLayout_18.setObjectName("horizontalLayout_18")
@@ -358,11 +402,11 @@ class Ui_MainWindow(object):
358
402
  self.import_status_label = QtWidgets.QLabel(self.tab_2)
359
403
  self.import_status_label.setObjectName("import_status_label")
360
404
  self.horizontalLayout_18.addWidget(self.import_status_label)
361
- spacerItem15 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
362
- self.horizontalLayout_18.addItem(spacerItem15)
405
+ spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
406
+ self.horizontalLayout_18.addItem(spacerItem10)
363
407
  self.verticalLayout_7.addLayout(self.horizontalLayout_18)
364
- spacerItem16 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
365
- self.verticalLayout_7.addItem(spacerItem16)
408
+ spacerItem11 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
409
+ self.verticalLayout_7.addItem(spacerItem11)
366
410
  self.groupBox_5 = QtWidgets.QGroupBox(self.tab_2)
367
411
  self.groupBox_5.setObjectName("groupBox_5")
368
412
  self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.groupBox_5)
@@ -410,11 +454,11 @@ class Ui_MainWindow(object):
410
454
  self.label_9 = QtWidgets.QLabel(self.groupBox_5)
411
455
  self.label_9.setObjectName("label_9")
412
456
  self.gridLayout.addWidget(self.label_9, 5, 0, 1, 1)
413
- spacerItem17 = QtWidgets.QSpacerItem(5, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
414
- self.gridLayout.addItem(spacerItem17, 0, 2, 1, 1)
457
+ spacerItem12 = QtWidgets.QSpacerItem(5, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
458
+ self.gridLayout.addItem(spacerItem12, 0, 2, 1, 1)
415
459
  self.verticalLayout_5.addLayout(self.gridLayout)
416
- spacerItem18 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
417
- self.verticalLayout_5.addItem(spacerItem18)
460
+ spacerItem13 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
461
+ self.verticalLayout_5.addItem(spacerItem13)
418
462
  self.import_detail_textEdit = QtWidgets.QTextEdit(self.groupBox_5)
419
463
  self.import_detail_textEdit.setFrameShape(QtWidgets.QFrame.NoFrame)
420
464
  self.import_detail_textEdit.setReadOnly(True)
@@ -440,8 +484,8 @@ class Ui_MainWindow(object):
440
484
  self.label_36.setObjectName("label_36")
441
485
  self.verticalLayout.addWidget(self.label_36)
442
486
  self.verticalLayout_4.addLayout(self.verticalLayout)
443
- spacerItem19 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
444
- self.verticalLayout_4.addItem(spacerItem19)
487
+ spacerItem14 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
488
+ self.verticalLayout_4.addItem(spacerItem14)
445
489
  self.gridLayout_6 = QtWidgets.QGridLayout()
446
490
  self.gridLayout_6.setContentsMargins(20, -1, -1, -1)
447
491
  self.gridLayout_6.setObjectName("gridLayout_6")
@@ -535,8 +579,8 @@ class Ui_MainWindow(object):
535
579
  self.preload_week_checkBox = QtWidgets.QCheckBox(self.groupBox_6)
536
580
  self.preload_week_checkBox.setObjectName("preload_week_checkBox")
537
581
  self.gridLayout_6.addWidget(self.preload_week_checkBox, 1, 0, 1, 1)
538
- spacerItem20 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
539
- self.gridLayout_6.addItem(spacerItem20, 4, 3, 1, 1)
582
+ spacerItem15 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
583
+ self.gridLayout_6.addItem(spacerItem15, 4, 3, 1, 1)
540
584
  self.preload_quarter_checkBox = QtWidgets.QCheckBox(self.groupBox_6)
541
585
  self.preload_quarter_checkBox.setObjectName("preload_quarter_checkBox")
542
586
  self.gridLayout_6.addWidget(self.preload_quarter_checkBox, 3, 0, 1, 1)
@@ -571,16 +615,16 @@ class Ui_MainWindow(object):
571
615
  self.preload_year_spinBox.setObjectName("preload_year_spinBox")
572
616
  self.gridLayout_6.addWidget(self.preload_year_spinBox, 5, 2, 1, 1)
573
617
  self.verticalLayout_4.addLayout(self.gridLayout_6)
574
- spacerItem21 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
575
- self.verticalLayout_4.addItem(spacerItem21)
618
+ spacerItem16 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
619
+ self.verticalLayout_4.addItem(spacerItem16)
576
620
  self.verticalLayout_3.addWidget(self.groupBox_6)
577
621
  self.tabWidget.addTab(self.tab_6, "")
578
622
  self.tab = QtWidgets.QWidget()
579
623
  self.tab.setObjectName("tab")
580
624
  self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.tab)
581
625
  self.verticalLayout_2.setObjectName("verticalLayout_2")
582
- spacerItem22 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
583
- self.verticalLayout_2.addItem(spacerItem22)
626
+ spacerItem17 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
627
+ self.verticalLayout_2.addItem(spacerItem17)
584
628
  self.horizontalLayout_15 = QtWidgets.QHBoxLayout()
585
629
  self.horizontalLayout_15.setContentsMargins(20, -1, -1, -1)
586
630
  self.horizontalLayout_15.setObjectName("horizontalLayout_15")
@@ -590,11 +634,11 @@ class Ui_MainWindow(object):
590
634
  self.collect_status_label = QtWidgets.QLabel(self.tab)
591
635
  self.collect_status_label.setObjectName("collect_status_label")
592
636
  self.horizontalLayout_15.addWidget(self.collect_status_label)
593
- spacerItem23 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
594
- self.horizontalLayout_15.addItem(spacerItem23)
637
+ spacerItem18 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
638
+ self.horizontalLayout_15.addItem(spacerItem18)
595
639
  self.verticalLayout_2.addLayout(self.horizontalLayout_15)
596
- spacerItem24 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
597
- self.verticalLayout_2.addItem(spacerItem24)
640
+ spacerItem19 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
641
+ self.verticalLayout_2.addItem(spacerItem19)
598
642
  self.horizontalLayout_13 = QtWidgets.QHBoxLayout()
599
643
  self.horizontalLayout_13.setContentsMargins(20, -1, -1, -1)
600
644
  self.horizontalLayout_13.setObjectName("horizontalLayout_13")
@@ -606,11 +650,11 @@ class Ui_MainWindow(object):
606
650
  self.collect_source_comboBox.addItem("")
607
651
  self.collect_source_comboBox.addItem("")
608
652
  self.horizontalLayout_13.addWidget(self.collect_source_comboBox)
609
- spacerItem25 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
610
- self.horizontalLayout_13.addItem(spacerItem25)
653
+ spacerItem20 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
654
+ self.horizontalLayout_13.addItem(spacerItem20)
611
655
  self.verticalLayout_2.addLayout(self.horizontalLayout_13)
612
- spacerItem26 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
613
- self.verticalLayout_2.addItem(spacerItem26)
656
+ spacerItem21 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
657
+ self.verticalLayout_2.addItem(spacerItem21)
614
658
  self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
615
659
  self.horizontalLayout_10.setContentsMargins(20, -1, -1, -1)
616
660
  self.horizontalLayout_10.setObjectName("horizontalLayout_10")
@@ -621,11 +665,11 @@ class Ui_MainWindow(object):
621
665
  self.collect_sample_spinBox.setMaximum(86400)
622
666
  self.collect_sample_spinBox.setObjectName("collect_sample_spinBox")
623
667
  self.horizontalLayout_10.addWidget(self.collect_sample_spinBox)
624
- spacerItem27 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
625
- self.horizontalLayout_10.addItem(spacerItem27)
668
+ spacerItem22 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
669
+ self.horizontalLayout_10.addItem(spacerItem22)
626
670
  self.verticalLayout_2.addLayout(self.horizontalLayout_10)
627
- spacerItem28 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
628
- self.verticalLayout_2.addItem(spacerItem28)
671
+ spacerItem23 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
672
+ self.verticalLayout_2.addItem(spacerItem23)
629
673
  self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
630
674
  self.horizontalLayout_8.setContentsMargins(20, -1, -1, -1)
631
675
  self.horizontalLayout_8.setObjectName("horizontalLayout_8")
@@ -644,8 +688,8 @@ class Ui_MainWindow(object):
644
688
  self.collect_phase1_last_timeEdit = QtWidgets.QTimeEdit(self.tab)
645
689
  self.collect_phase1_last_timeEdit.setObjectName("collect_phase1_last_timeEdit")
646
690
  self.horizontalLayout_6.addWidget(self.collect_phase1_last_timeEdit)
647
- spacerItem29 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
648
- self.horizontalLayout_6.addItem(spacerItem29)
691
+ spacerItem24 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
692
+ self.horizontalLayout_6.addItem(spacerItem24)
649
693
  self.horizontalLayout_8.addLayout(self.horizontalLayout_6)
650
694
  self.verticalLayout_2.addLayout(self.horizontalLayout_8)
651
695
  self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
@@ -666,12 +710,12 @@ class Ui_MainWindow(object):
666
710
  self.collect_phase2_last_timeEdit = QtWidgets.QTimeEdit(self.tab)
667
711
  self.collect_phase2_last_timeEdit.setObjectName("collect_phase2_last_timeEdit")
668
712
  self.horizontalLayout_7.addWidget(self.collect_phase2_last_timeEdit)
669
- spacerItem30 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
670
- self.horizontalLayout_7.addItem(spacerItem30)
713
+ spacerItem25 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
714
+ self.horizontalLayout_7.addItem(spacerItem25)
671
715
  self.horizontalLayout_9.addLayout(self.horizontalLayout_7)
672
716
  self.verticalLayout_2.addLayout(self.horizontalLayout_9)
673
- spacerItem31 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
674
- self.verticalLayout_2.addItem(spacerItem31)
717
+ spacerItem26 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
718
+ self.verticalLayout_2.addItem(spacerItem26)
675
719
  self.horizontalLayout_16 = QtWidgets.QHBoxLayout()
676
720
  self.horizontalLayout_16.setContentsMargins(20, 0, -1, -1)
677
721
  self.horizontalLayout_16.setObjectName("horizontalLayout_16")
@@ -684,8 +728,8 @@ class Ui_MainWindow(object):
684
728
  self.collect_use_zhima_checkBox.setObjectName("collect_use_zhima_checkBox")
685
729
  self.horizontalLayout_16.addWidget(self.collect_use_zhima_checkBox)
686
730
  self.verticalLayout_2.addLayout(self.horizontalLayout_16)
687
- spacerItem32 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
688
- self.verticalLayout_2.addItem(spacerItem32)
731
+ spacerItem27 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
732
+ self.verticalLayout_2.addItem(spacerItem27)
689
733
  self.horizontalLayout_17 = QtWidgets.QHBoxLayout()
690
734
  self.horizontalLayout_17.setContentsMargins(20, 0, -1, -1)
691
735
  self.horizontalLayout_17.setObjectName("horizontalLayout_17")
@@ -697,67 +741,88 @@ class Ui_MainWindow(object):
697
741
  self.tab_star = QtWidgets.QWidget()
698
742
  self.tab_star.setEnabled(True)
699
743
  self.tab_star.setObjectName("tab_star")
700
- self.label_44 = QtWidgets.QLabel(self.tab_star)
701
- self.label_44.setGeometry(QtCore.QRect(40, 380, 291, 171))
702
- self.label_44.setText("")
703
- self.label_44.setPixmap(QtGui.QPixmap("../images/star.png"))
704
- self.label_44.setScaledContents(True)
705
- self.label_44.setObjectName("label_44")
744
+ self.verticalLayout_18 = QtWidgets.QVBoxLayout(self.tab_star)
745
+ self.verticalLayout_18.setObjectName("verticalLayout_18")
746
+ spacerItem28 = QtWidgets.QSpacerItem(5, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
747
+ self.verticalLayout_18.addItem(spacerItem28)
706
748
  self.label_46 = QtWidgets.QLabel(self.tab_star)
707
- self.label_46.setGeometry(QtCore.QRect(30, 20, 501, 211))
749
+ font = QtGui.QFont()
750
+ font.setFamily("Arial")
751
+ self.label_46.setFont(font)
708
752
  self.label_46.setWordWrap(True)
709
753
  self.label_46.setObjectName("label_46")
754
+ self.verticalLayout_18.addWidget(self.label_46)
710
755
  self.line_2 = QtWidgets.QFrame(self.tab_star)
711
- self.line_2.setGeometry(QtCore.QRect(30, 240, 511, 16))
712
756
  self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
713
757
  self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
714
758
  self.line_2.setObjectName("line_2")
759
+ self.verticalLayout_18.addWidget(self.line_2)
760
+ self.verticalLayout_15 = QtWidgets.QVBoxLayout()
761
+ self.verticalLayout_15.setObjectName("verticalLayout_15")
715
762
  self.label_47 = QtWidgets.QLabel(self.tab_star)
716
- self.label_47.setGeometry(QtCore.QRect(40, 260, 151, 16))
717
763
  font = QtGui.QFont()
718
764
  font.setBold(True)
719
765
  self.label_47.setFont(font)
720
766
  self.label_47.setObjectName("label_47")
767
+ self.verticalLayout_15.addWidget(self.label_47)
768
+ self.horizontalLayout_20 = QtWidgets.QHBoxLayout()
769
+ self.horizontalLayout_20.setObjectName("horizontalLayout_20")
770
+ self.label_45 = QtWidgets.QLabel(self.tab_star)
771
+ self.label_45.setObjectName("label_45")
772
+ self.horizontalLayout_20.addWidget(self.label_45)
773
+ self.email_lineEdit = QtWidgets.QLineEdit(self.tab_star)
774
+ self.email_lineEdit.setObjectName("email_lineEdit")
775
+ self.horizontalLayout_20.addWidget(self.email_lineEdit)
776
+ self.fetch_trial_pushButton = QtWidgets.QPushButton(self.tab_star)
777
+ self.fetch_trial_pushButton.setObjectName("fetch_trial_pushButton")
778
+ self.horizontalLayout_20.addWidget(self.fetch_trial_pushButton)
779
+ self.verticalLayout_15.addLayout(self.horizontalLayout_20)
780
+ self.verticalLayout_18.addLayout(self.verticalLayout_15)
721
781
  self.line_3 = QtWidgets.QFrame(self.tab_star)
722
- self.line_3.setGeometry(QtCore.QRect(30, 330, 511, 16))
723
782
  self.line_3.setFrameShape(QtWidgets.QFrame.HLine)
724
783
  self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
725
784
  self.line_3.setObjectName("line_3")
785
+ self.verticalLayout_18.addWidget(self.line_3)
786
+ self.verticalLayout_16 = QtWidgets.QVBoxLayout()
787
+ self.verticalLayout_16.setObjectName("verticalLayout_16")
726
788
  self.label_48 = QtWidgets.QLabel(self.tab_star)
727
- self.label_48.setGeometry(QtCore.QRect(40, 356, 331, 16))
728
789
  font = QtGui.QFont()
729
790
  font.setBold(True)
730
791
  self.label_48.setFont(font)
731
792
  self.label_48.setObjectName("label_48")
793
+ self.verticalLayout_16.addWidget(self.label_48)
794
+ self.label_44 = QtWidgets.QLabel(self.tab_star)
795
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
796
+ sizePolicy.setHorizontalStretch(0)
797
+ sizePolicy.setVerticalStretch(0)
798
+ sizePolicy.setHeightForWidth(self.label_44.sizePolicy().hasHeightForWidth())
799
+ self.label_44.setSizePolicy(sizePolicy)
800
+ self.label_44.setMaximumSize(QtCore.QSize(300, 160))
801
+ self.label_44.setText("")
802
+ self.label_44.setPixmap(QtGui.QPixmap("../images/star.png"))
803
+ self.label_44.setScaledContents(True)
804
+ self.label_44.setObjectName("label_44")
805
+ self.verticalLayout_16.addWidget(self.label_44)
806
+ self.verticalLayout_18.addLayout(self.verticalLayout_16)
732
807
  self.line_4 = QtWidgets.QFrame(self.tab_star)
733
- self.line_4.setGeometry(QtCore.QRect(30, 560, 511, 16))
734
808
  self.line_4.setFrameShape(QtWidgets.QFrame.HLine)
735
809
  self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken)
736
810
  self.line_4.setObjectName("line_4")
811
+ self.verticalLayout_18.addWidget(self.line_4)
812
+ self.verticalLayout_17 = QtWidgets.QVBoxLayout()
813
+ self.verticalLayout_17.setObjectName("verticalLayout_17")
737
814
  self.label_49 = QtWidgets.QLabel(self.tab_star)
738
- self.label_49.setGeometry(QtCore.QRect(40, 580, 81, 16))
739
815
  font = QtGui.QFont()
740
816
  font.setBold(True)
741
817
  self.label_49.setFont(font)
742
818
  self.label_49.setObjectName("label_49")
819
+ self.verticalLayout_17.addWidget(self.label_49)
743
820
  self.label_license = QtWidgets.QLabel(self.tab_star)
744
- self.label_license.setGeometry(QtCore.QRect(40, 610, 511, 81))
745
821
  self.label_license.setObjectName("label_license")
746
- self.layoutWidget = QtWidgets.QWidget(self.tab_star)
747
- self.layoutWidget.setGeometry(QtCore.QRect(40, 290, 501, 33))
748
- self.layoutWidget.setObjectName("layoutWidget")
749
- self.horizontalLayout_20 = QtWidgets.QHBoxLayout(self.layoutWidget)
750
- self.horizontalLayout_20.setContentsMargins(0, 0, 0, 0)
751
- self.horizontalLayout_20.setObjectName("horizontalLayout_20")
752
- self.label_45 = QtWidgets.QLabel(self.layoutWidget)
753
- self.label_45.setObjectName("label_45")
754
- self.horizontalLayout_20.addWidget(self.label_45)
755
- self.email_lineEdit = QtWidgets.QLineEdit(self.layoutWidget)
756
- self.email_lineEdit.setObjectName("email_lineEdit")
757
- self.horizontalLayout_20.addWidget(self.email_lineEdit)
758
- self.fetch_trial_pushButton = QtWidgets.QPushButton(self.layoutWidget)
759
- self.fetch_trial_pushButton.setObjectName("fetch_trial_pushButton")
760
- self.horizontalLayout_20.addWidget(self.fetch_trial_pushButton)
822
+ self.verticalLayout_17.addWidget(self.label_license)
823
+ self.verticalLayout_18.addLayout(self.verticalLayout_17)
824
+ spacerItem29 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
825
+ self.verticalLayout_18.addItem(spacerItem29)
761
826
  self.tabWidget.addTab(self.tab_star, "")
762
827
  self.horizontalLayout_12.addWidget(self.tabWidget)
763
828
  self.verticalLayout_6 = QtWidgets.QVBoxLayout()
@@ -774,7 +839,7 @@ class Ui_MainWindow(object):
774
839
  MainWindow.setCentralWidget(self.centralwidget)
775
840
 
776
841
  self.retranslateUi(MainWindow)
777
- self.tabWidget.setCurrentIndex(0)
842
+ self.tabWidget.setCurrentIndex(5)
778
843
  QtCore.QMetaObject.connectSlotsByName(MainWindow)
779
844
 
780
845
  def retranslateUi(self, MainWindow):
@@ -809,6 +874,7 @@ class Ui_MainWindow(object):
809
874
  self.groupBox_4.setTitle(_translate("MainWindow", "存储引擎设置"))
810
875
  self.enable_hdf55_radioButton.setText(_translate("MainWindow", "使用HDF5(推荐)"))
811
876
  self.enable_mysql_radioButton.setText(_translate("MainWindow", "使用MYSQL"))
877
+ self.enable_clickhouse_radioButton.setText(_translate("MainWindow", "使用Clickhouse(捐赠权益)"))
812
878
  self.groupBox_3.setTitle(_translate("MainWindow", "HDF5存储设置"))
813
879
  self.hdf5_dir_pushButton.setText(_translate("MainWindow", "选择"))
814
880
  self.label.setText(_translate("MainWindow", "目标数据(HDF5)存放目录:"))
@@ -818,8 +884,17 @@ class Ui_MainWindow(object):
818
884
  self.label_13.setText(_translate("MainWindow", "密码"))
819
885
  self.mysql_tmpdir_pushButton.setText(_translate("MainWindow", "选择"))
820
886
  self.mysql_test_pushButton.setText(_translate("MainWindow", "测试连接"))
821
- self.label_20.setText(_translate("MainWindow", "临时文件目录:"))
887
+ self.label_20.setText(_translate("MainWindow", "临本机时文件目录:"))
822
888
  self.label_18.setText(_translate("MainWindow", "主机名/IP:"))
889
+ self.groupBox_8.setTitle(_translate("MainWindow", "Clickhouse设置(捐赠权益)"))
890
+ self.label_53.setText(_translate("MainWindow", "本机临时文件目录:"))
891
+ self.label_54.setText(_translate("MainWindow", "主机名/IP:"))
892
+ self.label_51.setText(_translate("MainWindow", "HTTP端口号:"))
893
+ self.label_50.setText(_translate("MainWindow", "用户名:"))
894
+ self.label_55.setText(_translate("MainWindow", "TCP端口号"))
895
+ self.label_52.setText(_translate("MainWindow", "密码"))
896
+ self.clickhouse_test_pushButton.setText(_translate("MainWindow", "测试连接"))
897
+ self.clickhouse_tmpdir_pushButton.setText(_translate("MainWindow", "选择"))
823
898
  self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "存储设置"))
824
899
  self.label_43.setText(_translate("MainWindow", " 注:HDF5存储导入时,请关闭其他 hikyuu 进程,HDF5不支持同时读写!"))
825
900
  self.sched_import_pushButton.setText(_translate("MainWindow", "启动定时导入"))
@@ -840,19 +915,19 @@ class Ui_MainWindow(object):
840
915
  "hr { height: 1px; border-width: 0; }\n"
841
916
  "li.unchecked::marker { content: \"\\2610\"; }\n"
842
917
  "li.checked::marker { content: \"\\2612\"; }\n"
843
- "</style></head><body style=\" font-family:\'.AppleSystemUIFont\'; font-size:13pt; font-weight:400; font-style:normal;\">\n"
844
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">导入上证日线记录:</span></p>\n"
845
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">导入深证日线记录:</span></p>\n"
846
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">导入上证5分钟线记录:</span></p>\n"
847
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">导入深证5分钟线记录:</span></p>\n"
848
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">导入上证1分钟线记录:</span></p>\n"
849
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">导入深证1分钟线记录:</span></p>\n"
850
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">导入上证分笔记录:</span></p>\n"
851
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">导入深证分笔记录:</span></p>\n"
852
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">导入上证分时数据:</span></p>\n"
853
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">导入深证分时数据:</span></p>\n"
854
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">导入权息数据数:</span></p>\n"
855
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">导入完毕!</span></p></body></html>"))
918
+ "</style></head><body style=\" font-family:\'Microsoft YaHei UI\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
919
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入上证日线记录:</span></p>\n"
920
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入深证日线记录:</span></p>\n"
921
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入上证5分钟线记录:</span></p>\n"
922
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入深证5分钟线记录:</span></p>\n"
923
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入上证1分钟线记录:</span></p>\n"
924
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入深证1分钟线记录:</span></p>\n"
925
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入上证分笔记录:</span></p>\n"
926
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入深证分笔记录:</span></p>\n"
927
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入上证分时数据:</span></p>\n"
928
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入深证分时数据:</span></p>\n"
929
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入权息数据数:</span></p>\n"
930
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入完毕!</span></p></body></html>"))
856
931
  self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "执行导入"))
857
932
  self.groupBox_6.setTitle(_translate("MainWindow", "预加载设置"))
858
933
  self.label_35.setText(_translate("MainWindow", "此处为 Hikyuu 运行时的数据预加载设置,请根据机器内存大小选择"))
@@ -900,13 +975,13 @@ class Ui_MainWindow(object):
900
975
  "hr { height: 1px; border-width: 0; }\n"
901
976
  "li.unchecked::marker { content: \"\\2610\"; }\n"
902
977
  "li.checked::marker { content: \"\\2612\"; }\n"
903
- "</style></head><body style=\" font-family:\'.AppleSystemUIFont\'; font-size:13pt; font-weight:400; font-style:normal;\">\n"
904
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">注:</span></p>\n"
905
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:10pt; font-weight:600; color:#ff0000;\">1、行情采集服务仅对预加载数据有效</span><span style=\" font-family:\'SimSun\'; font-size:9pt;\">,在行情采集服务运行期间,hikyuu.interactive运行时将自动连接采集服务获取行情数据,并更新预加载的内容数据。</span></p>\n"
906
- "<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-family:\'SimSun\'; font-size:9pt;\"><br /></p>\n"
907
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt;\">2、如使用芝麻代理(</span><a href=\"http://h.zhimaruanjian.com/\"><span style=\" font-family:\'SimSun\'; font-size:9pt; text-decoration: underline; color:#0000ff;\">http://h.zhimaruanjian.com/</span></a><span style=\" font-family:\'SimSun\'; font-size:9pt;\">),请自行申请(需付费),并确保ip为其白名单。</span></p>\n"
908
- "<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-family:\'SimSun\'; font-size:9pt;\"><br /></p>\n"
909
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:696; color:#0000ff;\">3、此处采集为网络采集,更推荐直接运行安装目录下gui子目录下的 start_qmt.py ,使用miniqmt 实时服务。该程序独立运行,不用关闭,和这里的采集效果一样。注意:miniqmt需要QMT交易端配合,且在同一机器上执行。</span></p></body></html>"))
978
+ "</style></head><body style=\" font-family:\'Microsoft YaHei UI\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
979
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">注:</span></p>\n"
980
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:10pt; font-weight:600; color:#ff0000;\">1、行情采集服务仅对预加载数据有效</span><span style=\" font-family:\'SimSun\';\">,在行情采集服务运行期间,hikyuu.interactive运行时将自动连接采集服务获取行情数据,并更新预加载的内容数据。</span></p>\n"
981
+ "<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-family:\'SimSun\';\"><br /></p>\n"
982
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">2、如使用芝麻代理(</span><a href=\"http://h.zhimaruanjian.com/\"><span style=\" font-family:\'SimSun\'; text-decoration: underline; color:#0000ff;\">http://h.zhimaruanjian.com/</span></a><span style=\" font-family:\'SimSun\';\">),请自行申请(需付费),并确保ip为其白名单。</span></p>\n"
983
+ "<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-family:\'SimSun\';\"><br /></p>\n"
984
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-weight:696; color:#0000ff;\">3、此处采集为网络采集,更推荐直接运行安装目录下gui子目录下的 start_qmt.py ,使用miniqmt 实时服务。该程序独立运行,不用关闭,和这里的采集效果一样。注意:miniqmt需要QMT交易端配合,且在同一机器上执行。</span></p></body></html>"))
910
985
  self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "行情采集服务"))
911
986
  self.label_46.setText(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
912
987
  "<html><head><meta name=\"qrichtext\" content=\"1\" /><meta charset=\"utf-8\" /><style type=\"text/css\">\n"
@@ -914,15 +989,15 @@ class Ui_MainWindow(object):
914
989
  "hr { height: 1px; border-width: 0; }\n"
915
990
  "li.unchecked::marker { content: \"\\2610\"; }\n"
916
991
  "li.checked::marker { content: \"\\2612\"; }\n"
917
- "</style></head><body style=\" font-family:\'.AppleSystemUIFont\'; font-size:13pt; font-weight:400; font-style:normal;\">\n"
918
- "<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Hikyuu <span style=\" font-weight:700;\">专注于量化交易领域的核心技术构建,涵盖交易模型开发、极速计算引擎、高效回测框架及实盘拓展能力</span>,定位为量化交易的基础设施级计算引擎,为量化交易爱好者和专业提供高性能底层架构支持。随着社区规模扩大,项目持续迭代及技术支持事务逐渐分散了作者在策略研究上的精力。为保障项目的专注度与可持续性,现对捐赠用户提供部分额外功能作为回馈。诚挚期待社区伙伴的支持,您的参与都将直接助力 Hikyuu 的技术创新,共同推动量化交易基础设施的迭代升级。</p>\n"
919
- "<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">捐赠功能以插件的方式提供,采用独立授权许可,完全在 hikyuu 之外,对喜欢自行编译扩展的朋友没有影响。因插件许可授权需要采集硬件信息,如有疑虑只要不申请试用许可和正式许可授权,不会触发硬件信息采集,如申请,视为同意采集。</p>\n"
920
- "<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:700;\">详情参见:</span><a href=\"https://hikyuu.readthedocs.io/zh-cn/latest/vip/vip-plan.html\"><span style=\" text-decoration: underline; color:#3586ff;\">捐赠权益</span></a><span style=\" font-weight:700;\"> ,感谢大家的支持!</span></p></body></html>"))
921
- self.label_47.setText(_translate("MainWindow", "申请试用许可(30天试用)"))
922
- self.label_48.setText(_translate("MainWindow", "加入知识星球,获取星球许可(可同时在3台设备上使用)"))
923
- self.label_49.setText(_translate("MainWindow", "当前授权信息"))
924
- self.label_license.setText(_translate("MainWindow", "TextLabel"))
992
+ "</style></head><body style=\" font-family:\'Arial\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
993
+ "<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'.AppleSystemUIFont\'; font-size:10pt;\">Hikyuu </span><span style=\" font-family:\'.AppleSystemUIFont\'; font-size:10pt; font-weight:700;\">专注于量化交易领域的核心技术构建,涵盖交易模型开发、极速计算引擎、高效回测框架及实盘拓展能力</span><span style=\" font-family:\'.AppleSystemUIFont\'; font-size:10pt;\">,定位为量化交易的基础设施级计算引擎,为量化交易爱好者提供高性能底层架构支持。随着社区规模扩大,分散了作者在策略研究上的精力。为保障项目的可持续性,现对捐赠用户提供部分额外功能作为回馈,感谢社区伙伴的支持!</span></p>\n"
994
+ "<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'.AppleSystemUIFont\'; font-size:10pt;\">捐赠功能以插件的方式提供,采用独立授权许可,完全在 hikyuu 之外,对喜欢自行编译扩展的朋友没有影响。因插件许可授权需要采集硬件信息,如有疑虑只要不申请试用许可和正式许可授权,不会触发硬件信息采集,如申请,视为同意采集。</span></p>\n"
995
+ "<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'.AppleSystemUIFont\'; font-size:10pt; font-weight:700;\">详情参见:</span><a href=\"https://hikyuu.readthedocs.io/zh-cn/latest/vip/vip-plan.html\"><span style=\" font-family:\'.AppleSystemUIFont\'; font-size:10pt; text-decoration: underline; color:#3586ff;\">捐赠权益</span></a><span style=\" font-family:\'.AppleSystemUIFont\'; font-size:10pt; font-weight:700;\"> ,感谢大家的支持!</span></p></body></html>"))
996
+ self.label_47.setText(_translate("MainWindow", "申请捐赠功能试用(30天试用)"))
925
997
  self.label_45.setText(_translate("MainWindow", "电子邮件地址:"))
926
998
  self.fetch_trial_pushButton.setText(_translate("MainWindow", "申请试用许可"))
999
+ self.label_48.setText(_translate("MainWindow", "加入知识星球进行捐赠(可同时在3台设备上使用捐赠功能)"))
1000
+ self.label_49.setText(_translate("MainWindow", "当前捐赠授权信息"))
1001
+ self.label_license.setText(_translate("MainWindow", "TextLabel"))
927
1002
  self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_star), _translate("MainWindow", "项目捐赠"))
928
1003
  self.label_41.setText(_translate("MainWindow", "执行日志"))