修改代码

master
abc15379 1 year ago
parent f4d6e562b0
commit 9d599f49dc

@ -0,0 +1,525 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DBNavigator.Project.DataEditorManager">
<record-view-column-sorting-type value="BY_INDEX" />
<value-preview-text-wrapping value="true" />
<value-preview-pinned value="false" />
</component>
<component name="DBNavigator.Project.DatabaseBrowserManager">
<autoscroll-to-editor value="false" />
<autoscroll-from-editor value="true" />
<show-object-properties value="true" />
<loaded-nodes />
</component>
<component name="DBNavigator.Project.DatabaseConsoleManager">
<connection id="08cdce82-e17c-4657-88fb-4d2ee5b7f6be">
<console name="rule" type="STANDARD" schema="" session="Main" />
</connection>
</component>
<component name="DBNavigator.Project.DatabaseEditorStateManager">
<last-used-providers />
</component>
<component name="DBNavigator.Project.DatabaseFileManager">
<open-files />
</component>
<component name="DBNavigator.Project.DatasetFilterManager">
<filter-actions connection-id="08cdce82-e17c-4657-88fb-4d2ee5b7f6be" dataset="public.table1" active-filter-id="d0a5e6a4-03b7-4521-ba69-db57026f9eec">
<filter id="d0a5e6a4-03b7-4521-ba69-db57026f9eec" name="Filter" temporary="false" custom-name="false" type="basic" join-type="AND">
<condition column="id" operator="is not null" value="" active="true" />
</filter>
</filter-actions>
</component>
<component name="DBNavigator.Project.ObjectQuickFilterManager">
<last-used-operator value="EQUAL" />
<filters />
</component>
<component name="DBNavigator.Project.Settings">
<connections>
<connection id="08cdce82-e17c-4657-88fb-4d2ee5b7f6be" active="true" signed="true">
<database>
<name value="rule" />
<description value="" />
<database-type value="POSTGRES" />
<config-type value="BASIC" />
<database-version value="15.3" />
<driver-source value="BUNDLED" />
<driver-library value="" />
<driver value="" />
<url-type value="DATABASE" />
<host value="localhost" />
<port value="5432" />
<database value="gamerule" />
<tns-folder value="" />
<tns-profile value="" />
<type value="USER_PASSWORD" />
<user value="postgres" />
<deprecated-pwd value="MTIzNDU2" />
</database>
<properties>
<auto-commit value="false" />
</properties>
<ssh-settings>
<active value="false" />
<proxy-host value="" />
<proxy-port value="22" />
<proxy-user value="" />
<deprecated-proxy-pwd value="" />
<auth-type value="PASSWORD" />
<key-file value="" />
<key-passphrase value="" />
</ssh-settings>
<ssl-settings>
<active value="false" />
<certificate-authority-file value="" />
<client-certificate-file value="" />
<client-key-file value="" />
</ssl-settings>
<details>
<charset value="UTF-8" />
<session-management value="true" />
<ddl-file-binding value="true" />
<database-logging value="true" />
<connect-automatically value="true" />
<restore-workspace value="true" />
<restore-workspace-deep value="false" />
<environment-type value="default" />
<connectivity-timeout value="30" />
<idle-time-to-disconnect value="30" />
<idle-time-to-disconnect-pool value="5" />
<credential-expiry-time value="10" />
<max-connection-pool-size value="7" />
<alternative-statement-delimiter value="" />
</details>
<debugger>
<compile-dependencies value="true" />
<tcp-driver-tunneling value="false" />
<tcp-host-address value="" />
<tcp-port-from value="4000" />
<tcp-port-to value="4999" />
</debugger>
<object-filters hide-empty-schemas="false" hide-pseudo-columns="false">
<object-type-filter>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="true" />
<object-type name="ROLE" enabled="true" />
<object-type name="PRIVILEGE" enabled="true" />
<object-type name="CHARSET" enabled="true" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED_VIEW" enabled="true" />
<object-type name="NESTED_TABLE" enabled="true" />
<object-type name="COLUMN" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET_TRIGGER" enabled="true" />
<object-type name="DATABASE_TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="true" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
<object-type name="ARGUMENT" enabled="true" />
<object-type name="DIMENSION" enabled="true" />
<object-type name="CLUSTER" enabled="true" />
<object-type name="DBLINK" enabled="true" />
</object-type-filter>
<object-name-filters />
</object-filters>
</connection>
</connections>
<browser-settings>
<general>
<display-mode value="TABBED" />
<navigation-history-size value="100" />
<show-object-details value="false" />
</general>
<filters>
<object-type-filter>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="true" />
<object-type name="ROLE" enabled="true" />
<object-type name="PRIVILEGE" enabled="true" />
<object-type name="CHARSET" enabled="true" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED_VIEW" enabled="true" />
<object-type name="NESTED_TABLE" enabled="true" />
<object-type name="COLUMN" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET_TRIGGER" enabled="true" />
<object-type name="DATABASE_TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="true" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
<object-type name="ARGUMENT" enabled="true" />
<object-type name="DIMENSION" enabled="true" />
<object-type name="CLUSTER" enabled="true" />
<object-type name="DBLINK" enabled="true" />
</object-type-filter>
</filters>
<sorting>
<object-type name="COLUMN" sorting-type="NAME" />
<object-type name="FUNCTION" sorting-type="NAME" />
<object-type name="PROCEDURE" sorting-type="NAME" />
<object-type name="ARGUMENT" sorting-type="POSITION" />
<object-type name="TYPE ATTRIBUTE" sorting-type="POSITION" />
</sorting>
<default-editors>
<object-type name="VIEW" editor-type="SELECTION" />
<object-type name="PACKAGE" editor-type="SELECTION" />
<object-type name="TYPE" editor-type="SELECTION" />
</default-editors>
</browser-settings>
<navigation-settings>
<lookup-filters>
<lookup-objects>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="false" />
<object-type name="ROLE" enabled="false" />
<object-type name="PRIVILEGE" enabled="false" />
<object-type name="CHARSET" enabled="false" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED VIEW" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET TRIGGER" enabled="true" />
<object-type name="DATABASE TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="false" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="DIMENSION" enabled="false" />
<object-type name="CLUSTER" enabled="false" />
<object-type name="DBLINK" enabled="true" />
</lookup-objects>
<force-database-load value="false" />
<prompt-connection-selection value="true" />
<prompt-schema-selection value="true" />
</lookup-filters>
</navigation-settings>
<dataset-grid-settings>
<general>
<enable-zooming value="true" />
<enable-column-tooltip value="true" />
</general>
<sorting>
<nulls-first value="true" />
<max-sorting-columns value="4" />
</sorting>
<audit-columns>
<column-names value="" />
<visible value="true" />
<editable value="false" />
</audit-columns>
</dataset-grid-settings>
<dataset-editor-settings>
<text-editor-popup>
<active value="false" />
<active-if-empty value="false" />
<data-length-threshold value="100" />
<popup-delay value="1000" />
</text-editor-popup>
<values-actions-popup>
<show-popup-button value="true" />
<element-count-threshold value="1000" />
<data-length-threshold value="250" />
</values-actions-popup>
<general>
<fetch-block-size value="100" />
<fetch-timeout value="30" />
<trim-whitespaces value="true" />
<convert-empty-strings-to-null value="true" />
<select-content-on-cell-edit value="true" />
<large-value-preview-active value="true" />
</general>
<filters>
<prompt-filter-dialog value="true" />
<default-filter-type value="BASIC" />
</filters>
<qualified-text-editor text-length-threshold="300">
<content-types>
<content-type name="Text" enabled="true" />
<content-type name="Properties" enabled="true" />
<content-type name="XML" enabled="true" />
<content-type name="DTD" enabled="true" />
<content-type name="HTML" enabled="true" />
<content-type name="XHTML" enabled="true" />
<content-type name="SQL" enabled="true" />
<content-type name="PL/SQL" enabled="true" />
<content-type name="JSON" enabled="true" />
<content-type name="JSON5" enabled="true" />
<content-type name="YAML" enabled="true" />
</content-types>
</qualified-text-editor>
<record-navigation>
<navigation-target value="VIEWER" />
</record-navigation>
</dataset-editor-settings>
<code-editor-settings>
<general>
<show-object-navigation-gutter value="false" />
<show-spec-declaration-navigation-gutter value="true" />
<enable-spellchecking value="true" />
<enable-reference-spellchecking value="false" />
</general>
<confirmations>
<save-changes value="false" />
<revert-changes value="true" />
</confirmations>
</code-editor-settings>
<code-completion-settings>
<filters>
<basic-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="false" />
<filter-element type="OBJECT" id="view" selected="false" />
<filter-element type="OBJECT" id="materialized view" selected="false" />
<filter-element type="OBJECT" id="index" selected="false" />
<filter-element type="OBJECT" id="constraint" selected="false" />
<filter-element type="OBJECT" id="trigger" selected="false" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="false" />
<filter-element type="OBJECT" id="procedure" selected="false" />
<filter-element type="OBJECT" id="function" selected="false" />
<filter-element type="OBJECT" id="package" selected="false" />
<filter-element type="OBJECT" id="type" selected="false" />
<filter-element type="OBJECT" id="dimension" selected="false" />
<filter-element type="OBJECT" id="cluster" selected="false" />
<filter-element type="OBJECT" id="dblink" selected="false" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</basic-filter>
<extended-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</extended-filter>
</filters>
<sorting enabled="true">
<sorting-element type="RESERVED_WORD" id="keyword" />
<sorting-element type="RESERVED_WORD" id="datatype" />
<sorting-element type="OBJECT" id="column" />
<sorting-element type="OBJECT" id="table" />
<sorting-element type="OBJECT" id="view" />
<sorting-element type="OBJECT" id="materialized view" />
<sorting-element type="OBJECT" id="index" />
<sorting-element type="OBJECT" id="constraint" />
<sorting-element type="OBJECT" id="trigger" />
<sorting-element type="OBJECT" id="synonym" />
<sorting-element type="OBJECT" id="sequence" />
<sorting-element type="OBJECT" id="procedure" />
<sorting-element type="OBJECT" id="function" />
<sorting-element type="OBJECT" id="package" />
<sorting-element type="OBJECT" id="type" />
<sorting-element type="OBJECT" id="dimension" />
<sorting-element type="OBJECT" id="cluster" />
<sorting-element type="OBJECT" id="dblink" />
<sorting-element type="OBJECT" id="schema" />
<sorting-element type="OBJECT" id="role" />
<sorting-element type="OBJECT" id="user" />
<sorting-element type="RESERVED_WORD" id="function" />
<sorting-element type="RESERVED_WORD" id="parameter" />
</sorting>
<format>
<enforce-code-style-case value="true" />
</format>
</code-completion-settings>
<execution-engine-settings>
<statement-execution>
<fetch-block-size value="100" />
<execution-timeout value="20" />
<debug-execution-timeout value="600" />
<focus-result value="false" />
<prompt-execution value="false" />
</statement-execution>
<script-execution>
<command-line-interfaces />
<execution-timeout value="300" />
</script-execution>
<method-execution>
<execution-timeout value="30" />
<debug-execution-timeout value="600" />
<parameter-history-size value="10" />
</method-execution>
</execution-engine-settings>
<operation-settings>
<transactions>
<uncommitted-changes>
<on-project-close value="ASK" />
<on-disconnect value="ASK" />
<on-autocommit-toggle value="ASK" />
</uncommitted-changes>
<multiple-uncommitted-changes>
<on-commit value="ASK" />
<on-rollback value="ASK" />
</multiple-uncommitted-changes>
</transactions>
<session-browser>
<disconnect-session value="ASK" />
<kill-session value="ASK" />
<reload-on-filter-change value="false" />
</session-browser>
<compiler>
<compile-type value="KEEP" />
<compile-dependencies value="ASK" />
<always-show-controls value="false" />
</compiler>
<debugger>
<debugger-type value="JDBC" />
</debugger>
</operation-settings>
<ddl-file-settings>
<extensions>
<mapping file-type-id="VIEW" extensions="vw" />
<mapping file-type-id="TRIGGER" extensions="trg" />
<mapping file-type-id="PROCEDURE" extensions="prc" />
<mapping file-type-id="FUNCTION" extensions="fnc" />
<mapping file-type-id="PACKAGE" extensions="pkg" />
<mapping file-type-id="PACKAGE_SPEC" extensions="pks" />
<mapping file-type-id="PACKAGE_BODY" extensions="pkb" />
<mapping file-type-id="TYPE" extensions="tpe" />
<mapping file-type-id="TYPE_SPEC" extensions="tps" />
<mapping file-type-id="TYPE_BODY" extensions="tpb" />
</extensions>
<general>
<lookup-ddl-files value="true" />
<create-ddl-files value="false" />
<synchronize-ddl-files value="true" />
<use-qualified-names value="false" />
<make-scripts-rerunnable value="true" />
</general>
</ddl-file-settings>
<general-settings>
<regional-settings>
<date-format value="MEDIUM" />
<number-format value="UNGROUPED" />
<locale value="SYSTEM_DEFAULT" />
<use-custom-formats value="false" />
</regional-settings>
<environment>
<environment-types>
<environment-type id="development" name="Development" description="Development environment" color="-2430209/-12296320" readonly-code="false" readonly-data="false" />
<environment-type id="integration" name="Integration" description="Integration environment" color="-2621494/-12163514" readonly-code="true" readonly-data="false" />
<environment-type id="production" name="Production" description="Productive environment" color="-11574/-10271420" readonly-code="true" readonly-data="true" />
<environment-type id="other" name="Other" description="" color="-1576/-10724543" readonly-code="false" readonly-data="false" />
</environment-types>
<visibility-settings>
<connection-tabs value="true" />
<dialog-headers value="true" />
<object-editor-tabs value="true" />
<script-editor-tabs value="false" />
<execution-result-tabs value="true" />
</visibility-settings>
</environment>
</general-settings>
</component>
</project>

@ -0,0 +1,76 @@
import pyautogui
import cv2
import numpy as np
class SetShotArea():
# 获取屏幕宽度和高度
screen_width, screen_height = pyautogui.size()
# 用于存储用户绘制的矩形坐标
rect_coordinates = []
# 获取屏幕截图
capture = pyautogui.screenshot()
# 将截图转换为OpenCV格式
capture = np.array(capture)
capture = cv2.cvtColor(capture, cv2.COLOR_RGB2BGR)
# 回调函数,用于处理鼠标事件
def on_mouse(self, event, x, y, flags, param):
global rect_coordinates
# 当左键按下时记录起始坐标,并允许实时更新
if event == cv2.EVENT_LBUTTONDOWN:
rect_coordinates = [(x, y)]
# 当鼠标移动时,实时更新矩形大小并绘制在截图上
if event == cv2.EVENT_MOUSEMOVE and (flags & cv2.EVENT_FLAG_LBUTTON):
temp_capture = self.capture.copy()
cv2.rectangle(temp_capture, rect_coordinates[0], (x, y), (0, 255, 0), 1)
cv2.imshow("Capture", temp_capture)
# 当左键释放时记录结束坐标,并绘制最终矩形
elif event == cv2.EVENT_LBUTTONUP:
rect_coordinates.append((x, y))
cv2.rectangle(self.capture, rect_coordinates[0], rect_coordinates[1], (0, 255, 0), 2)
cv2.imshow("Capture", self.capture)
# 回调函数,用于处理鼠标事件
def setShotArea(self):
# 创建窗口并设置鼠标事件回调函数
cv2.namedWindow("Capture", cv2.WINDOW_NORMAL)
cv2.setWindowProperty("Capture", cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
cv2.setMouseCallback("Capture", self.on_mouse)
while True:
cv2.imshow("Capture", self.capture)
key = cv2.waitKey(1) & 0xFF
# 当用户按下'Enter'键时截取矩形区域并保存为文件
if key == 13:
if len(rect_coordinates) == 2:
x1, y1 = rect_coordinates[0]
x2, y2 = rect_coordinates[1]
# 截取矩形区域
cropped_area = self.capture[min(y1, y2):max(y1, y2), min(x1, x2):max(x1, x2)]
shotArea = {'left': min(x1, x2), 'top': min(y1, y2), 'width': max(x1, x2) - min(x1, x2),
'height': max(y1, y2) - min(y1, y2)}
print(shotArea)
return shotArea
# 保存截图
# cv2.imwrite("cropped_area.png", cropped_area)
# print("截图已保存为cropped_area(%d,%d;%d,%d).png" % (min(y1, y2), max(y1, y2), min(x1, x2), max(x1, x2)))
break
else:
print("请先绘制矩形区域再按下'Enter'键进行截图!")
cv2.destroyAllWindows()
it = SetShotArea()
q = it.setShotArea()

@ -0,0 +1,23 @@
import psycopg2
# -*- coding: utf-8 -*-
import psycopg2
# 获得连接
conn = psycopg2.connect(database="gamerule", user="postgres", password="123456", host="localhost", port="5432")
# 获得游标对象
cursor = conn.cursor()
sql = "SELECT * FROM table1;"
# 执行SQL查询
cursor.execute(sql)
# 获取查询结果
rows = cursor.fetchall()
# 处理查询结果
for row in rows:
print(row)
# conn.commit()
# 关闭数据库连接
conn.close()

@ -1,12 +1,14 @@
import sys import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QListWidget, QListWidgetItem
import pyautogui as p
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QListWidget, QListWidgetItem, QComboBox
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt
from PyQt5 import uic from PyQt5 import uic
from translate_window import translate from translate_window import translate
from settingrule_window import settingrule from settingrule_window import settingrule
from selectRuleOrder import orderselet from selectRuleOrder import orderselet
from control.contrltools.setShotArea import SetShotArea
class MyApp(QMainWindow): class MyApp(QMainWindow):
@ -15,6 +17,8 @@ class MyApp(QMainWindow):
uic.loadUi('res/ui/main_window.ui', self) uic.loadUi('res/ui/main_window.ui', self)
self.shotArea = {}
self.translate_window = translate() self.translate_window = translate()
self.setRule_window = settingrule() self.setRule_window = settingrule()
self.orderSelect_window = orderselet() self.orderSelect_window = orderselet()
@ -25,6 +29,13 @@ class MyApp(QMainWindow):
self.autoplay = self.findChild(QPushButton, 'autoGameBtn') self.autoplay = self.findChild(QPushButton, 'autoGameBtn')
self.ruleList = self.findChild(QListWidget, 'ruleList') self.ruleList = self.findChild(QListWidget, 'ruleList')
self.language = self.findChild(QComboBox, 'language')
self.choseLocationBtn = self.findChild(QPushButton, 'choseLocationBtn')
self.language.activated.connect(self.selectTransLanguage)
self.choseLocationBtn.clicked.connect(self.takeScreenShot)
self.addRuleBtn.clicked.connect(self.show_settingrule_window) self.addRuleBtn.clicked.connect(self.show_settingrule_window)
self.translateBtn.clicked.connect(self.show_translate_window) self.translateBtn.clicked.connect(self.show_translate_window)
self.autoplay.clicked.connect(self.show_orderselect_window) self.autoplay.clicked.connect(self.show_orderselect_window)
@ -36,12 +47,18 @@ class MyApp(QMainWindow):
self.ruleList.itemClicked.connect(self.onItemClicked) self.ruleList.itemClicked.connect(self.onItemClicked)
self.listIndexs = self.get_item_indexs(self.ruleList) self.listIndexs = self.get_item_indexs(self.ruleList)
def takeScreenShot(self): # 截屏
shot = SetShotArea()
self.shotArea = shot.setShotArea()
screenshot = p.screenshot(region=(self.shotArea['left'], self.shotArea['top'],
self.shotArea['width'], self.shotArea['height']))
def show_orderselect_window(self): def show_orderselect_window(self):
item_states = self.get_item_states(self.ruleList) item_states = self.get_item_states(self.ruleList)
for item_text, item_state in item_states.items(): for item_text, item_state in item_states.items():
if item_state == Qt.Checked: if item_state == Qt.Checked:
item = QListWidgetItem(item_text) item = QListWidgetItem(item_text)
item.setFlags(item.flags()|Qt.ItemIsSelectable|Qt.ItemIsUserCheckable|Qt.ItemIsEnabled) item.setFlags(item.flags() | Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled)
item.setCheckState(Qt.Unchecked) item.setCheckState(Qt.Unchecked)
self.orderSelect_window.order_list.addItem(item) self.orderSelect_window.order_list.addItem(item)
self.orderSelect_window.show() self.orderSelect_window.show()
@ -82,6 +99,15 @@ class MyApp(QMainWindow):
item_indexs[item_text] = index item_indexs[item_text] = index
return item_indexs return item_indexs
def selectTransLanguage(self, index): # 各种语言选项的返回值
selected_language = self.language.itemText(index)
if selected_language == "日语":
print("jap")
elif selected_language == "法语":
print("fra")
elif selected_language == "英语":
print("eng")
if __name__ == "__main__": if __name__ == "__main__":
app = QApplication(sys.argv) app = QApplication(sys.argv)

@ -1,4 +1,4 @@
from PyQt5.QtWidgets import QMainWindow, QWidget from PyQt5.QtWidgets import QMainWindow, QWidget, QGridLayout, QLabel, QPushButton
from PyQt5 import uic from PyQt5 import uic
@ -6,4 +6,46 @@ class operateselect(QMainWindow):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self.selectedWidget = None
uic.loadUi('res/ui/operationSelect_window.ui', self) uic.loadUi('res/ui/operationSelect_window.ui', self)
self.findQGridLayout()
self.confirmBtn = self.findChild(QPushButton, 'confirmBtn')#确定按钮
self.confirmBtn.clicked.connect(self.confirm_clicked)
def confirm_clicked(self):
print("已选择:", self.getOperator())
self.close()
def findQGridLayout(self): # 找到QGridLayout
grid_layout = self.findChild(QGridLayout, "gridLayout")
if grid_layout:
for i in range(grid_layout.rowCount()):
for j in range(grid_layout.columnCount()):
item = grid_layout.itemAtPosition(i, j)
if item and isinstance(item.widget(), QWidget):
widget = item.widget()
widget.mousePressEvent = lambda event, clickedwidget=widget: self.onWidgetClicked(clickedwidget)
self.selectedWidget = None
def onWidgetClicked(self, clickedwidget):
# 将之前被选中的QWidget的背景颜色恢复为默认
if self.selectedWidget:
self.selectedWidget.setStyleSheet("background-color: none;")
# 设置被选中的QWidget的背景颜色为浅蓝色
clickedwidget.setStyleSheet("background-color: lightblue;")
self.selectedWidget = clickedwidget
label = self.selectedWidget.findChild(QLabel)
if label:
print("选中的标签文本:", label.text())
self.setOperator(label.text())
else:
print("未找到标签文本")
def setOperator(self,opt_text):#获取到操作类型值
self.operator_text = opt_text
def getOperator(self):#返回操作类型值
return self.operator_text

@ -122,9 +122,11 @@ def find_target_level():
print("on purpose chapter") print("on purpose chapter")
else: else:
return False return False
while DealPicture.find_photo_center( while (DealPicture.find_photo_center(
'../pictures/level_1-1.png', 1, 0.9) is None and DealPicture.find_photo_center( '../pictures/level_1-1.png', 1, 0.9) is None
'../pictures/level_1-7.png', 1, 0.9) is None: and
DealPicture.find_photo_center('../pictures/level_1-7.png', 1, 0.9) is None):
drag_position = cv2.imread('../pictures/back_btn.png') drag_position = cv2.imread('../pictures/back_btn.png')
name = 'level_1-7.png' name = 'level_1-7.png'
if DealPicture.find_photo_center('../pictures/back_btn.png', 2): if DealPicture.find_photo_center('../pictures/back_btn.png', 2):
@ -260,19 +262,23 @@ class WorkerThread(QThread):
os.chdir('res/rules') os.chdir('res/rules')
current_directory = os.getcwd() current_directory = os.getcwd()
print("Current working directory:", current_directory) print("Current working directory:", current_directory)
# i = 0 i = 0
# if find_target_level(): if find_target_level():
# while i < 10: while i < 10:
# fight_time() fight_time()
# else: else:
# backToTerminal() backToTerminal()
# while fight_time() is False and i < 10: while fight_time() is False:
# while find_target_level() is False: while find_target_level() is False:
# while find_target_chapter() is False: while find_target_chapter() is False:
# while backToTerminal() is False: while backToTerminal() is False:
# print("开始") print("开始")
# i += 1 i += 1
while i < 10:
fight_time()
i += 1
os.chdir('../../../windows') os.chdir('../../../windows')
current_directory = os.getcwd() current_directory = os.getcwd()
print("Current working directory:", current_directory) print("Current working directory:", current_directory)
print("自动战斗完毕")
self.finished.emit() self.finished.emit()

@ -1,7 +0,0 @@
pOffsetX = 2
pOffsetY = 1
if pOffsetX:
poffsetx = pOffsetX
print(1)
if pOffsetY:
poffsety = pOffsetY

@ -0,0 +1,47 @@
import random
from hashlib import md5
import requests
import json
def translate_text(text, from_lang, to_lang, api_key):
base_url = "https://fanyi-api.baidu.com/api/trans/vip/translate"
def make_md5(s, encoding='utf-8'):
return md5(s.encode(encoding)).hexdigest()
salt = random.randint(32768, 65536)
sign = make_md5('20220121001062201' + text + str(salt) + api_key)
params = {
'q': text,
'from': from_lang,
'to': to_lang,
'appid': '20220121001062201',
'salt': salt,
'sign': sign,
}
response = requests.get(base_url, params=params)
result = response.json()
if 'trans_result' in result:
translated_text = result['trans_result'][0]['dst']
return translated_text
else:
return '翻译失败'
# 输入要翻译的文本
text_to_translate = input("请输入要翻译的文本:")
# 设置源语言和目标语言
from_language = 'auto' # 自动检测语言
to_language = 'zh' # 翻译成中文
# 替换为您的API密钥
api_key = 'LxybddF5Y966dC1BXTc5'
# 调用翻译函数并输出结果
translated_text = translate_text(text_to_translate, from_language, to_language, api_key)
if translated_text:
print("翻译结果:", translated_text)
else:
print("翻译失败。")

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>352</width> <width>350</width>
<height>803</height> <height>809</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -114,7 +114,7 @@
<string>语言选择:</string> <string>语言选择:</string>
</property> </property>
</widget> </widget>
<widget class="QComboBox" name="Lauguage"> <widget class="QComboBox" name="language">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>50</x> <x>50</x>
@ -123,11 +123,19 @@
<height>25</height> <height>25</height>
</rect> </rect>
</property> </property>
<property name="currentText">
<string>日语</string>
</property>
<item> <item>
<property name="text"> <property name="text">
<string>日语</string> <string>日语</string>
</property> </property>
</item> </item>
<item>
<property name="text">
<string>法语</string>
</property>
</item>
<item> <item>
<property name="text"> <property name="text">
<string>英语</string> <string>英语</string>

@ -6,212 +6,210 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>693</width> <width>663</width>
<height>431</height> <height>465</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Form</string> <string>Form</string>
</property> </property>
<widget class="QWidget" name="widget" native="true"> <widget class="QWidget" name="widget_9" native="true">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>691</width> <width>671</width>
<height>341</height> <height>471</height>
</rect> </rect>
</property> </property>
<widget class="QWidget" name="verticalLayoutWidget"> <widget class="QWidget" name="layoutWidget">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>10</x>
<y>0</y> <y>10</y>
<width>101</width> <width>641</width>
<height>101</height> <height>321</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QGridLayout" name="gridLayout">
<item> <item row="0" column="0">
<widget class="QGraphicsView" name="graphicsView"/> <widget class="QWidget" name="widget" native="true">
</item> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<widget class="QLabel" name="label"> <widget class="QGraphicsView" name="opr_mouseClick">
<property name="text"> <property name="toolTip">
<string>点击操作</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;12&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="mouseClick">
<property name="text">
<string>点击操作</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget> </widget>
</item> </item>
</layout> <item row="0" column="1">
</widget> <widget class="QWidget" name="widget_2" native="true">
<widget class="QWidget" name="verticalLayoutWidget_2"> <layout class="QVBoxLayout" name="verticalLayout_2">
<property name="geometry"> <item>
<rect> <widget class="QGraphicsView" name="opr_holdTap"/>
<x>130</x> </item>
<y>0</y> <item>
<width>101</width> <widget class="QLabel" name="holdTap">
<height>101</height> <property name="text">
</rect> <string>长按操作</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2"> <property name="alignment">
<item> <set>Qt::AlignCenter</set>
<widget class="QGraphicsView" name="graphicsView_2"/> </property>
</item> </widget>
<item> </item>
<widget class="QLabel" name="label_2"> </layout>
<property name="text">
<string>长按操作</string>
</property>
</widget> </widget>
</item> </item>
</layout> <item row="0" column="2">
</widget> <widget class="QWidget" name="widget_3" native="true">
<widget class="QWidget" name="verticalLayoutWidget_3"> <layout class="QVBoxLayout" name="verticalLayout_3">
<property name="geometry"> <item>
<rect> <widget class="QGraphicsView" name="opr_left"/>
<x>260</x> </item>
<y>0</y> <item>
<width>101</width> <widget class="QLabel" name="left">
<height>101</height> <property name="text">
</rect> <string>左滑操作</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_3"> <property name="alignment">
<item> <set>Qt::AlignCenter</set>
<widget class="QGraphicsView" name="graphicsView_3"/> </property>
</item> </widget>
<item> </item>
<widget class="QLabel" name="label_3"> </layout>
<property name="text">
<string>左划操作</string>
</property>
</widget> </widget>
</item> </item>
</layout> <item row="0" column="3">
</widget> <widget class="QWidget" name="widget_4" native="true">
<widget class="QWidget" name="verticalLayoutWidget_4"> <layout class="QVBoxLayout" name="verticalLayout_4">
<property name="geometry"> <item>
<rect> <widget class="QGraphicsView" name="opr_rignt"/>
<x>390</x> </item>
<y>0</y> <item>
<width>101</width> <widget class="QLabel" name="right">
<height>101</height> <property name="text">
</rect> <string>右滑操作</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_4"> <property name="alignment">
<item> <set>Qt::AlignCenter</set>
<widget class="QGraphicsView" name="graphicsView_4"/> </property>
</item> </widget>
<item> </item>
<widget class="QLabel" name="label_4"> </layout>
<property name="text">
<string>右划操作</string>
</property>
</widget> </widget>
</item> </item>
</layout> <item row="1" column="0">
</widget> <widget class="QWidget" name="widget_6" native="true">
<widget class="QWidget" name="verticalLayoutWidget_5"> <layout class="QVBoxLayout" name="verticalLayout_6">
<property name="geometry"> <item>
<rect> <widget class="QGraphicsView" name="opr_sleep"/>
<x>520</x> </item>
<y>0</y> <item>
<width>101</width> <widget class="QLabel" name="sleep">
<height>101</height> <property name="text">
</rect> <string>休眠操作</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_11"> <property name="alignment">
<item> <set>Qt::AlignCenter</set>
<widget class="QGraphicsView" name="graphicsView_11"/> </property>
</item> </widget>
<item> </item>
<widget class="QLabel" name="label_11"> </layout>
<property name="text">
<string>键盘点击操作</string>
</property>
</widget> </widget>
</item> </item>
</layout> <item row="1" column="1">
</widget> <widget class="QWidget" name="widget_7" native="true">
<widget class="QWidget" name="verticalLayoutWidget_6"> <layout class="QVBoxLayout" name="verticalLayout_7">
<property name="geometry"> <item>
<rect> <widget class="QGraphicsView" name="opr_up"/>
<x>0</x> </item>
<y>130</y> <item>
<width>101</width> <widget class="QLabel" name="up">
<height>101</height> <property name="text">
</rect> <string>上滑操作</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_12"> <property name="alignment">
<item> <set>Qt::AlignCenter</set>
<widget class="QGraphicsView" name="graphicsView_12"/> </property>
</item> </widget>
<item> </item>
<widget class="QLabel" name="label_12"> </layout>
<property name="text">
<string>休眠操作</string>
</property>
</widget> </widget>
</item> </item>
</layout> <item row="0" column="4">
</widget> <widget class="QWidget" name="widget_5" native="true">
<widget class="QWidget" name="verticalLayoutWidget_7"> <layout class="QVBoxLayout" name="verticalLayout_5">
<property name="geometry"> <item>
<rect> <widget class="QGraphicsView" name="opr_keyClick"/>
<x>130</x> </item>
<y>130</y> <item>
<width>101</width> <widget class="QLabel" name="keyClick">
<height>101</height> <property name="text">
</rect> <string>键盘点击操作</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_13"> <property name="alignment">
<item> <set>Qt::AlignCenter</set>
<widget class="QGraphicsView" name="graphicsView_13"/> </property>
</widget>
</item>
</layout>
</widget>
</item> </item>
<item> <item row="1" column="2">
<widget class="QLabel" name="label_13"> <widget class="QWidget" name="widget_8" native="true">
<property name="text"> <layout class="QVBoxLayout" name="verticalLayout_8">
<string>上划操作</string> <item>
</property> <widget class="QGraphicsView" name="opr_down"/>
</item>
<item>
<widget class="QLabel" name="down">
<property name="text">
<string>下滑操作</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="verticalLayoutWidget_8"> <widget class="QPushButton" name="confirmBtn">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>270</x> <x>270</x>
<y>130</y> <y>370</y>
<width>101</width> <width>119</width>
<height>101</height> <height>71</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_14"> <property name="text">
<item> <string>确认</string>
<widget class="QGraphicsView" name="graphicsView_14"/> </property>
</item>
<item>
<widget class="QLabel" name="label_14">
<property name="text">
<string>下划操作</string>
</property>
</widget>
</item>
</layout>
</widget> </widget>
</widget> </widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>300</x>
<y>350</y>
<width>91</width>
<height>71</height>
</rect>
</property>
<property name="text">
<string>确认</string>
</property>
</widget>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>

@ -44,11 +44,11 @@
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt; &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;图片地址&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Ubuntu'; font-size:11pt;&quot;&gt;图片地址&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="pushButton"> <widget class="QPushButton" name="uploadBtn_2">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>220</x> <x>220</x>
@ -100,7 +100,7 @@ p, li { white-space: pre-wrap; }
<string>操作坐标:</string> <string>操作坐标:</string>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="pushButton_2"> <widget class="QPushButton" name="uploadBtn">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>220</x> <x>220</x>
@ -126,8 +126,8 @@ p, li { white-space: pre-wrap; }
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt; &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;0&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Ubuntu'; font-size:11pt;&quot;&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_3"> <widget class="QLabel" name="label_3">
@ -169,8 +169,8 @@ p, li { white-space: pre-wrap; }
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt; &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;0&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Ubuntu'; font-size:11pt;&quot;&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_6"> <widget class="QLabel" name="label_6">
@ -245,11 +245,11 @@ p, li { white-space: pre-wrap; }
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt; &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;图片地址&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Ubuntu'; font-size:11pt;&quot;&gt;图片地址&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="pushButton_3"> <widget class="QPushButton" name="uploadBtn_3">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>220</x> <x>220</x>
@ -275,12 +275,12 @@ p, li { white-space: pre-wrap; }
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt; &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;图片地址&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Ubuntu'; font-size:11pt;&quot;&gt;图片地址&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
</widget> </widget>
</widget> </widget>
<widget class="QPushButton" name="pushButton_4"> <widget class="QPushButton" name="next">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>230</x> <x>230</x>
@ -293,7 +293,7 @@ p, li { white-space: pre-wrap; }
<string>next</string> <string>next</string>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="pushButton_5"> <widget class="QPushButton" name="previous">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>160</x> <x>160</x>
@ -306,7 +306,7 @@ p, li { white-space: pre-wrap; }
<string>previous</string> <string>previous</string>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="pushButton_7"> <widget class="QPushButton" name="preserveBtn">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>160</x> <x>160</x>
@ -319,7 +319,7 @@ p, li { white-space: pre-wrap; }
<string>保存</string> <string>保存</string>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="pushButton_6"> <widget class="QPushButton" name="cancelBtn">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>30</x> <x>30</x>

@ -1,7 +1,8 @@
import os import os
from PyQt5.QtWidgets import QMainWindow, QListWidget, QPushButton from PyQt5.QtWidgets import QMainWindow, QListWidget, QPushButton
from PyQt5 import uic from PyQt5 import uic
from windows.res.rules.明日方舟自动清体力 import WorkerThread
from res.rules.明日方舟自动清体力 import WorkerThread
class orderselet(QMainWindow): class orderselet(QMainWindow):

@ -1,5 +1,8 @@
from PyQt5.QtWidgets import QMainWindow, QComboBox import os
from PyQt5.QtWidgets import QMainWindow, QComboBox, QPushButton, QTextEdit
from PyQt5 import uic from PyQt5 import uic
import shutil
from operateselect_window import operateselect from operateselect_window import operateselect
@ -10,9 +13,21 @@ class settingrule(QMainWindow):
uic.loadUi('res/ui/setRule_window.ui', self) uic.loadUi('res/ui/setRule_window.ui', self)
self.operateChoseBox = self.findChild(QComboBox, 'operateChose') # 图片地址
self.operateChoseBox = self.findChild(QComboBox, 'operateChose') # 操作选择
self.cancelBtn = self.findChild(QPushButton, 'cancelBtn')#取消选择按钮
self.preserveBtn = self.findChild(QPushButton, 'preserveBtn') # 保存选择按钮
self.uploadBtn = self.findChild(QPushButton, 'uploadBtn') # "上传"按钮
self.uploadBtn_2 = self.findChild(QPushButton, 'uploadBtn_2')
self.uploadBtn_3 = self.findChild(QPushButton, 'uploadBtn_3')
self.operateChoseBox.activated.connect(self.handleComboBoxActivated) self.operateChoseBox.activated.connect(self.handleComboBoxActivated)
self.cancelBtn.clicked.connect(self.cancel_clicked)
self.preserveBtn.clicked.connect(self.preserve_clicked)
self.uploadBtn.clicked.connect(self.write_image_to_folder)
self.uploadBtn_2.clicked.connect(self.write_image_to_folder_2)
self.uploadBtn_3.clicked.connect(self.write_image_to_folder_3)
self.operateselect_window = operateselect() self.operateselect_window = operateselect()
@ -24,3 +39,40 @@ class settingrule(QMainWindow):
def create新界面(self): def create新界面(self):
# 显示新界面 # 显示新界面
self.operateselect_window.show() self.operateselect_window.show()
def cancel_clicked(self):
self.close()
def preserve_clicked(self):
self.close()
def write_image_to_folder(self): # 将图片写入目标文件
text_edit = self.findChild(QTextEdit, "textEdit")
self.image_path = text_edit.toPlainText()
print(self.image_path)
destination_path = "D:/代码/pythoncode/src/windows/res/pictures"
if not os.path.exists(self.image_path):
print("image address is not existing!")
return
shutil.copy(self.image_path, destination_path)
def write_image_to_folder_2(self): # 将图片写入目标文件
text_edit = self.findChild(QTextEdit, "textEdit_2")
self.image_path = text_edit.toPlainText()
print(self.image_path)
destination_path = "D:/代码/pythoncode/src/windows/res/pictures"
if not os.path.exists(self.image_path):
print("image address is not existing!")
return
shutil.copy(self.image_path, destination_path)
def write_image_to_folder_3(self): # 将图片写入目标文件
text_edit = self.findChild(QTextEdit, "textEdit_3")
self.image_path = text_edit.toPlainText()
print(self.image_path)
destination_path = "D:/代码/pythoncode/src/windows/res/pictures"
if not os.path.exists(self.image_path):
print("image address is not existing!")
return
shutil.copy(self.image_path, destination_path)

Loading…
Cancel
Save