第一次提交
1、hpi的可用代码; 2、修复了多次点击曝光后,福亮度数据错误的问题; 3、定标方式为大的蓝菲积分球的标准能量曲线,而不是基于asd的能量曲线;
This commit is contained in:
258
.gitignore
vendored
Normal file
258
.gitignore
vendored
Normal file
@ -0,0 +1,258 @@
|
||||
# tc
|
||||
/0/*
|
||||
/problem880_960/*
|
||||
/installer/*
|
||||
/test/*
|
||||
*.hdr
|
||||
*.enp
|
||||
*.log # 自己写的log文件
|
||||
/.idea
|
||||
20220627
|
||||
20220628
|
||||
20220628_focus
|
||||
20220629_focus
|
||||
corning410_test
|
||||
corning410_test.hdr
|
||||
data
|
||||
|
||||
|
||||
|
||||
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
*.py,cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
cover/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
.pybuilder/
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
# For a library or package, you might want to ignore these files since the code is
|
||||
# intended to run in multiple environments; otherwise, check them in:
|
||||
# .python-version
|
||||
|
||||
# pipenv
|
||||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||
# install all needed dependencies.
|
||||
#Pipfile.lock
|
||||
|
||||
# poetry
|
||||
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
||||
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
||||
# commonly ignored for libraries.
|
||||
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
||||
#poetry.lock
|
||||
|
||||
# pdm
|
||||
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
||||
#pdm.lock
|
||||
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
||||
# in version control.
|
||||
# https://pdm.fming.dev/#use-with-ide
|
||||
.pdm.toml
|
||||
|
||||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
||||
__pypackages__/
|
||||
|
||||
# Celery stuff
|
||||
celerybeat-schedule
|
||||
celerybeat.pid
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
||||
|
||||
# pytype static type analyzer
|
||||
.pytype/
|
||||
|
||||
# Cython debug symbols
|
||||
cython_debug/
|
||||
|
||||
# PyCharm
|
||||
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
||||
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||
#.idea/
|
||||
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
# User-specific stuff
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/**/usage.statistics.xml
|
||||
.idea/**/dictionaries
|
||||
.idea/**/shelf
|
||||
|
||||
# AWS User-specific
|
||||
.idea/**/aws.xml
|
||||
|
||||
# Generated files
|
||||
.idea/**/contentModel.xml
|
||||
|
||||
# Sensitive or high-churn files
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
.idea/**/dbnavigator.xml
|
||||
|
||||
# Gradle
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
|
||||
# Gradle and Maven with auto-import
|
||||
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||
# since they will be recreated, and may cause churn. Uncomment if using
|
||||
# auto-import.
|
||||
# .idea/artifacts
|
||||
# .idea/compiler.xml
|
||||
# .idea/jarRepositories.xml
|
||||
# .idea/modules.xml
|
||||
# .idea/*.iml
|
||||
# .idea/modules
|
||||
# *.iml
|
||||
# *.ipr
|
||||
|
||||
# CMake
|
||||
cmake-build-*/
|
||||
|
||||
# Mongo Explorer plugin
|
||||
.idea/**/mongoSettings.xml
|
||||
|
||||
# File-based project format
|
||||
*.iws
|
||||
|
||||
# IntelliJ
|
||||
out/
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Cursive Clojure plugin
|
||||
.idea/replstate.xml
|
||||
|
||||
# SonarLint plugin
|
||||
.idea/sonarlint/
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
# Editor-based Rest Client
|
||||
.idea/httpRequests
|
||||
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
117
0.1remove dark noise.py
Normal file
117
0.1remove dark noise.py
Normal file
@ -0,0 +1,117 @@
|
||||
'''
|
||||
1、读取影像
|
||||
2、bin
|
||||
3、去除暗电流 + 转反射率
|
||||
4、保存光谱
|
||||
'''
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
import sys
|
||||
from osgeo import gdal #读写影像数据
|
||||
|
||||
class GRID:
|
||||
|
||||
#读图像文件
|
||||
@classmethod
|
||||
def read_img(cls, filename):
|
||||
try:
|
||||
dataset = gdal.Open(filename) # 打开文件
|
||||
im_width = dataset.RasterXSize # 栅格矩阵的列数
|
||||
im_height = dataset.RasterYSize # 栅格矩阵的行数
|
||||
num_bands = dataset.RasterCount # 栅格矩阵的波段数
|
||||
im_geotrans = dataset.GetGeoTransform() # 仿射矩阵
|
||||
im_proj = dataset.GetProjection() # 地图投影信息
|
||||
im_data = dataset.ReadAsArray(0, 0, im_width, im_height) # 将数据写成数组,对应栅格矩阵
|
||||
del dataset
|
||||
return im_proj, im_geotrans, im_data
|
||||
except:
|
||||
sys.exit()
|
||||
|
||||
#写文件,以写成tif为例
|
||||
@classmethod
|
||||
def write_img(cls, dst_filename, data):
|
||||
format = "ENVI"
|
||||
driver = gdal.GetDriverByName(format)
|
||||
RasterXSize = data.shape[2] # 遥感影像的sample(列数)
|
||||
RasterYSize = data.shape[1] # 遥感影像的line(行数)
|
||||
band = data.shape[0]
|
||||
dst_ds = driver.Create(dst_filename, RasterXSize, RasterYSize,
|
||||
band,
|
||||
gdal.GDT_Float32) # driver.Create()函数中RasterXSize代表影像的sample(列数),RasterYSize代表影像的line(行数)
|
||||
for i in range(band):
|
||||
dst_ds.GetRasterBand(i + 1).WriteArray(data[i, :, :]) # gdal的band从1开始,所以dst_ds.GetRasterBand(i+1)
|
||||
dst_ds = None
|
||||
|
||||
# bin
|
||||
@classmethod
|
||||
def bin(cls, img, nBin):
|
||||
if nBin == 1:
|
||||
return img
|
||||
image_bin = np.empty((int(img.shape[0] / nBin), img.shape[1], img.shape[2]))
|
||||
k = np.arange(img.shape[0])[0::nBin]
|
||||
for i in range(image_bin.shape[0]):
|
||||
for j in range(nBin):
|
||||
image_bin[i] += img[k[i] + j]
|
||||
return image_bin
|
||||
|
||||
# 文件名
|
||||
image = r'D:\py_program\corning410\test_spectral\lib_spectral2_20帧\delete\leaf'
|
||||
dark_image = r'D:\py_program\corning410\test_spectral\lib_spectral2_20帧\delete\dark'
|
||||
baiban_image = r'D:\py_program\corning410\test_spectral\lib_spectral2_20帧\delete\baiban'
|
||||
|
||||
# 读取影像
|
||||
print('读取影像')
|
||||
im_proj, im_geotrans, im_data = GRID.read_img(image)
|
||||
d1, d2, dark_noise = GRID.read_img(dark_image)
|
||||
b1, b2, baiban = GRID.read_img(baiban_image)
|
||||
|
||||
|
||||
|
||||
n_bin = 1
|
||||
im_data = GRID.bin(im_data, n_bin)
|
||||
dark_noise = GRID.bin(dark_noise, n_bin)
|
||||
baiban = GRID.bin(baiban, n_bin)
|
||||
|
||||
|
||||
# (1)去除暗电流;(2)转反射率
|
||||
dark_noise_mean = dark_noise.mean(axis=1)
|
||||
baiban_mean = baiban.mean(axis=1)
|
||||
im_data = im_data.astype(np.float)
|
||||
for i in range(im_data.shape[1]):
|
||||
im_data[:, i, :] = (im_data[:, i, :] - dark_noise_mean).astype(np.float) / baiban_mean.astype(np.float)
|
||||
|
||||
|
||||
print('将影像写入到文件')
|
||||
GRID.write_img(image + '_reflectivity', im_data)
|
||||
|
||||
|
||||
# 计算波长
|
||||
def calculate_wavelength(x):
|
||||
wavelength = x * 1.999564 - 279.893
|
||||
return wavelength
|
||||
wavelength_tmp = np.empty(300)
|
||||
for i in range(340, 640):
|
||||
wavelength_tmp[i - 340] = calculate_wavelength(i)
|
||||
wavelength = np.empty(im_data.shape[0])
|
||||
k = np.arange(300)[0::n_bin]
|
||||
for i in range(wavelength.shape[0]):
|
||||
tmp = 0
|
||||
for j in range(n_bin):
|
||||
tmp += wavelength_tmp[k[i] + j]
|
||||
wavelength[i] = tmp / n_bin
|
||||
|
||||
|
||||
|
||||
|
||||
# 保存光谱为txt文件
|
||||
spectralNumber = 1
|
||||
spectral_container = np.empty((im_data.shape[0], spectralNumber)).astype(np.float)
|
||||
spectral_container = np.insert(spectral_container, 0, wavelength, axis=1)
|
||||
|
||||
|
||||
spectral = im_data.mean(1).mean(1)
|
||||
spectral_container = np.insert(spectral_container, 1, spectral, axis=1)
|
||||
np.savetxt(r'D:\py_program\corning410\test_spectral\lib_spectral2_20帧\delete\spectral.txt', spectral_container[:, [0, 1]], fmt='%f')
|
||||
|
||||
plt.plot(wavelength, spectral)
|
||||
plt.show()
|
||||
141
0.2stretch.py
Normal file
141
0.2stretch.py
Normal file
@ -0,0 +1,141 @@
|
||||
'''
|
||||
1、读取影像
|
||||
2、bin
|
||||
3、去除暗电流 + 转反射率
|
||||
4、保存光谱
|
||||
'''
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
import sys
|
||||
from osgeo import gdal #读写影像数据
|
||||
from PIL import Image
|
||||
import cv2
|
||||
|
||||
|
||||
class GRID:
|
||||
|
||||
#读图像文件
|
||||
@classmethod
|
||||
def read_img(cls, filename):
|
||||
try:
|
||||
dataset = gdal.Open(filename) # 打开文件
|
||||
im_width = dataset.RasterXSize # 栅格矩阵的列数
|
||||
im_height = dataset.RasterYSize # 栅格矩阵的行数
|
||||
num_bands = dataset.RasterCount # 栅格矩阵的波段数
|
||||
im_geotrans = dataset.GetGeoTransform() # 仿射矩阵
|
||||
im_proj = dataset.GetProjection() # 地图投影信息
|
||||
im_data = dataset.ReadAsArray(0, 0, im_width, im_height) # 将数据写成数组,对应栅格矩阵
|
||||
del dataset
|
||||
return im_proj, im_geotrans, im_data
|
||||
except:
|
||||
sys.exit()
|
||||
|
||||
#写文件,以写成tif为例
|
||||
@classmethod
|
||||
def write_img(cls, dst_filename, data):
|
||||
format = "ENVI"
|
||||
driver = gdal.GetDriverByName(format)
|
||||
RasterXSize = data.shape[2] # 遥感影像的sample(列数)
|
||||
RasterYSize = data.shape[1] # 遥感影像的line(行数)
|
||||
band = data.shape[0]
|
||||
dst_ds = driver.Create(dst_filename, RasterXSize, RasterYSize,
|
||||
band,
|
||||
gdal.GDT_Float32) # driver.Create()函数中RasterXSize代表影像的sample(列数),RasterYSize代表影像的line(行数)
|
||||
for i in range(band):
|
||||
dst_ds.GetRasterBand(i + 1).WriteArray(data[i, :, :]) # gdal的band从1开始,所以dst_ds.GetRasterBand(i+1)
|
||||
dst_ds = None
|
||||
|
||||
# bin
|
||||
@classmethod
|
||||
def bin(cls, img, nBin):
|
||||
if nBin == 1:
|
||||
return img
|
||||
image_bin = np.empty((int(img.shape[0] / nBin), img.shape[1], img.shape[2]))
|
||||
k = np.arange(img.shape[0])[0::nBin]
|
||||
for i in range(image_bin.shape[0]):
|
||||
for j in range(nBin):
|
||||
image_bin[i] += img[k[i] + j]
|
||||
return image_bin
|
||||
|
||||
# 计算波长
|
||||
@classmethod
|
||||
def calculate_wavelength(cls, x):
|
||||
wavelength = x * 1.999564 - 279.893
|
||||
return wavelength
|
||||
|
||||
wavelength = np.empty(639 - 339)
|
||||
for i in range(339, 639):
|
||||
wavelength[i - 339] = GRID.calculate_wavelength(i)
|
||||
|
||||
|
||||
# 等效于ENVI拉伸:No stretch
|
||||
def stretch(img, minimum=0, maximum=255):
|
||||
if len(img.shape) == 2:
|
||||
img_new = (img - minimum) / (maximum - minimum)
|
||||
img_new[img_new < 0] = 0
|
||||
img_new[img_new > 1] = 1
|
||||
return img_new
|
||||
else:
|
||||
img_new = np.empty(img.shape)
|
||||
for i in range(img.shape[2]):
|
||||
img_new[:, :, i] = (img[:, :, i] - minimum) / (maximum - minimum)
|
||||
img_new[:, :, i][img_new[:, :, i] < 0] = 0
|
||||
img_new[:, :, i][img_new[:, :, i] > 1] = 1
|
||||
return img_new
|
||||
|
||||
|
||||
# 当lowPercentile=0, highPercentile=100时,等效于Min-Max Stretching
|
||||
# lowPercentile=2, highPercentile=98时,等效于ENVI拉伸:Linear 2%
|
||||
# https://blog.csdn.net/LEILEI18A/article/details/80180483
|
||||
def percentile_stretching(img, lowPercentile=0, highPercentile=100, minout=0, maxout=255):
|
||||
if len(img.shape) == 2:
|
||||
low = np.percentile(img, lowPercentile)
|
||||
up = np.percentile(img, highPercentile)
|
||||
|
||||
img_new = ((img - low) / (up - low)) * (maxout - minout) + minout
|
||||
img_new[img_new < minout] = minout
|
||||
img_new[img_new > maxout] = maxout
|
||||
img_out = np.uint8(img_new)
|
||||
return img_out
|
||||
else: # 对于彩色照片,需要先单独对每个波段拉伸
|
||||
img_new = np.empty(img.shape)
|
||||
for i in range(img.shape[2]):
|
||||
low = np.percentile(img[:, :, i], lowPercentile)
|
||||
up = np.percentile(img[:, :, i], highPercentile)
|
||||
|
||||
img_new[:, :, i] = minout + ((img[:, :, i] - low) / (up - low)) * (maxout - minout)
|
||||
img_new[:, :, i][img_new[:, :, i] < minout] = minout
|
||||
img_new[:, :, i][img_new[:, :, i] > maxout] = maxout
|
||||
img_out = np.uint8(img_new)
|
||||
return img_out
|
||||
|
||||
|
||||
# 画出图像直方图
|
||||
# https://blog.csdn.net/fly_wt/article/details/83904207
|
||||
def image_hist(image): # 画三通道图像的直方图
|
||||
color = ("blue", "green", "red") # 画笔颜色的值可以为大写或小写或只写首字母或大小写混合
|
||||
for i, color in enumerate(color):
|
||||
hist = cv2.calcHist([image], [i], None, [256], [0, 256])
|
||||
plt.plot(hist, color=color)
|
||||
plt.xlim([0, 256])
|
||||
plt.show()
|
||||
|
||||
|
||||
print("读取影像")
|
||||
#image = r'D:\py_program\corning410\2%拉伸显示问题 + 漏帧\x270\dn值\corning410_test10'
|
||||
image = r'D:\corning410_test10'
|
||||
im_proj, im_geotrans, im_data = GRID.read_img(image)
|
||||
|
||||
|
||||
print("挑取波段用于真彩色显示")
|
||||
rgb_raw = np.dstack((im_data[121], im_data[76], im_data[36]))
|
||||
rgb = rgb_raw.astype(np.uint8)
|
||||
|
||||
|
||||
x1 = stretch(rgb_raw) #等效于ENVI拉伸:No stretch
|
||||
x2 = percentile_stretching(rgb_raw) # Min-Max Stretching
|
||||
x3 = percentile_stretching(rgb_raw, 2, 98) # 2% Stretching
|
||||
|
||||
print("画出影像")
|
||||
plt.imshow(x3)
|
||||
plt.show()
|
||||
15
corning_config.ini
Normal file
15
corning_config.ini
Normal file
@ -0,0 +1,15 @@
|
||||
[basic]
|
||||
binning = 1
|
||||
default_dir = D:\py_program\corning410
|
||||
default_file_name = test
|
||||
|
||||
[effective_window]
|
||||
start_column_binning_1 = 12
|
||||
end_column_binning_1 = 1376
|
||||
start_row_binning_1 = 1
|
||||
end_row_binning_1 = 300
|
||||
start_column_binning_2 = 13
|
||||
end_column_binning_2 = 695
|
||||
start_row_binning_2 = 1
|
||||
end_row_binning_2 = 150
|
||||
|
||||
23
delete.py
Normal file
23
delete.py
Normal file
@ -0,0 +1,23 @@
|
||||
def add(x, y):
|
||||
return x+y
|
||||
|
||||
class A():
|
||||
x = add(3,4)
|
||||
|
||||
|
||||
def p(self):
|
||||
print(self.x)
|
||||
|
||||
|
||||
class B(A):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
||||
class Dog:
|
||||
tricks = [] # mistaken use of a class variable
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
def add_trick(self, trick):
|
||||
self.tricks.append(trick)
|
||||
0
library/__init__.py
Normal file
0
library/__init__.py
Normal file
514
library/config.py
Normal file
514
library/config.py
Normal file
@ -0,0 +1,514 @@
|
||||
# 标准库
|
||||
import traceback, os
|
||||
|
||||
# 三方库
|
||||
import configparser
|
||||
from PyQt5.QtCore import QObject, pyqtSignal
|
||||
|
||||
# 自己写的库
|
||||
from library.dir_manager import DirManager
|
||||
|
||||
|
||||
# class ConfigFile():
|
||||
# def __init__(self):
|
||||
# self.base_dir = get_path()
|
||||
#
|
||||
# self.log_dir = self.base_dir + '//log'
|
||||
# self.create_directory(self.log_dir)
|
||||
#
|
||||
# self.corning_config_file = self.log_dir + '//corning_config.ini'
|
||||
#
|
||||
# self.read_config_file()
|
||||
#
|
||||
# self.signals = WorkerSignals()
|
||||
# self.signals.image_signal.connect(self.image_record_param_changed)
|
||||
# self.signals.spectral_signal.connect(self.spectral_record_param_changed)
|
||||
#
|
||||
#
|
||||
# # 查看是否存在保存光谱和影像文件的目录,如果没有就创建
|
||||
# def create_directory(self, directory):
|
||||
# if not os.path.exists(directory):
|
||||
# print('创建文件夹:', directory)
|
||||
# os.makedirs(directory)
|
||||
#
|
||||
# # 读取配置文件,如果没有就创建
|
||||
# def read_config_file(self):
|
||||
# if os.path.exists(self.corning_config_file):
|
||||
# '''
|
||||
# 如果存在配置文件,就从配置文件中读取软件配置信息
|
||||
# '''
|
||||
# print('配置文件存在!')
|
||||
#
|
||||
# config = configparser.ConfigParser()
|
||||
# config.read(self.corning_config_file)
|
||||
#
|
||||
# self.image_dir = config.get('image_record_param', 'image_dir')
|
||||
# self.create_directory(self.image_dir)
|
||||
# self.default_image_name = config.get('image_record_param', 'default_image_name')
|
||||
# self.framerate = int(config.get('image_record_param', 'framerate'))
|
||||
# self.exposure_time = int(config.get('image_record_param', 'exposure_time'))
|
||||
# self.gain = int(float(config.get('image_record_param', 'gain')))
|
||||
# self.frame_number = int(config.get('image_record_param', 'frame_number'))
|
||||
#
|
||||
# self.spectral_dir = config.get('spectral_record_param', 'spectral_dir')
|
||||
# self.create_directory(self.spectral_dir)
|
||||
# self.default_spectral_name = config.get('spectral_record_param', 'default_spectral_name')
|
||||
#
|
||||
# self.binning = int(config.get('bin', 'binning'))
|
||||
# if self.binning == 1:
|
||||
# self.start_column = int(config.get('bin', 'start_column_binning_1'))
|
||||
# self.end_column = int(config.get('bin', 'end_column_binning_1'))
|
||||
# self.start_row = int(config.get('bin', 'start_row_binning_1'))
|
||||
# self.end_row = int(config.get('bin', 'end_row_binning_1'))
|
||||
# elif self.binning == 2:
|
||||
# self.start_column = int(config.get('bin', 'start_column_binning_2'))
|
||||
# self.end_column = int(config.get('bin', 'end_column_binning_2'))
|
||||
# self.start_row = int(config.get('bin', 'start_row_binning_2'))
|
||||
# self.end_row = int(config.get('bin', 'end_row_binning_2'))
|
||||
#
|
||||
# # print(self.default_dir, self.binning, self.start_column, self.end_column, self.start_row, self.end_row)
|
||||
#
|
||||
# else:
|
||||
# '''
|
||||
# 1、如果不存在配置文件,就建立配置文件;
|
||||
# 2、并且手动创建配置变量
|
||||
# '''
|
||||
# config = configparser.ConfigParser()
|
||||
#
|
||||
# # config.add_section('effective_window')
|
||||
# # startRow = 339
|
||||
# # endRow = 639
|
||||
# # startColumn = 285
|
||||
# # endColumn = 1649
|
||||
#
|
||||
#
|
||||
# config.add_section('bin')
|
||||
# config.set('bin', 'binning', '1')
|
||||
#
|
||||
# config.set('bin', 'start_column_binning_1', '12')
|
||||
# config.set('bin', 'end_column_binning_1', '1376')
|
||||
# config.set('bin', 'start_row_binning_1', '1')
|
||||
# config.set('bin', 'end_row_binning_1', '301')
|
||||
#
|
||||
# config.set('bin', 'start_column_binning_2', '13')
|
||||
# config.set('bin', 'end_column_binning_2', '695')
|
||||
# config.set('bin', 'start_row_binning_2', '1')
|
||||
# config.set('bin', 'end_row_binning_2', '150')
|
||||
#
|
||||
# config.add_section('image_record_param')
|
||||
# config.set('image_record_param', 'image_dir', self.base_dir + '/image')
|
||||
# config.set('image_record_param', 'default_image_name', 'testimage')
|
||||
# config.set('image_record_param', 'framerate', '20')
|
||||
# config.set('image_record_param', 'exposure_time', '500')
|
||||
# config.set('image_record_param', 'gain', '0')
|
||||
# config.set('image_record_param', 'frame_number', '20')
|
||||
#
|
||||
# config.add_section('spectral_record_param')
|
||||
# config.set('spectral_record_param', 'spectral_dir', self.base_dir + '/spectral')
|
||||
# config.set('spectral_record_param', 'default_spectral_name', 'testspectral')
|
||||
# # config.set('spectral_record_param', 'start_column_binning_1', '12')
|
||||
#
|
||||
# with open(self.corning_config_file, mode='w') as f:
|
||||
# config.write(f)
|
||||
# print('创建配置文件成功!')
|
||||
#
|
||||
# # 如果没有配置文件,就手动创建配置变量
|
||||
# self.image_dir = self.base_dir + '/image'
|
||||
# self.create_directory(self.image_dir)
|
||||
# self.default_image_name = 'testimage'
|
||||
# self.framerate = 20
|
||||
# self.exposure_time = 500
|
||||
# self.gain = 0
|
||||
# self.frame_number = 20
|
||||
#
|
||||
# self.spectral_dir = self.base_dir + '/spectral'
|
||||
# self.create_directory(self.spectral_dir)
|
||||
# self.default_spectral_name = 'testspectral'
|
||||
#
|
||||
# self.binning = int(config.get('bin', 'binning'))
|
||||
# self.start_column = int(config.get('bin', 'start_column_binning_1'))
|
||||
# self.end_column = int(config.get('bin', 'end_column_binning_1'))
|
||||
# self.start_row = int(config.get('bin', 'start_row_binning_1'))
|
||||
# self.end_row = int(config.get('bin', 'end_row_binning_1'))
|
||||
#
|
||||
# # self.start_column = 12
|
||||
# # self.end_column = 1376
|
||||
# # self.start_row = 1
|
||||
# # self.end_row = 300
|
||||
#
|
||||
# def image_record_param_changed(self, dictionary):
|
||||
# '''
|
||||
# :param dictionary: {'image_dir':值, 'image_record_param': 值}
|
||||
# :return:
|
||||
# '''
|
||||
# try:
|
||||
# # print('接收的参数个数:', len(dictionary.keys()))
|
||||
#
|
||||
# config = configparser.ConfigParser()
|
||||
# config.read(self.corning_config_file)
|
||||
#
|
||||
# for key in dictionary.keys():
|
||||
# if key == 'image_dir':
|
||||
# self.image_dir = dictionary[key]
|
||||
# config.set('image_record_param', key, dictionary[key])
|
||||
# if key == 'default_image_name':
|
||||
# self.default_image_name = dictionary[key]
|
||||
# config.set('image_record_param', key, dictionary[key])
|
||||
# if key == 'framerate':
|
||||
# self.framerate = dictionary[key]
|
||||
# config.set('image_record_param', key, str(dictionary[key]))
|
||||
# if key == 'exposure_time':
|
||||
# self.exposure_time = dictionary[key]
|
||||
# config.set('image_record_param', key, str(dictionary[key]))
|
||||
# if key == 'gain':
|
||||
# self.gain = dictionary[key]
|
||||
# config.set('image_record_param', key, str(dictionary[key]))
|
||||
# if key == 'frame_number':
|
||||
# self.frame_number = dictionary[key]
|
||||
# config.set('image_record_param', key, str(dictionary[key]))
|
||||
# except:
|
||||
# traceback.print_exc()
|
||||
#
|
||||
# with open(self.corning_config_file, 'w') as f:
|
||||
# config.write(f)
|
||||
#
|
||||
# def spectral_record_param_changed(self, dictionary):
|
||||
# '''
|
||||
# :param dictionary: {'image_dir':值, 'image_record_param': 值}
|
||||
# :return:
|
||||
# '''
|
||||
# print(len(dictionary.keys()))
|
||||
#
|
||||
# config = configparser.ConfigParser()
|
||||
# config.read(self.corning_config_file)
|
||||
#
|
||||
# try:
|
||||
# for key in dictionary.keys():
|
||||
# if key == 'spectral_dir':
|
||||
# self.spectral_dir = dictionary[key]
|
||||
# config.set('spectral_record_param', key, dictionary[key])
|
||||
# if key == 'default_spectral_name':
|
||||
# self.default_spectral_name = dictionary[key]
|
||||
# config.set('spectral_record_param', key, dictionary[key])
|
||||
# except:
|
||||
# traceback.print_exc()
|
||||
#
|
||||
# with open(self.corning_config_file, 'w') as f:
|
||||
# config.write(f)
|
||||
|
||||
|
||||
class ConfigFile(QObject, DirManager):
|
||||
# 信号必须定义为类属性,不能放在__init__方法里
|
||||
image_signal = pyqtSignal(dict)
|
||||
spectral_signal = pyqtSignal(dict)
|
||||
|
||||
def __init__(self):
|
||||
'''
|
||||
配置文件读取和写入类,采集数据需要的帧率、曝光、帧数、文件名等等都由此类从文件中读取并保存在此类中,
|
||||
'''
|
||||
super(ConfigFile, self).__init__()
|
||||
|
||||
self.corning_config_file = self.log_dir + '//corning_config.ini'
|
||||
|
||||
self.read_config_file()
|
||||
|
||||
self.image_signal.connect(self.image_record_param_changed)
|
||||
self.spectral_signal.connect(self.spectral_record_param_changed)
|
||||
|
||||
# 读取配置文件,如果没有就创建
|
||||
def read_config_file(self):
|
||||
if os.path.exists(self.corning_config_file):
|
||||
'''
|
||||
如果存在配置文件,就从配置文件中读取软件配置信息
|
||||
'''
|
||||
print('配置文件存在!')
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
config.read(self.corning_config_file)
|
||||
|
||||
# self.image_dir = config.get('image_record_param', 'image_dir')
|
||||
# self.create_directory(self.image_dir)
|
||||
# self.default_image_name = config.get('image_record_param', 'default_image_name')
|
||||
# self.framerate = int(config.get('image_record_param', 'framerate'))
|
||||
# self.exposure_time = int(float(config.get('image_record_param', 'exposure_time')))
|
||||
# self.gain = int(float(config.get('image_record_param', 'gain')))
|
||||
# self.frame_number = int(config.get('image_record_param', 'frame_number'))
|
||||
# self.arcus_speed = int(config.get('image_record_param', 'arcus_speed'))
|
||||
#
|
||||
# self.spectral_dir = config.get('spectral_record_param', 'spectral_dir')
|
||||
# self.create_directory(self.spectral_dir)
|
||||
# self.default_spectral_name = config.get('spectral_record_param', 'default_spectral_name')
|
||||
# self.spectral_number = int(config.get('spectral_record_param', 'spectral_number'))
|
||||
# self.framenumber_average = int(config.get('spectral_record_param', 'framenumber_average'))
|
||||
# self.exposure_time_spectral = int(config.get('spectral_record_param', 'exposure_time_spectral'))
|
||||
#
|
||||
# self.binning = int(config.get('bin', 'binning'))
|
||||
# if self.binning == 1:
|
||||
# self.start_column = int(config.get('bin', 'start_column_binning_1'))
|
||||
# self.end_column = int(config.get('bin', 'end_column_binning_1'))
|
||||
# self.start_row = int(config.get('bin', 'start_row_binning_1'))
|
||||
# self.end_row = int(config.get('bin', 'end_row_binning_1'))
|
||||
# elif self.binning == 2:
|
||||
# self.start_column = int(config.get('bin', 'start_column_binning_2'))
|
||||
# self.end_column = int(config.get('bin', 'end_column_binning_2'))
|
||||
# self.start_row = int(config.get('bin', 'start_row_binning_2'))
|
||||
# self.end_row = int(config.get('bin', 'end_row_binning_2'))
|
||||
#
|
||||
# # print(self.default_dir, self.binning, self.start_column, self.end_column, self.start_row, self.end_row)
|
||||
else:
|
||||
'''
|
||||
1、如果不存在配置文件,就建立配置文件;
|
||||
2、并且手动创建配置变量
|
||||
'''
|
||||
config = configparser.ConfigParser()
|
||||
|
||||
|
||||
|
||||
config.add_section('bin')
|
||||
config.set('bin', 'binning', '1')
|
||||
|
||||
# # Serial number = 008
|
||||
# config.set('bin', 'start_column_binning_1', '12')
|
||||
# config.set('bin', 'end_column_binning_1', '1376')
|
||||
# config.set('bin', 'start_row_binning_1', '2')
|
||||
# config.set('bin', 'end_row_binning_1', '302')
|
||||
#
|
||||
# config.set('bin', 'start_column_binning_2', '13')
|
||||
# config.set('bin', 'end_column_binning_2', '695')
|
||||
# config.set('bin', 'start_row_binning_2', '0')
|
||||
# config.set('bin', 'end_row_binning_2', '150')
|
||||
|
||||
# # Serial number = 0073
|
||||
# config.set('bin', 'start_column_binning_1', '12')
|
||||
# config.set('bin', 'end_column_binning_1', '1376')
|
||||
# config.set('bin', 'start_row_binning_1', '1')
|
||||
# config.set('bin', 'end_row_binning_1', '301')
|
||||
#
|
||||
# config.set('bin', 'start_column_binning_2', '13')
|
||||
# config.set('bin', 'end_column_binning_2', '695')
|
||||
# config.set('bin', 'start_row_binning_2', '0')
|
||||
# config.set('bin', 'end_row_binning_2', '150')
|
||||
|
||||
# # Serial number = 0095
|
||||
# config.set('bin', 'start_column_binning_1', '12')
|
||||
# config.set('bin', 'end_column_binning_1', '1376')
|
||||
# config.set('bin', 'start_row_binning_1', '1')
|
||||
# config.set('bin', 'end_row_binning_1', '301')
|
||||
#
|
||||
# config.set('bin', 'start_column_binning_2', '13')
|
||||
# config.set('bin', 'end_column_binning_2', '695')
|
||||
# config.set('bin', 'start_row_binning_2', '0')
|
||||
# config.set('bin', 'end_row_binning_2', '150')
|
||||
|
||||
# Serial number = 0031
|
||||
config.set('bin', 'start_column_binning_1', '12')
|
||||
config.set('bin', 'end_column_binning_1', '1376')
|
||||
config.set('bin', 'start_row_binning_1', '1')
|
||||
config.set('bin', 'end_row_binning_1', '301')
|
||||
|
||||
config.set('bin', 'start_column_binning_2', '13')
|
||||
config.set('bin', 'end_column_binning_2', '695')
|
||||
config.set('bin', 'start_row_binning_2', '1')
|
||||
config.set('bin', 'end_row_binning_2', '151')
|
||||
|
||||
# # Serial number = 0099
|
||||
# config.set('bin', 'start_column_binning_1', '12')
|
||||
# config.set('bin', 'end_column_binning_1', '1376')
|
||||
# config.set('bin', 'start_row_binning_1', '1')
|
||||
# config.set('bin', 'end_row_binning_1', '301')
|
||||
#
|
||||
# config.set('bin', 'start_column_binning_2', '13')
|
||||
# config.set('bin', 'end_column_binning_2', '695')
|
||||
# config.set('bin', 'start_row_binning_2', '1')
|
||||
# config.set('bin', 'end_row_binning_2', '151')
|
||||
|
||||
|
||||
|
||||
config.add_section('effective_window')
|
||||
config.set('effective_window', 'width_binning_1', '1392')
|
||||
config.set('effective_window', 'offsetX_binning_1', '272')
|
||||
config.set('effective_window', 'height_binning_1', '302')
|
||||
config.set('effective_window', 'offsetY_binning_1', '364')
|
||||
|
||||
config.set('effective_window', 'width_binning_2', '696')
|
||||
config.set('effective_window', 'offsetX_binning_2', '128')
|
||||
config.set('effective_window', 'height_binning_2', '151')
|
||||
config.set('effective_window', 'offsetY_binning_2', '182')
|
||||
|
||||
config.add_section('calibration_file')
|
||||
config.set('calibration_file', 'cal_file_name_image_bining_1', 'lens_bin1_gain_SN0073')
|
||||
config.set('calibration_file', 'cal_file_name_image_bining_2', 'lens_bin2_gain_SN0073')
|
||||
|
||||
config.set('calibration_file', 'cal_file_it_image_bining_1', '6969')
|
||||
config.set('calibration_file', 'cal_file_it_image_bining_2', '1628')
|
||||
|
||||
config.set('calibration_file', 'cal_file_name_spectral_bining_1', 'optical_fiber_bin1_gain_SN0073')
|
||||
config.set('calibration_file', 'cal_file_it_spectrl_bining_1', '42300')
|
||||
|
||||
|
||||
|
||||
|
||||
config.add_section('wavelength_file_name')
|
||||
config.set('wavelength_file_name', 'file_name', 'wavelength0073.txt')
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
config.add_section('image_record_param')
|
||||
config.set('image_record_param', 'image_dir', self.base_dir + '/image')
|
||||
config.set('image_record_param', 'default_image_name', 'testimage')
|
||||
config.set('image_record_param', 'framerate', '20')
|
||||
config.set('image_record_param', 'exposure_time', '500')
|
||||
config.set('image_record_param', 'gain', '0')
|
||||
config.set('image_record_param', 'frame_number', '20')
|
||||
config.set('image_record_param', 'arcus_speed', '1000')
|
||||
|
||||
config.add_section('spectral_record_param')
|
||||
config.set('spectral_record_param', 'spectral_dir', self.base_dir + '/spectral')
|
||||
config.set('spectral_record_param', 'default_spectral_name', 'testspectral')
|
||||
config.set('spectral_record_param', 'spectral_number', '10')
|
||||
config.set('spectral_record_param', 'framenumber_average', '10')
|
||||
config.set('spectral_record_param', 'exposure_time_spectral', '1000')
|
||||
# config.set('spectral_record_param', 'start_column_binning_1', '12')
|
||||
|
||||
with open(self.corning_config_file, mode='w') as f:
|
||||
config.write(f)# 如果没有配置文件,就手动创建配置变量
|
||||
print('创建配置文件成功!')
|
||||
|
||||
|
||||
|
||||
# 读取配置文件中的参数
|
||||
self.binning = int(config.get('bin', 'binning'))
|
||||
print('读取配置文件中参数:', self.binning)
|
||||
|
||||
if self.binning == 1:
|
||||
self.effective_window_width = int(config.get('effective_window', 'width_binning_1'))
|
||||
self.effective_window_offsetx = int(config.get('effective_window', 'offsetx_binning_1'))
|
||||
self.effective_window_height = int(config.get('effective_window', 'height_binning_1'))
|
||||
self.effective_window_offsety = int(config.get('effective_window', 'offsety_binning_1'))
|
||||
|
||||
self.start_column = int(config.get('bin', 'start_column_binning_1'))
|
||||
self.end_column = int(config.get('bin', 'end_column_binning_1'))
|
||||
self.start_row = int(config.get('bin', 'start_row_binning_1'))
|
||||
self.end_row = int(config.get('bin', 'end_row_binning_1'))
|
||||
|
||||
self.calibration_file_name_image=config.get('calibration_file', 'cal_file_name_image_bining_1')
|
||||
self.calibration_file_it_image = int(config.get('calibration_file', 'cal_file_it_image_bining_1'))
|
||||
self.calibration_file_name_spectral = config.get('calibration_file', 'cal_file_name_spectral_bining_1')
|
||||
self.calibration_file_it_spectral = int(config.get('calibration_file', 'cal_file_it_spectrl_bining_1'))
|
||||
elif self.binning == 2:
|
||||
self.effective_window_width = int(config.get('effective_window', 'width_binning_2'))
|
||||
self.effective_window_offsetx = int(config.get('effective_window', 'offsetx_binning_2'))
|
||||
self.effective_window_height = int(config.get('effective_window', 'height_binning_2'))
|
||||
self.effective_window_offsety = int(config.get('effective_window', 'offsety_binning_2'))
|
||||
|
||||
self.start_column = int(config.get('bin', 'start_column_binning_2'))
|
||||
self.end_column = int(config.get('bin', 'end_column_binning_2'))
|
||||
self.start_row = int(config.get('bin', 'start_row_binning_2'))
|
||||
self.end_row = int(config.get('bin', 'end_row_binning_2'))
|
||||
|
||||
self.calibration_file_name_image = config.get('calibration_file', 'cal_file_name_image_bining_2')
|
||||
self.calibration_file_it_image = int(config.get('calibration_file', 'cal_file_it_image_bining_2'))
|
||||
|
||||
self.wavelength_file_name = config.get('wavelength_file_name', 'file_name')
|
||||
|
||||
self.image_dir = config.get('image_record_param', 'image_dir')
|
||||
self.create_directory(self.image_dir)
|
||||
self.default_image_name = config.get('image_record_param', 'default_image_name')
|
||||
self.framerate = int(float(config.get('image_record_param', 'framerate')))
|
||||
self.exposure_time = int(float(config.get('image_record_param', 'exposure_time')))
|
||||
self.gain = int(float(config.get('image_record_param', 'gain')))
|
||||
self.frame_number = int(float(config.get('image_record_param', 'frame_number')))
|
||||
self.arcus_speed = int(float(config.get('image_record_param', 'arcus_speed')))
|
||||
|
||||
self.spectral_dir = config.get('spectral_record_param', 'spectral_dir')
|
||||
self.create_directory(self.spectral_dir)
|
||||
self.default_spectral_name = config.get('spectral_record_param', 'default_spectral_name')
|
||||
self.spectral_number = int(float(config.get('spectral_record_param', 'spectral_number')))
|
||||
self.framenumber_average = int(float(config.get('spectral_record_param', 'framenumber_average')))
|
||||
self.exposure_time_spectral = int(float(config.get('spectral_record_param', 'exposure_time_spectral')))
|
||||
|
||||
# self.start_column = 12
|
||||
# self.end_column = 1376
|
||||
# self.start_row = 1
|
||||
# self.end_row = 300
|
||||
|
||||
def image_record_param_changed(self, dictionary):
|
||||
'''
|
||||
:param dictionary: {'image_dir':值, 'image_record_param': 值}
|
||||
:return:
|
||||
'''
|
||||
try:
|
||||
# print('接收的参数个数:', len(dictionary.keys()))
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
config.read(self.corning_config_file)
|
||||
|
||||
for key in dictionary.keys():
|
||||
# self.key = dictionary[key]
|
||||
# config.set('image_record_param', key, dictionary[key])
|
||||
|
||||
if key == 'image_dir':
|
||||
self.image_dir = dictionary[key]
|
||||
config.set('image_record_param', key, dictionary[key])
|
||||
if key == 'default_image_name':
|
||||
self.default_image_name = dictionary[key]
|
||||
config.set('image_record_param', key, dictionary[key])
|
||||
if key == 'framerate':
|
||||
self.framerate = dictionary[key]
|
||||
config.set('image_record_param', key, str(dictionary[key]))
|
||||
if key == 'exposure_time':
|
||||
self.exposure_time = dictionary[key]
|
||||
config.set('image_record_param', key, str(dictionary[key]))
|
||||
if key == 'gain':
|
||||
self.gain = dictionary[key]
|
||||
config.set('image_record_param', key, str(dictionary[key]))
|
||||
if key == 'frame_number':
|
||||
self.frame_number = dictionary[key]
|
||||
config.set('image_record_param', key, str(dictionary[key]))
|
||||
if key == 'arcus_speed':
|
||||
self.arcus_speed = dictionary[key]
|
||||
config.set('image_record_param', key, str(dictionary[key]))
|
||||
except:
|
||||
traceback.print_exc()
|
||||
|
||||
with open(self.corning_config_file, 'w') as f:
|
||||
config.write(f)
|
||||
|
||||
def spectral_record_param_changed(self, dictionary):
|
||||
'''
|
||||
:param dictionary: {'image_dir':值, 'image_record_param': 值}
|
||||
:return:
|
||||
'''
|
||||
print(len(dictionary.keys()))
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
config.read(self.corning_config_file)
|
||||
|
||||
try:
|
||||
for key in dictionary.keys():
|
||||
if key == 'spectral_dir':
|
||||
self.spectral_dir = dictionary[key]
|
||||
config.set('spectral_record_param', key, dictionary[key])
|
||||
if key == 'default_spectral_name':
|
||||
self.default_spectral_name = dictionary[key]
|
||||
config.set('spectral_record_param', key, dictionary[key])
|
||||
if key == 'spectral_number':
|
||||
self.spectral_number = dictionary[key]
|
||||
config.set('spectral_record_param', key, str(dictionary[key]))
|
||||
if key == 'framenumber_average':
|
||||
self.framenumber_average = dictionary[key]
|
||||
config.set('spectral_record_param', key, str(dictionary[key]))
|
||||
if key == 'exposure_time_spectral':
|
||||
self.exposure_time_spectral = dictionary[key]
|
||||
config.set('spectral_record_param', key, str(dictionary[key]))
|
||||
except:
|
||||
traceback.print_exc()
|
||||
|
||||
with open(self.corning_config_file, 'w') as f:
|
||||
config.write(f)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
x = ConfigFile()
|
||||
29
library/dir_manager.py
Normal file
29
library/dir_manager.py
Normal file
@ -0,0 +1,29 @@
|
||||
import os
|
||||
from library.functions import get_path
|
||||
|
||||
|
||||
class DirManager():
|
||||
def __init__(self):
|
||||
self.base_dir = get_path()
|
||||
self.log_dir = self.base_dir + '//log'
|
||||
|
||||
self.create_directory(self.log_dir)
|
||||
print(self.log_dir)
|
||||
|
||||
|
||||
# 查看是否存在保存光谱和影像文件的目录,如果没有就创建
|
||||
def create_directory(self, directory):
|
||||
'''
|
||||
:param directory: 需要创建的文件夹绝对路径,不能将参数directory省略而在此函数内部使用self.log_dir,
|
||||
因为本类的继承类也需要使用此函数
|
||||
:return:
|
||||
'''
|
||||
if not os.path.exists(directory):
|
||||
print('创建文件夹:', directory)
|
||||
os.makedirs(directory)
|
||||
# else:
|
||||
# print('文件夹存在:%s' % self.log_dir)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
x = DirManager()
|
||||
144
library/functions.py
Normal file
144
library/functions.py
Normal file
@ -0,0 +1,144 @@
|
||||
# -*- coding:utf-8 -*-
|
||||
|
||||
'''
|
||||
本模块是各种工具函数
|
||||
'''
|
||||
|
||||
import sys, os
|
||||
import numpy as np
|
||||
|
||||
def get_path():
|
||||
'''
|
||||
本函数说明:https://pythonhosted.org/PyInstaller/runtime-information.html#using-sys-executable-and-sys-argv-0
|
||||
:return: 返回运行程序的绝对路径
|
||||
'''
|
||||
frozen = 'not'
|
||||
if getattr(sys, 'frozen', False):
|
||||
# we are running in a bundle
|
||||
bundle_dir = sys._MEIPASS
|
||||
|
||||
# print('we are running in a bundle(pyinstaller打包程序)!')
|
||||
else:
|
||||
# we are running in a normal Python environment
|
||||
# bundle_dir = os.path.dirname(os.path.abspath(__file__)) # 此行代码返回的是本文件的路径,而不是本文件所导入的文件的路径
|
||||
bundle_dir = os.getcwd()
|
||||
# print('we are running in a normal Python environment(非pyinstaller打包程序)!')
|
||||
|
||||
return bundle_dir
|
||||
|
||||
|
||||
def get_resource_path(relative_path):
|
||||
'''
|
||||
本函数说明:https://www.zacoding.com/en/post/python-selenium-to-exe/
|
||||
:param relative_path:
|
||||
:return:
|
||||
'''
|
||||
try:
|
||||
base_path = sys._MEIPASS
|
||||
except Exception:
|
||||
base_path = os.getcwd()
|
||||
return os.path.join(base_path, relative_path)
|
||||
|
||||
|
||||
def percentile_stretching(img, lowPercentile=0, highPercentile=100, minout=0, maxout=255):
|
||||
'''
|
||||
本程序用于拉伸影像
|
||||
:param img:
|
||||
:param lowPercentile:
|
||||
:param highPercentile:
|
||||
:param minout:
|
||||
:param maxout:
|
||||
:return:
|
||||
'''
|
||||
if len(img.shape) == 2:
|
||||
low = np.percentile(img, lowPercentile)
|
||||
up = np.percentile(img, highPercentile)
|
||||
|
||||
img_new = ((img - low) / (up - low)) * (maxout - minout) + minout
|
||||
img_new[img_new < minout] = minout
|
||||
img_new[img_new > maxout] = maxout
|
||||
img_out = np.uint8(img_new)
|
||||
return img_out
|
||||
else: # 对于彩色照片,需要先单独对每个波段拉伸
|
||||
img_new = np.empty(img.shape)
|
||||
for i in range(img.shape[2]):
|
||||
low = np.percentile(img[:, :, i], lowPercentile)
|
||||
up = np.percentile(img[:, :, i], highPercentile)
|
||||
|
||||
img_new[:, :, i] = minout + ((img[:, :, i] - low) / (up - low)) * (maxout - minout)
|
||||
img_new[:, :, i][img_new[:, :, i] < minout] = minout
|
||||
img_new[:, :, i][img_new[:, :, i] > maxout] = maxout
|
||||
img_out = np.uint8(img_new)
|
||||
return img_out
|
||||
|
||||
|
||||
def return_file_path(out, filepath, filename, model='image'):
|
||||
'''
|
||||
本程序功能:在filepath中寻找所有包含filename所有文件(filename1、filename2),然后返回一个filename3
|
||||
:param out: 永远传入一个空list:[];用于存储所有递归调用
|
||||
:param filepath:
|
||||
:param filename:
|
||||
:param model: 有两个模式:image 和 spectral
|
||||
:return:
|
||||
'''
|
||||
|
||||
# 出现此处代码的原因是:当次函数定义执行后,函数定义就包含了out参数的引用,
|
||||
# 而out参数是可变参数,每一次调用次函数都会改变out的值,所有不能保证每次调用此函数时out==[]。
|
||||
# 当第二次调用此方程时
|
||||
# if out != []:
|
||||
# if filename not in os.path.splitext(out[-1]):
|
||||
# out = []
|
||||
|
||||
if model == 'image':
|
||||
files = os.listdir(filepath)
|
||||
for s in files:
|
||||
abspath = os.path.join(filepath, s)
|
||||
if os.path.isfile(abspath):
|
||||
tmp = os.path.splitext(os.path.split(abspath)[1])[0]
|
||||
if tmp not in out: # 防止重复记录
|
||||
if filename in tmp:
|
||||
out.append(tmp)
|
||||
else:
|
||||
pass
|
||||
# print('没有进来')
|
||||
elif os.path.isdir(abspath):
|
||||
return_file_path(out, abspath, filename)
|
||||
out.sort(key=lambda x: int(x.replace(filename, '')))
|
||||
|
||||
if out == []:
|
||||
x = filename + str(0)
|
||||
return os.path.join(filepath, x), 0
|
||||
if out != []:
|
||||
number = int(out[-1].replace(filename, '')) + 1
|
||||
x = filename + str(number)
|
||||
return os.path.join(filepath, x), number
|
||||
elif model == 'spectral':
|
||||
files = os.listdir(filepath)
|
||||
for s in files:
|
||||
abspath = os.path.join(filepath, s)
|
||||
if os.path.isfile(abspath) and os.path.splitext(s)[1] == '.txt':
|
||||
tmp = os.path.splitext(os.path.split(abspath)[1])[0]
|
||||
if tmp not in out: # 防止重复记录
|
||||
if filename in tmp:
|
||||
out.append(tmp)
|
||||
elif os.path.isdir(abspath):
|
||||
return_file_path(out, abspath, filename)
|
||||
out.sort(key=lambda x: int(x.replace(filename, '')))
|
||||
|
||||
if out == []:
|
||||
x = filename + str(0) + '.txt'
|
||||
return os.path.join(filepath, x), 0
|
||||
if out != []:
|
||||
number = int(out[-1].replace(filename, '')) + 1 # 现存最大文件号 + 1
|
||||
x = filename + str(number) + '.txt'
|
||||
return os.path.join(filepath, x), number
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# print(get_path())
|
||||
|
||||
x = return_file_path([], r'D:\delete', 'sss', model='spectral')
|
||||
print(x)
|
||||
|
||||
# y = return_file_path([], r'D:\delete', 'rr')
|
||||
# print(y)
|
||||
40
library/image_reader_writer.py
Normal file
40
library/image_reader_writer.py
Normal file
@ -0,0 +1,40 @@
|
||||
import sys, traceback
|
||||
from osgeo import gdal
|
||||
|
||||
# 读写影像类
|
||||
class ImageReaderWriter(object):
|
||||
|
||||
#读图像文件
|
||||
@classmethod
|
||||
def read_img(cls, filename, xoff=0, yoff=0, im_width=None, im_height=None):
|
||||
try:
|
||||
dataset = gdal.Open(filename) # 打开文件
|
||||
if im_width == None:
|
||||
im_width = dataset.RasterXSize # 栅格矩阵的列数
|
||||
if im_height == None:
|
||||
im_height = dataset.RasterYSize # 栅格矩阵的行数
|
||||
num_bands = dataset.RasterCount # 栅格矩阵的波段数
|
||||
im_geotrans = dataset.GetGeoTransform() # 仿射矩阵
|
||||
im_proj = dataset.GetProjection() # 地图投影信息
|
||||
im_data = dataset.ReadAsArray(xoff, yoff, im_width, im_height) # 将数据写成数组,对应栅格矩阵
|
||||
del dataset
|
||||
return im_proj, im_geotrans, im_data
|
||||
except AttributeError:
|
||||
print('gdal打开影像:没有文件!')
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
pass
|
||||
|
||||
#写文件,以写成tif为例
|
||||
@classmethod
|
||||
def write_img(cls, dst_filename, data):
|
||||
format = "ENVI"
|
||||
driver = gdal.GetDriverByName(format)
|
||||
RasterXSize = data.shape[2] # 遥感影像的sample(列数)
|
||||
RasterYSize = data.shape[1] # 遥感影像的line(行数)
|
||||
band = data.shape[0]
|
||||
# driver.Create()函数中RasterXSize代表影像的sample(列数),RasterYSize代表影像的line(行数)
|
||||
dst_ds = driver.Create(dst_filename, RasterXSize, RasterYSize, band, gdal.GDT_Float32)
|
||||
for i in range(band):
|
||||
dst_ds.GetRasterBand(i + 1).WriteArray(data[i, :, :]) # gdal的band从1开始,所以dst_ds.GetRasterBand(i+1)
|
||||
dst_ds = None
|
||||
50
library/log.py
Normal file
50
library/log.py
Normal file
@ -0,0 +1,50 @@
|
||||
# 标准库
|
||||
import traceback, os, logging
|
||||
|
||||
# 三方库
|
||||
import configparser
|
||||
|
||||
# 自己写的库
|
||||
from library.dir_manager import DirManager
|
||||
|
||||
|
||||
class Log(DirManager):
|
||||
def __init__(self):
|
||||
super(Log, self).__init__()
|
||||
|
||||
self.log()
|
||||
|
||||
def log(self):
|
||||
# 判断是否存在log文件,如果不存在就创建
|
||||
if not os.path.exists(self.log_dir + '//all_operate.log'):
|
||||
with open(self.log_dir + '//all_operate.log', 'w') as f:
|
||||
pass
|
||||
if not os.path.exists(self.log_dir + '//error.log'):
|
||||
with open(self.log_dir + '//error.log', 'w') as f:
|
||||
pass
|
||||
|
||||
# 初始化log
|
||||
root_logger = logging.getLogger('root')
|
||||
root_logger.setLevel(level=logging.DEBUG) # logger级别设置为低级别,代表这个logger可以处理很多级别的日志,更灵活的处理放在logger中的各种handler中
|
||||
|
||||
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||
|
||||
all_operate_file_handler = logging.FileHandler(self.log_dir + '//all_operate.log') # 输出到文件
|
||||
all_operate_file_handler.setLevel(logging.INFO)
|
||||
all_operate_file_handler.setFormatter(formatter)
|
||||
|
||||
error_file_handler = logging.FileHandler(self.log_dir + '//error.log') # 输出到文件
|
||||
error_file_handler.setLevel(logging.ERROR)
|
||||
error_file_handler.setFormatter(formatter)
|
||||
|
||||
stream_handler = logging.StreamHandler() # 输出到控制台
|
||||
stream_handler.setLevel(logging.INFO)
|
||||
stream_handler.setFormatter(formatter)
|
||||
|
||||
root_logger.addHandler(all_operate_file_handler)
|
||||
root_logger.addHandler(error_file_handler)
|
||||
root_logger.addHandler(stream_handler)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
x = Log()
|
||||
25
library/log/corning_config.ini
Normal file
25
library/log/corning_config.ini
Normal file
@ -0,0 +1,25 @@
|
||||
[bin]
|
||||
binning = 1
|
||||
start_column_binning_1 = 12
|
||||
end_column_binning_1 = 1376
|
||||
start_row_binning_1 = 1
|
||||
end_row_binning_1 = 301
|
||||
start_column_binning_2 = 13
|
||||
end_column_binning_2 = 695
|
||||
start_row_binning_2 = 1
|
||||
end_row_binning_2 = 150
|
||||
|
||||
[image_record_param]
|
||||
image_dir = D:\py_program\corning410\library/image
|
||||
default_image_name = test_image
|
||||
framerate = 20
|
||||
exposure_time = 500
|
||||
gain = 0
|
||||
frame_number = 20
|
||||
|
||||
[spectral_record_param]
|
||||
spectral_dir = D:\py_program\corning410\library/spectral
|
||||
default_spectral_name = test_spectral
|
||||
spectral_number = 10
|
||||
framenumber_average = 10
|
||||
|
||||
161
library/matplotlib_display_image_spectral.py
Normal file
161
library/matplotlib_display_image_spectral.py
Normal file
@ -0,0 +1,161 @@
|
||||
import matplotlib
|
||||
matplotlib.use("Qt5Agg") # 声明使用QT5
|
||||
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
|
||||
from matplotlib.figure import Figure
|
||||
import traceback
|
||||
import time, sys
|
||||
from functions import percentile_stretching
|
||||
|
||||
from PyQt5 import QtWidgets, QtCore, uic
|
||||
import pyqtgraph as pg
|
||||
from random import randint
|
||||
|
||||
|
||||
class ArgsError(Exception):
|
||||
pass
|
||||
|
||||
# 画图类,用于:画出采集到的光谱;调焦(影响模式调焦)
|
||||
class MatplotlibSpectralViewer(FigureCanvas):
|
||||
def __init__(self, xlabel=None, ylabel=None, width=5, height=4, dpi=100):
|
||||
# 第一步:创建一个创建Figure
|
||||
self.fig = Figure(figsize=(width, height), dpi=dpi)
|
||||
|
||||
# 第二步:在父类中激活Figure窗口
|
||||
# this is the Canvas Widget that displays the `figure`
|
||||
# it takes the `figure` instance as a parameter to __init__
|
||||
super(MatplotlibSpectralViewer, self).__init__(self.fig) # 此句必不可少,否则不能显示图形
|
||||
|
||||
# 第三步:创建一个子图,用于绘制图形用,111表示子图编号,如matlab的subplot(1,1,1)
|
||||
self.axes = self.fig.add_subplot(1, 1, 1)
|
||||
self.axes.set_xlabel('Wavelength (nm)')
|
||||
self.axes.set_ylabel('reflectance')
|
||||
|
||||
self.xlabel = xlabel
|
||||
self.ylabel = ylabel
|
||||
|
||||
self._plotref = None # 这里代表曲线
|
||||
|
||||
self.axes.set_ylim(0, 1.2)
|
||||
|
||||
# 第四步:就是画图,【可以在此类中画,也可以在其它类中画】
|
||||
def plot_wrap(self, *args):
|
||||
if self.xlabel is not None:
|
||||
self.axes.set_xlabel(self.xlabel)
|
||||
if self.ylabel is not None:
|
||||
self.axes.set_ylabel(self.ylabel)
|
||||
|
||||
try:
|
||||
if self._plotref == None:
|
||||
if len(args) == 0:
|
||||
raise ArgsError('传入了0个参数,本函数只能传入1/2个参数!')
|
||||
elif len(args) == 1:
|
||||
self.axes.cla()
|
||||
|
||||
# self.axes.set_ylim(0, 1.2)
|
||||
|
||||
self._plotref = self.axes.plot(list(range(len(args[0]))), args[0])[0]
|
||||
self.draw()
|
||||
elif len(args) == 2:
|
||||
self.axes.cla()
|
||||
|
||||
# self.axes.set_ylim(0, 1.2)
|
||||
|
||||
self._plotref = self.axes.plot(args[0], args[1])[0]
|
||||
self.draw()
|
||||
elif len(args) > 2:
|
||||
raise ArgsError('传入了大于2个参数,本函数只能传入1/2个参数!')
|
||||
elif self._plotref is not None:
|
||||
if len(args) == 0:
|
||||
raise ArgsError('传入了0个参数,本函数只能传入1/2个参数!')
|
||||
elif len(args) == 1:
|
||||
self._plotref.set_data(list(range(len(args[0]))), args[0])
|
||||
|
||||
# 更新显示区域
|
||||
self.axes.set_xlim(min(list(range(len(args[0])))), max(list(range(len(args[0])))))
|
||||
self.axes.set_ylim(min(args[0]), max(args[0]))
|
||||
|
||||
# self.axes.set_ylim(0, 1.2)
|
||||
|
||||
# 绘制图像
|
||||
self.draw()
|
||||
elif len(args) == 2:
|
||||
self._plotref.set_data(args[0], args[1])
|
||||
|
||||
# 更新显示区域
|
||||
self.axes.set_xlim(min(args[0]), max(args[0]))
|
||||
self.axes.set_ylim(min(args[1]), max(args[1]))
|
||||
|
||||
# self.axes.set_ylim(0, 1.2)
|
||||
|
||||
# 绘制图像
|
||||
self.draw()
|
||||
elif len(args) > 2:
|
||||
raise ArgsError('传入了大于2个参数,本函数只能传入1/2个参数!')
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
|
||||
|
||||
# 画图类,用于:画出采集到的图像;显示帧流(光谱模式对准光纤)
|
||||
class MatplotlibImageViewer(FigureCanvas):
|
||||
def __init__(self, width=5, height=4, dpi=100):
|
||||
# 第一步:创建一个创建Figure
|
||||
self.fig = Figure(figsize=(width, height), dpi=dpi)
|
||||
# 第二步:在父类中激活Figure窗口
|
||||
# this is the Canvas Widget that displays the `figure`
|
||||
# it takes the `figure` instance as a parameter to __init__
|
||||
super(MatplotlibImageViewer, self).__init__(self.fig) # 此句必不可少,否则不能显示图形
|
||||
# 第三步:创建一个子图,用于绘制图形用,111表示子图编号,如matlab的subplot(1,1,1)
|
||||
self.axes = self.fig.add_subplot(1, 1, 1)
|
||||
|
||||
self._plotref = None # 这里代表图像
|
||||
|
||||
# 第四步:就是画图,【可以在此类中画,也可以在其它类中画】
|
||||
def setImage(self, image, lowPercentile=0, highPercentile=100):
|
||||
self.axes.set_xticks([])
|
||||
self.axes.set_yticks([])
|
||||
|
||||
if self._plotref == None:
|
||||
self._plotref = self.axes.imshow(image)
|
||||
self.draw()
|
||||
elif self._plotref is not None:
|
||||
self._plotref.set_data(percentile_stretching(image, lowPercentile, highPercentile))
|
||||
self.draw()
|
||||
|
||||
|
||||
class MainWindow(QtWidgets.QMainWindow):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(MainWindow, self).__init__(*args, **kwargs)
|
||||
|
||||
# self.graphWidget = QtSpectralViewer()
|
||||
self.graphWidget = MatplotlibSpectralViewer(xlabel='Wavelength (nm)', ylabel='reflectance')
|
||||
self.setCentralWidget(self.graphWidget)
|
||||
|
||||
self.x = list(range(100)) # 100 time points
|
||||
self.y = [randint(0, 100) for _ in range(100)] # 100 data points
|
||||
|
||||
# self.graphWidget.setBackground('w')
|
||||
|
||||
pen = pg.mkPen(color=(255, 0, 0))
|
||||
self.graphWidget.plot_wrap(self.x, self.y)
|
||||
|
||||
self.timer = QtCore.QTimer()
|
||||
self.timer.timeout.connect(self.update_plot_data)
|
||||
self.timer.start(10)
|
||||
|
||||
def update_plot_data(self):
|
||||
self.x = self.x[1:] # Remove the first y element.
|
||||
self.x.append(self.x[-1] + 1) # Add a new value 1 higher than the last.
|
||||
|
||||
self.y = self.y[1:] # Remove the first
|
||||
self.y.append(randint(0, 100)) # Add a new random value.
|
||||
|
||||
# self.data_line.setData(self.x, self.y) # Update the data.
|
||||
|
||||
self.graphWidget.plot_wrap(self.x, self.y)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
w = MainWindow()
|
||||
w.show()
|
||||
sys.exit(app.exec_())
|
||||
53
library/message_box.py
Normal file
53
library/message_box.py
Normal file
@ -0,0 +1,53 @@
|
||||
from PyQt5.QtWidgets import QApplication, QDialog
|
||||
from PyQt5.QtCore import Qt
|
||||
|
||||
import sys
|
||||
|
||||
from library.message_box_ui import *
|
||||
|
||||
|
||||
class MessageBox(QDialog, Ui_message_box_ui):
|
||||
def __init__(self, txt, parent=None):
|
||||
'''
|
||||
The super().__init__() method invokes the base class constructor from the MyForm class,
|
||||
that is, the constructor of the QDialog class is invoked from MyForm class to indicate that
|
||||
QDialog is displayed through this class iss a top-level window.
|
||||
'''
|
||||
super(MessageBox, self).__init__(parent)
|
||||
self.setupUi(self)
|
||||
|
||||
# self.setWindowState(Qt.WindowMaximized) # 初始化时就最大化窗口
|
||||
self.setWindowModality(Qt.ApplicationModal) # 阻塞此窗口:只能在关闭此窗口之后才能操作后面的窗口,但是不会阻塞调用此窗口的进程的代码;此行代码必须放在show()函数之前
|
||||
# self.setWindowModality(Qt.WindowModal)
|
||||
|
||||
# 无边框
|
||||
# self.setWindowFlags(Qt.FramelessWindowHint)
|
||||
|
||||
self.txt = txt
|
||||
|
||||
self.info()
|
||||
|
||||
self.confirm_bt.clicked.connect(self.shutdown)
|
||||
|
||||
# 禁止调整大小
|
||||
# self.setFixedSize(self.width(), self.height())
|
||||
|
||||
def info(self):
|
||||
self.info_label.setText(self.txt)
|
||||
|
||||
# self.exec() # 阻塞调用此窗口后的进程的代码,只有此窗口返回后才能执行此窗口外的代码
|
||||
|
||||
# self.show() # 只是显示,不会阻塞任何代码
|
||||
|
||||
def shutdown(self):
|
||||
self.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
x = MessageBox('请先曝光和采集暗电流!')
|
||||
|
||||
# x.show()
|
||||
|
||||
sys.exit(app.exec_())
|
||||
90
library/message_box_ui.py
Normal file
90
library/message_box_ui.py
Normal file
@ -0,0 +1,90 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'message_box_ui.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_message_box_ui(object):
|
||||
def setupUi(self, message_box_ui):
|
||||
message_box_ui.setObjectName("message_box_ui")
|
||||
message_box_ui.resize(487, 385)
|
||||
self.gridLayout = QtWidgets.QGridLayout(message_box_ui)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.info_label = QtWidgets.QLabel(message_box_ui)
|
||||
self.info_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:30pt;\n"
|
||||
" /*字体颜色为白色*/\n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/\n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.info_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.info_label.setObjectName("info_label")
|
||||
self.gridLayout.addWidget(self.info_label, 0, 0, 1, 1)
|
||||
self.confirm_bt = QtWidgets.QPushButton(message_box_ui)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.confirm_bt.sizePolicy().hasHeightForWidth())
|
||||
self.confirm_bt.setSizePolicy(sizePolicy)
|
||||
self.confirm_bt.setMinimumSize(QtCore.QSize(0, 130))
|
||||
self.confirm_bt.setAcceptDrops(False)
|
||||
self.confirm_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.confirm_bt.setObjectName("confirm_bt")
|
||||
self.gridLayout.addWidget(self.confirm_bt, 1, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(message_box_ui)
|
||||
QtCore.QMetaObject.connectSlotsByName(message_box_ui)
|
||||
|
||||
def retranslateUi(self, message_box_ui):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
message_box_ui.setWindowTitle(_translate("message_box_ui", "提示"))
|
||||
self.info_label.setText(_translate("message_box_ui", "提示信息"))
|
||||
self.confirm_bt.setText(_translate("message_box_ui", "确定"))
|
||||
106
library/message_box_ui.ui
Normal file
106
library/message_box_ui.ui
Normal file
@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>message_box_ui</class>
|
||||
<widget class="QDialog" name="message_box_ui">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>487</width>
|
||||
<height>385</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>提示</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="info_label">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QLabel
|
||||
{
|
||||
/*字体为微软雅黑*/
|
||||
font-family:Microsoft Yahei;
|
||||
/*字体大小为20点*/
|
||||
font-size:30pt;
|
||||
/*字体颜色为白色*/
|
||||
/*color:white;*/
|
||||
/*背景颜色*/
|
||||
/*background-color:rgb(14 , 150 , 254);*/
|
||||
/*边框圆角半径为8像素*/
|
||||
/*border-radius:8px;*/
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>提示信息</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="confirm_bt">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>130</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="acceptDrops">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">/*按钮普通态*/
|
||||
QPushButton
|
||||
{
|
||||
/*字体为微软雅黑*/
|
||||
font-family:Microsoft Yahei;
|
||||
/*字体大小为20点*/
|
||||
font-size:25pt;
|
||||
/*字体颜色为白色*/
|
||||
/*color:white;*/
|
||||
/*背景颜色*/
|
||||
background-color:rgb(225 , 225 , 225);
|
||||
/*边框圆角半径为8像素*/
|
||||
border-radius:20px;
|
||||
}
|
||||
|
||||
/*按钮停留态*/
|
||||
QPushButton:hover
|
||||
{
|
||||
/*背景颜色*/
|
||||
background-color:rgb(44 , 137 , 255);
|
||||
/*边框圆角半径为8像素*/
|
||||
/*border-radius:20px;*/
|
||||
}
|
||||
|
||||
/*按钮按下态*/
|
||||
QPushButton:pressed
|
||||
{
|
||||
/*背景颜色*/
|
||||
background-color:rgb(255 , 0 , 0);
|
||||
|
||||
/*左内边距为3像素,让按下时字向右移动3像素*/
|
||||
padding-left:3px;
|
||||
|
||||
/*上内边距为3像素,让按下时字向下移动3像素*/
|
||||
padding-top:3px;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>确定</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
81
library/multithread.py
Normal file
81
library/multithread.py
Normal file
@ -0,0 +1,81 @@
|
||||
import sys, traceback
|
||||
from PyQt5.QtCore import QRunnable, QObject, pyqtSignal, pyqtSlot
|
||||
|
||||
class WorkerSignals(QObject):
|
||||
'''
|
||||
Defines the signals available from a running worker thread.
|
||||
|
||||
Supported signals are:
|
||||
|
||||
finished
|
||||
No data
|
||||
|
||||
error
|
||||
`tuple` (exctype, value, traceback.format_exc() )
|
||||
|
||||
result
|
||||
`object` data returned from processing, anything
|
||||
|
||||
progress
|
||||
`int` indicating % progress
|
||||
|
||||
# 信号必须定义为类属性,不能放在__init__方法里
|
||||
'''
|
||||
finished = pyqtSignal()
|
||||
error = pyqtSignal(tuple)
|
||||
result = pyqtSignal(object)
|
||||
progress = pyqtSignal(int) # 可以用作进度条
|
||||
|
||||
serial = pyqtSignal(object) # 2record_system_v26的此信号移动到类SerialPort中了
|
||||
|
||||
image_signal = pyqtSignal(dict) # 只用在2record_system_v25中
|
||||
spectral_signal = pyqtSignal(dict) # 只用在2record_system_v25中
|
||||
|
||||
openinfo = pyqtSignal(int) # 只用在2record_system_v25中
|
||||
plotsignal = pyqtSignal() # 2record_system_v26的此信号移动到类ImageWindowPhone中了
|
||||
|
||||
# https://www.learnpyqt.com/courses/concurrent-execution/multithreading-pyqt-applications-qthreadpool/
|
||||
# 用于qt多线程:运行long-time task
|
||||
class Worker(QRunnable):
|
||||
'''
|
||||
Worker thread
|
||||
|
||||
Inherits from QRunnable to handler worker thread setup, signals and wrap-up.
|
||||
|
||||
:param callback: The function callback to run on this worker thread. Supplied args and
|
||||
kwargs will be passed through to the runner.
|
||||
:type callback: function
|
||||
:param args: Arguments to pass to the callback function
|
||||
:param kwargs: Keywords to pass to the callback function
|
||||
|
||||
'''
|
||||
|
||||
def __init__(self, fn, *args, **kwargs):
|
||||
super(Worker, self).__init__()
|
||||
|
||||
# Store constructor arguments (re-used for processing)
|
||||
self.fn = fn
|
||||
self.args = args
|
||||
self.kwargs = kwargs
|
||||
self.signals = WorkerSignals()
|
||||
|
||||
# Add the callback to our kwargs
|
||||
# self.kwargs['progress_callback'] = self.signals.progress
|
||||
|
||||
@pyqtSlot()
|
||||
def run(self):
|
||||
'''
|
||||
Initialise the runner function with passed args, kwargs.
|
||||
'''
|
||||
try: # 如果有错,就捕捉错误
|
||||
result = self.fn(*self.args, **self.kwargs)
|
||||
except Exception: # 根据错误进行处理
|
||||
traceback.print_exc()
|
||||
exctype, value = sys.exc_info()[:2]
|
||||
|
||||
self.signals.error.emit((exctype, value, traceback.format_exc()))
|
||||
else: # 如果没有错误执行下面代码
|
||||
self.signals.finished.emit() # Done
|
||||
self.signals.result.emit(result) # Return the result of the processing
|
||||
finally: # 不管有错无错,都要执行下面代码
|
||||
pass
|
||||
143
pyqt_multithread.py
Normal file
143
pyqt_multithread.py
Normal file
@ -0,0 +1,143 @@
|
||||
from PyQt5.QtGui import *
|
||||
from PyQt5.QtWidgets import *
|
||||
from PyQt5.QtCore import *
|
||||
|
||||
import time
|
||||
import traceback, sys
|
||||
|
||||
|
||||
class WorkerSignals(QObject):
|
||||
'''
|
||||
Defines the signals available from a running worker thread.
|
||||
|
||||
Supported signals are:
|
||||
|
||||
finished
|
||||
No data
|
||||
|
||||
error
|
||||
`tuple` (exctype, value, traceback.format_exc() )
|
||||
|
||||
result
|
||||
`object` data returned from processing, anything
|
||||
|
||||
progress
|
||||
`int` indicating % progress
|
||||
|
||||
'''
|
||||
finished = pyqtSignal()
|
||||
error = pyqtSignal(tuple)
|
||||
result = pyqtSignal(object)
|
||||
progress = pyqtSignal(int)
|
||||
|
||||
|
||||
class Worker(QRunnable):
|
||||
'''
|
||||
Worker thread
|
||||
|
||||
Inherits from QRunnable to handler worker thread setup, signals and wrap-up.
|
||||
|
||||
:param callback: The function callback to run on this worker thread. Supplied args and
|
||||
kwargs will be passed through to the runner.
|
||||
:type callback: function
|
||||
:param args: Arguments to pass to the callback function
|
||||
:param kwargs: Keywords to pass to the callback function
|
||||
|
||||
'''
|
||||
|
||||
def __init__(self, fn, *args, **kwargs):
|
||||
super(Worker, self).__init__()
|
||||
|
||||
# Store constructor arguments (re-used for processing)
|
||||
self.fn = fn
|
||||
self.args = args
|
||||
self.kwargs = kwargs
|
||||
self.signals = WorkerSignals()
|
||||
|
||||
# Add the callback to our kwargs
|
||||
self.kwargs['progress_callback'] = self.signals.progress
|
||||
|
||||
@pyqtSlot()
|
||||
def run(self):
|
||||
'''
|
||||
Initialise the runner function with passed args, kwargs.
|
||||
'''
|
||||
|
||||
# Retrieve args/kwargs here; and fire processing using them
|
||||
try:
|
||||
result = self.fn(*self.args, **self.kwargs)
|
||||
except:
|
||||
traceback.print_exc()
|
||||
exctype, value = sys.exc_info()[:2]
|
||||
self.signals.error.emit((exctype, value, traceback.format_exc()))
|
||||
else:
|
||||
self.signals.result.emit(result) # Return the result of the processing
|
||||
finally:
|
||||
self.signals.finished.emit() # Done
|
||||
|
||||
|
||||
class MainWindow(QMainWindow):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(MainWindow, self).__init__(*args, **kwargs)
|
||||
|
||||
self.counter = 0
|
||||
|
||||
layout = QVBoxLayout()
|
||||
|
||||
self.l = QLabel("Start")
|
||||
b = QPushButton("DANGER!")
|
||||
b.pressed.connect(self.oh_no)
|
||||
|
||||
layout.addWidget(self.l)
|
||||
layout.addWidget(b)
|
||||
|
||||
w = QWidget()
|
||||
w.setLayout(layout)
|
||||
|
||||
self.setCentralWidget(w)
|
||||
|
||||
self.show()
|
||||
|
||||
self.threadpool = QThreadPool()
|
||||
print("Multithreading with maximum %d threads" % self.threadpool.maxThreadCount())
|
||||
|
||||
self.timer = QTimer()
|
||||
self.timer.setInterval(1000)
|
||||
self.timer.timeout.connect(self.recurring_timer)
|
||||
self.timer.start()
|
||||
|
||||
def progress_fn(self, n):
|
||||
print("%d%% done" % n)
|
||||
|
||||
def execute_this_fn(self, progress_callback):
|
||||
for n in range(0, 5):
|
||||
time.sleep(1)
|
||||
progress_callback.emit(n * 100 / 4)
|
||||
|
||||
return "Done."
|
||||
|
||||
def print_output(self, s):
|
||||
print(s)
|
||||
|
||||
def thread_complete(self):
|
||||
print("THREAD COMPLETE!")
|
||||
|
||||
def oh_no(self):
|
||||
# Pass the function to execute
|
||||
worker = Worker(self.execute_this_fn) # Any other args, kwargs are passed to the run function
|
||||
worker.signals.result.connect(self.print_output)
|
||||
worker.signals.finished.connect(self.thread_complete)
|
||||
worker.signals.progress.connect(self.progress_fn)
|
||||
|
||||
# Execute
|
||||
self.threadpool.start(worker)
|
||||
|
||||
def recurring_timer(self):
|
||||
self.counter += 1
|
||||
self.l.setText("Counter: %d" % self.counter)
|
||||
|
||||
|
||||
app = QApplication([])
|
||||
window = MainWindow()
|
||||
app.exec_()
|
||||
230
record_system_v11/1record_system_v1.1.py
Normal file
230
record_system_v11/1record_system_v1.1.py
Normal file
@ -0,0 +1,230 @@
|
||||
from ximea import xiapi
|
||||
import cv2
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from osgeo import gdal #读写影像数据
|
||||
import os, sys, traceback
|
||||
import datetime # 几种Python执行时间的计算方法:https://blog.csdn.net/wangshuang1631/article/details/54286551
|
||||
|
||||
#create instance for first connected camera
|
||||
cam = xiapi.Camera()
|
||||
|
||||
#start communication to open specific device, use: cam.open_device_by_SN('41305651')
|
||||
print('Opening first camera...')
|
||||
cam.open_device()
|
||||
|
||||
# 打开相机后,显示相机信息
|
||||
print('SN: %s'% str(cam.get_device_sn(), encoding = "utf-8"))
|
||||
print('Device name: %s'% str(cam.get_device_name(), encoding = "utf-8"))
|
||||
print('Device name: %s'% str(cam.get_device_type(), encoding = "utf-8"))
|
||||
print('Instance path: %s'% str(cam.get_device_inst_path(), encoding = "utf-8")) # Returns device instance path in operating system.
|
||||
print('Location path: %s'% str(cam.get_device_loc_path(), encoding = "utf-8"))
|
||||
|
||||
# debug_level、线程数和horizontal flip
|
||||
print('Debug level: %s' % cam.get_debug_level())
|
||||
print('Default number of threads per image processor: %d' % cam.get_proc_num_threads())
|
||||
cam.set_proc_num_threads(8)
|
||||
print('Current number of threads per image processor: %d' % cam.get_proc_num_threads())
|
||||
print('Is horizontal flip enabled?, %s' % str(cam.is_horizontal_flip()))
|
||||
|
||||
|
||||
#采集模式:This mode is supported by selected camera families: CB, MC, MT, MX
|
||||
cam.set_acq_timing_mode('XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT')
|
||||
mode_used = cam.get_acq_timing_mode()
|
||||
if mode_used == 'XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT':
|
||||
print('Mode is XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT')
|
||||
else:
|
||||
print('Mode is not XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT')
|
||||
sys.exit()
|
||||
|
||||
#settings,cam.set_param("exposure",10000)
|
||||
exposure = 50
|
||||
framerate = 2
|
||||
cam.set_exposure(exposure)#曝光时间单位为微秒,1s共有1000000微秒
|
||||
cam.set_framerate(framerate)
|
||||
print('Exposure was set to %i us' % cam.get_exposure())
|
||||
print('Framerate was set to %i FPS' % cam.get_framerate())
|
||||
|
||||
# # 设置binning参数
|
||||
# # XI_BIN_MODE_SUM(默认): The response from the combined pixels will be added, resulting in increased sensitivity.
|
||||
# # XI_BIN_MODE_AVERAGE: The response from the combined pixels will be averaged, resulting in increased signal/noise ratio.
|
||||
bin_spec = 2
|
||||
bin_spatial = 2
|
||||
|
||||
cam.set_binning_selector('XI_BIN_SELECT_HOST_CPU') # 默认为XI_BIN_SELECT_SENSOR(会报错),不可用:XI_BIN_SELECT_DEVICE_FPGA
|
||||
cam.set_binning_horizontal_mode('XI_BIN_MODE_SUM')
|
||||
cam.set_binning_horizontal(bin_spatial)
|
||||
cam.set_binning_vertical_mode('XI_BIN_MODE_SUM')
|
||||
cam.set_binning_vertical(bin_spec)
|
||||
|
||||
|
||||
# cam.get_width_increment() -->16
|
||||
# cam.get_height_increment() -->2
|
||||
# cam.get_offsetX_increment() -->16
|
||||
# cam.get_offsetY_increment() -->2
|
||||
# 设置有效输出窗口
|
||||
|
||||
if bin_spatial == 1:
|
||||
cam.set_width(1392)
|
||||
cam.set_offsetX(272)
|
||||
|
||||
cam.set_height(302)
|
||||
cam.set_offsetY(338)
|
||||
elif bin_spatial == 2:
|
||||
cam.set_width(696)
|
||||
cam.set_offsetX(128)
|
||||
|
||||
cam.set_height(151)
|
||||
cam.set_offsetY(168)
|
||||
|
||||
|
||||
# 创建img = xiapi.Image()前需要设置一系列img参数,例如:格式、位深度、
|
||||
# 如果格式设置为XI_RAW8,image_raw_numpy.dtype -> dtype('uint8'), uint8
|
||||
# 如果格式设置为XI_RAW16,image_raw_numpy.dtype -> dtype('<u2'), uint16
|
||||
cam.set_imgdataformat('XI_RAW16')
|
||||
cam.set_output_bit_depth("XI_BPP_16")
|
||||
# cam.set_image_data_bit_depth("XI_BPP_16")
|
||||
# cam.set_sensor_bit_depth("XI_BPP_16") # 报错
|
||||
# cam.get_buffer_policy()
|
||||
|
||||
# create instance of Image to store image data and metadata
|
||||
img = xiapi.Image()
|
||||
|
||||
# start data acquisition
|
||||
print('Starting data acquisition...')
|
||||
starttime = datetime.datetime.now()
|
||||
|
||||
framenumber = 10
|
||||
image_container = np.empty((int(300 / bin_spec), framenumber, int(1364 / bin_spatial)))
|
||||
|
||||
if bin_spec == 1:
|
||||
startRow = 1
|
||||
endRow = 301
|
||||
startColumn = 12
|
||||
endColumn = 1376
|
||||
if bin_spec == 2:
|
||||
startRow = 169
|
||||
endRow = 319
|
||||
startColumn = 143
|
||||
endColumn = 824
|
||||
if bin_spec == 4:
|
||||
startRow = 84
|
||||
endRow = 159
|
||||
startColumn = 71
|
||||
endColumn = 412
|
||||
|
||||
|
||||
|
||||
# cam.set_framerate(int(framerate))
|
||||
# cam.set_aeag_roi_offset_x(startColumn)
|
||||
# cam.set_aeag_roi_offset_y(startRow)
|
||||
# cam.set_aeag_roi_height(endRow - startRow)
|
||||
# cam.set_aeag_roi_width(endColumn - startColumn)
|
||||
# cam.enable_aeag() # 开启自动曝光
|
||||
# cam.start_acquisition()
|
||||
# for i in range(10):
|
||||
# cam.get_image(img) # get data and pass them from camera to img
|
||||
# cam.stop_acquisition()
|
||||
# cam.disable_aeag() # 关闭自动曝光
|
||||
|
||||
print('Framerate was set to %i FPS' % cam.get_framerate())
|
||||
print('Exposure was set to %i us' % cam.get_exposure())
|
||||
print('Gain was set to %i dB' % cam.get_gain())
|
||||
|
||||
|
||||
cam.start_acquisition()
|
||||
for i in range(framenumber):
|
||||
#get data and pass them from camera to img
|
||||
cam.get_image(img)
|
||||
|
||||
#get raw data from camera
|
||||
#for Python2.x function returns string
|
||||
#for Python3.x function returns bytes
|
||||
# data_raw = img.get_image_data_raw()
|
||||
# print("第%d帧"% i)
|
||||
# image_raw_numpy.dtype -> dtype('<u2'), uint16
|
||||
# cornning 410的位深度为12,所以尽管uint16能表达16位的数据,但是相机返回的数据最大值依然为4095
|
||||
image_raw_numpy = img.get_image_data_numpy()
|
||||
print()
|
||||
|
||||
try:
|
||||
if bin_spec == 1:
|
||||
image_container[:, i, :] = image_raw_numpy[startRow:endRow, startColumn:endColumn]
|
||||
if bin_spec == 2:
|
||||
image_container[:, i, :] = image_raw_numpy[startRow:endRow, startColumn:endColumn]
|
||||
if bin_spec == 4:
|
||||
image_container[:, i, :] = image_raw_numpy[startRow:endRow, startColumn:endColumn]
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
|
||||
|
||||
# if i == 0:
|
||||
# image_container[:, 0, :] = image_raw_numpy[340:640, 285:1650]
|
||||
# elif i != 0:
|
||||
# image_container = np.concatenate((image_container, image_raw_numpy[340:640, 285:1650].reshape(300, 1, 1365)), axis=1)
|
||||
|
||||
print(i)
|
||||
# print(cam.get_framerate())
|
||||
|
||||
#stop data acquisition
|
||||
print('Stopping acquisition...')
|
||||
cam.stop_acquisition()
|
||||
endtime = datetime.datetime.now()
|
||||
print('影像采集用时:%d'%(endtime - starttime).seconds)
|
||||
|
||||
#stop communication
|
||||
cam.close_device()
|
||||
|
||||
|
||||
class GRID:
|
||||
|
||||
#读图像文件
|
||||
def read_img(self, filename):
|
||||
try:
|
||||
dataset = gdal.Open(filename) # 打开文件
|
||||
im_width = dataset.RasterXSize # 栅格矩阵的列数
|
||||
im_height = dataset.RasterYSize # 栅格矩阵的行数
|
||||
num_bands = dataset.RasterCount # 栅格矩阵的波段数
|
||||
im_geotrans = dataset.GetGeoTransform() # 仿射矩阵
|
||||
im_proj = dataset.GetProjection() # 地图投影信息
|
||||
im_data = dataset.ReadAsArray(0, 0, im_width, im_height) # 将数据写成数组,对应栅格矩阵
|
||||
del dataset
|
||||
return im_proj, im_geotrans, im_data
|
||||
except:
|
||||
sys.exit()
|
||||
|
||||
#写文件,以写成tif为例
|
||||
def write_img(self, dst_filename, data):
|
||||
format = "ENVI"
|
||||
driver = gdal.GetDriverByName(format)
|
||||
RasterXSize = data.shape[2] # 遥感影像的sample(列数)
|
||||
RasterYSize = data.shape[1] # 遥感影像的line(行数)
|
||||
band = data.shape[0]
|
||||
# driver.Create()函数中RasterXSize代表影像的sample(列数),RasterYSize代表影像的line(行数)
|
||||
dst_ds = driver.Create(dst_filename, RasterXSize, RasterYSize, band, gdal.GDT_Float32)
|
||||
for i in range(band):
|
||||
dst_ds.GetRasterBand(i + 1).WriteArray(data[i, :, :]) # gdal的band从1开始,所以dst_ds.GetRasterBand(i+1)
|
||||
dst_ds = None
|
||||
|
||||
starttime_xie = datetime.datetime.now()
|
||||
# dark_
|
||||
im_driver = GRID()
|
||||
# im_driver.write_img('jangnandaxue-焦距22' + str(exposure)+'_'+str(framerate)+'_'+str(34), image_container)
|
||||
im_driver.write_img('ar-ren-bin2a---------------------', image_container)
|
||||
endtime_xie = datetime.datetime.now()
|
||||
print('影像写入磁盘用时:%d'%(endtime_xie - starttime_xie).seconds)
|
||||
|
||||
|
||||
print('计算波长')
|
||||
def calculate_wavelength(x):
|
||||
wavelength = x*1.999564 - 279.893
|
||||
return wavelength
|
||||
wavelength = np.empty(300)
|
||||
for i in range(340, 640):
|
||||
wavelength[i-340] = calculate_wavelength(i)
|
||||
|
||||
|
||||
plt.imshow(image_container[100, :, :])
|
||||
plt.show()
|
||||
|
||||
print('Done.')
|
||||
142
record_system_v12/1record_system_v1.2.py
Normal file
142
record_system_v12/1record_system_v1.2.py
Normal file
@ -0,0 +1,142 @@
|
||||
'''
|
||||
在V1.1的版本上(1)实现了binning,(2)探讨了三种将数据写入到硬盘上的方法的速度
|
||||
'''
|
||||
from ximea import xiapi
|
||||
import cv2
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from osgeo import gdal #读写影像数据
|
||||
import os
|
||||
import datetime # 几种Python执行时间的计算方法:https://blog.csdn.net/wangshuang1631/article/details/54286551
|
||||
import sys, struct
|
||||
|
||||
#create instance for first connected camera
|
||||
cam = xiapi.Camera()
|
||||
|
||||
#start communication to open specific device, use: cam.open_device_by_SN('41305651')
|
||||
print('Opening first camera...')
|
||||
cam.open_device()
|
||||
|
||||
# 打开相机后,显示相机信息
|
||||
print('SN: %s'% str(cam.get_device_sn(), encoding = "utf-8"))
|
||||
print('Device name: %s'% str(cam.get_device_name(), encoding = "utf-8"))
|
||||
print('Device name: %s'% str(cam.get_device_type(), encoding = "utf-8"))
|
||||
print('Instance path: %s'% str(cam.get_device_inst_path(), encoding = "utf-8"))#Returns device instance path in operating system.
|
||||
print('Location path: %s'% str(cam.get_device_loc_path(), encoding = "utf-8"))
|
||||
|
||||
# debug_level、线程数和horizontal flip
|
||||
print('Debug level: %s'% cam.get_debug_level())
|
||||
print('Default number of threads per image processor: %d'% cam.get_proc_num_threads())
|
||||
cam.set_proc_num_threads(8)
|
||||
print('Current number of threads per image processor: %d'% cam.get_proc_num_threads())
|
||||
print('Is horizontal flip enabled?, %s'% str(cam.is_horizontal_flip()))
|
||||
|
||||
|
||||
#采集模式:This mode is supported by selected camera families: CB, MC, MT, MX
|
||||
cam.set_acq_timing_mode('XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT')
|
||||
mode_used = cam.get_acq_timing_mode()
|
||||
if mode_used == 'XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT':
|
||||
print('Mode is XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT')
|
||||
else:
|
||||
print('Mode is not XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT')
|
||||
sys.exit()
|
||||
|
||||
|
||||
# # 设置binning参数
|
||||
# # XI_BIN_MODE_SUM(默认): The response from the combined pixels will be added, resulting in increased sensitivity.
|
||||
# # XI_BIN_MODE_AVERAGE: The response from the combined pixels will be averaged, resulting in increased signal/noise ratio.
|
||||
# cam.set_binning_selector('XI_BIN_SELECT_HOST_CPU') #默认为XI_BIN_SELECT_SENSOR,不可用:XI_BIN_SELECT_DEVICE_FPGA
|
||||
# cam.set_binning_horizontal_mode('XI_BIN_MODE_SUM')
|
||||
# cam.set_binning_horizontal(2)
|
||||
# cam.set_binning_vertical_mode('XI_BIN_MODE_SUM')
|
||||
# cam.set_binning_vertical(2)
|
||||
|
||||
#settings,cam.set_param("exposure",10000)
|
||||
exposure = 1000
|
||||
cam.set_exposure(exposure)#曝光时间单位为微秒,1s共有1000000微秒
|
||||
framerate = 100
|
||||
cam.set_framerate(framerate)
|
||||
print('Exposure was set to %i us' %cam.get_exposure())
|
||||
print('Framerate was set to %i FPS' %cam.get_framerate())
|
||||
|
||||
|
||||
#创建img = xiapi.Image()前需要设置一系列img参数,例如:格式、位深度、
|
||||
cam.set_imgdataformat('XI_RAW16')
|
||||
# cam.get_buffer_policy()
|
||||
|
||||
#create instance of Image to store image data and metadata
|
||||
img = xiapi.Image()
|
||||
|
||||
#start data acquisition
|
||||
print('Starting data acquisition...')
|
||||
|
||||
framenumber = 2000
|
||||
image_container = np.empty((3, framenumber, 1365))
|
||||
|
||||
f = open('delete3', 'wb')
|
||||
cam.start_acquisition()
|
||||
starttime = datetime.datetime.now()
|
||||
for i in range(framenumber):
|
||||
#get data and pass them from camera to img
|
||||
cam.get_image(img)
|
||||
|
||||
#将每一帧有效数据写入文件,方法1:通过struct.pack
|
||||
'''
|
||||
-------------------------struct.pack缺点:----------------------------------------
|
||||
Based on experience, I'd strongly advise against the use of struct.pack.
|
||||
Its API requires you to demangle the array (i.e. use the * operator) into variables
|
||||
which is going affect performance drastically for large array sizes.
|
||||
Every element of the array will need a new, on-the-fly 64-bit pointer (on a 64-bit machine)
|
||||
to be created on the stack to point into that element.
|
||||
Just stick to tostring/tobytes/tofile to avoid this overhead.
|
||||
For example, in our case, we were dealing with 100 Mb arrays which leads to a whopping 6.4 Gb of RAM so struct.pack can do its work.
|
||||
'''
|
||||
# f.write(struct.pack('f' * len(image_raw_numpy[339:639, 285:1650].flatten()),
|
||||
# *image_raw_numpy[339:639, 285:1650].flatten())) # 这种通过struct的方式特别慢
|
||||
|
||||
|
||||
|
||||
# 将每一帧有效数据写入文件,方法2:通过numpy.tobytes()
|
||||
'''
|
||||
丢帧说明:
|
||||
帧率 丢帧率
|
||||
50 0%
|
||||
100 13%
|
||||
150 17%
|
||||
'''
|
||||
image_raw_numpy = img.get_image_data_numpy()
|
||||
image_container[:, i, :] = image_raw_numpy[339:639, 285:1650][[36, 76, 121]]
|
||||
f.write(image_raw_numpy[339:639, 285:1650].flatten().tobytes())
|
||||
# f.write(image_raw_numpy.flatten().tobytes())
|
||||
|
||||
|
||||
|
||||
# 将每一帧有效数据写入文件,方法3:通过直接读取相机返回的字节流
|
||||
'''丢帧说明:
|
||||
帧率 丢帧率
|
||||
50 0%
|
||||
100 20%
|
||||
150 60%
|
||||
'''
|
||||
# data_raw = img.get_image_data_raw() # data_raw是字节流,一帧的字节流长度为4708352,而一帧矩阵有多少个数:1216*1936 = 2354176;所以返回的数是2字节的短整型
|
||||
# f.write(data_raw[1313180:2473636])
|
||||
# f.write(data_raw)
|
||||
|
||||
endtime = datetime.datetime.now()
|
||||
f.close()
|
||||
|
||||
|
||||
print('影像采集用时:%d'%(endtime - starttime).seconds)
|
||||
|
||||
#stop data acquisition
|
||||
print('Stopping acquisition...')
|
||||
cam.stop_acquisition()
|
||||
#stop communication
|
||||
cam.close_device()
|
||||
|
||||
|
||||
plt.imshow(np.dstack((image_container[2, :, :], image_container[1, :, :],
|
||||
image_container[0, :, :])))
|
||||
plt.show()
|
||||
|
||||
print('Done.')
|
||||
158
record_system_v13/1record_system_v1.3.py
Normal file
158
record_system_v13/1record_system_v1.3.py
Normal file
@ -0,0 +1,158 @@
|
||||
'''
|
||||
在V1.2的版本上改进:
|
||||
(1)自动曝光,(2)显示光谱仪温度
|
||||
'''
|
||||
from ximea import xiapi
|
||||
import cv2
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from osgeo import gdal #读写影像数据
|
||||
import os
|
||||
import datetime # 几种Python执行时间的计算方法:https://blog.csdn.net/wangshuang1631/article/details/54286551
|
||||
import sys, struct
|
||||
|
||||
#create instance for first connected camera
|
||||
cam = xiapi.Camera()
|
||||
|
||||
#start communication to open specific device, use: cam.open_device_by_SN('41305651')
|
||||
print('Opening first camera...')
|
||||
cam.open_device()
|
||||
|
||||
# 打开相机后,显示相机信息
|
||||
print('SN: %s'% str(cam.get_device_sn(), encoding = "utf-8"))
|
||||
print('Device name: %s'% str(cam.get_device_name(), encoding = "utf-8"))
|
||||
print('Device name: %s'% str(cam.get_device_type(), encoding = "utf-8"))
|
||||
print('Instance path: %s'% str(cam.get_device_inst_path(), encoding = "utf-8"))#Returns device instance path in operating system.
|
||||
print('Location path: %s'% str(cam.get_device_loc_path(), encoding = "utf-8"))
|
||||
|
||||
# debug_level、线程数和horizontal flip
|
||||
print('Debug level: %s'% cam.get_debug_level())
|
||||
print('Default number of threads per image processor: %d'% cam.get_proc_num_threads())
|
||||
cam.set_proc_num_threads(8)
|
||||
print('Current number of threads per image processor: %d'% cam.get_proc_num_threads())
|
||||
print('Is horizontal flip enabled?, %s'% str(cam.is_horizontal_flip()))
|
||||
|
||||
|
||||
#采集模式:This mode is supported by selected camera families: CB, MC, MT, MX
|
||||
cam.set_acq_timing_mode('XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT')
|
||||
mode_used = cam.get_acq_timing_mode()
|
||||
if mode_used == 'XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT':
|
||||
print('Mode is XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT')
|
||||
else:
|
||||
print('Mode is not XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT')
|
||||
sys.exit()
|
||||
|
||||
|
||||
# # 设置binning参数
|
||||
# # XI_BIN_MODE_SUM(默认): The response from the combined pixels will be added, resulting in increased sensitivity.
|
||||
# # XI_BIN_MODE_AVERAGE: The response from the combined pixels will be averaged, resulting in increased signal/noise ratio.
|
||||
# cam.set_binning_selector('XI_BIN_SELECT_HOST_CPU') #默认为XI_BIN_SELECT_SENSOR,不可用:XI_BIN_SELECT_DEVICE_FPGA
|
||||
# cam.set_binning_horizontal_mode('XI_BIN_MODE_SUM')
|
||||
# cam.set_binning_horizontal(2)
|
||||
# cam.set_binning_vertical_mode('XI_BIN_MODE_SUM')
|
||||
# cam.set_binning_vertical(2)
|
||||
|
||||
#settings,cam.set_param("exposure",10000)
|
||||
framerate = 10
|
||||
cam.set_framerate(framerate)
|
||||
cam.set_aeag_roi_offset_x(286)
|
||||
cam.set_aeag_roi_offset_y(340)
|
||||
cam.set_aeag_roi_height(300)
|
||||
cam.set_aeag_roi_width(1365)
|
||||
# cam.set_exp_priority(1) # Exposure priority (0.8 - exposure 80%, gain 20%).XI_PRM_EXP_PRIORITY
|
||||
# cam.set_ae_max_limit(24000) # Maximum time (us) used for exposure in AEAG procedureXI_PRM_AE_MAX_LIMIT
|
||||
# cam.set_ag_max_limit(12)
|
||||
# cam.set_aeag_level(50) # Average intensity of output signal AEAG should achieve(in %)XI_PRM_AEAG_LEVEL
|
||||
cam.enable_aeag()
|
||||
# exposure = 1000
|
||||
# cam.set_exposure(exposure)#曝光时间单位为微秒,1s共有1000000微秒
|
||||
print('Framerate was set to %i FPS' %cam.get_framerate())
|
||||
print('Exposure was set to %i us' %cam.get_exposure())
|
||||
print('Gain was set to %i dB' %cam.get_gain())
|
||||
|
||||
|
||||
#创建img = xiapi.Image()前需要设置一系列img参数,例如:格式、位深度、
|
||||
cam.set_imgdataformat('XI_RAW16')
|
||||
# cam.get_buffer_policy()
|
||||
|
||||
#create instance of Image to store image data and metadata
|
||||
img = xiapi.Image()
|
||||
|
||||
#start data acquisition
|
||||
print('Starting data acquisition...')
|
||||
|
||||
framenumber = 2000
|
||||
image_container = np.empty((3, framenumber, 1365))
|
||||
|
||||
f = open('delete3', 'wb')
|
||||
cam.start_acquisition()
|
||||
starttime = datetime.datetime.now()
|
||||
for i in range(framenumber):
|
||||
#get data and pass them from camera to img
|
||||
cam.get_image(img)
|
||||
print('Exposure was set to %i us' % cam.get_exposure())
|
||||
print('Gain was set to %i dB' % cam.get_gain())
|
||||
|
||||
|
||||
|
||||
|
||||
#将每一帧有效数据写入文件,方法1:通过struct.pack
|
||||
'''
|
||||
-------------------------struct.pack缺点:----------------------------------------
|
||||
Based on experience, I'd strongly advise against the use of struct.pack.
|
||||
Its API requires you to demangle the array (i.e. use the * operator) into variables
|
||||
which is going affect performance drastically for large array sizes.
|
||||
Every element of the array will need a new, on-the-fly 64-bit pointer (on a 64-bit machine)
|
||||
to be created on the stack to point into that element.
|
||||
Just stick to tostring/tobytes/tofile to avoid this overhead.
|
||||
For example, in our case, we were dealing with 100 Mb arrays which leads to a whopping 6.4 Gb of RAM so struct.pack can do its work.
|
||||
'''
|
||||
# f.write(struct.pack('f' * len(image_raw_numpy[339:639, 285:1650].flatten()),
|
||||
# *image_raw_numpy[339:639, 285:1650].flatten())) # 这种通过struct的方式特别慢
|
||||
|
||||
|
||||
|
||||
# 将每一帧有效数据写入文件,方法2:通过numpy.tobytes()
|
||||
'''
|
||||
丢帧说明:
|
||||
帧率 丢帧率
|
||||
50 0%
|
||||
100 13%
|
||||
150 17%
|
||||
'''
|
||||
# image_raw_numpy = img.get_image_data_numpy()
|
||||
# image_container[:, i, :] = image_raw_numpy[339:639, 285:1650][[36, 76, 121]]
|
||||
# f.write(image_raw_numpy[339:639, 285:1650].flatten().tobytes())
|
||||
# # f.write(image_raw_numpy.flatten().tobytes())
|
||||
|
||||
|
||||
|
||||
# 将每一帧有效数据写入文件,方法3:通过直接读取相机返回的字节流
|
||||
'''丢帧说明:
|
||||
帧率 丢帧率
|
||||
50 0%
|
||||
100 20%
|
||||
150 60%
|
||||
'''
|
||||
# data_raw = img.get_image_data_raw() # data_raw是字节流,一帧的字节流长度为4708352,而一帧矩阵有多少个数:1216*1936 = 2354176;所以返回的数是2字节的短整型
|
||||
# f.write(data_raw[1313180:2473636])
|
||||
# f.write(data_raw)
|
||||
|
||||
endtime = datetime.datetime.now()
|
||||
f.close()
|
||||
|
||||
|
||||
print('影像采集用时:%d'%(endtime - starttime).seconds)
|
||||
|
||||
#stop data acquisition
|
||||
print('Stopping acquisition...')
|
||||
cam.stop_acquisition()
|
||||
#stop communication
|
||||
cam.close_device()
|
||||
|
||||
|
||||
plt.imshow(np.dstack((image_container[2, :, :], image_container[1, :, :],
|
||||
image_container[0, :, :])))
|
||||
plt.show()
|
||||
|
||||
print('Done.')
|
||||
569
record_system_v21/2record_system_v2.1.py
Normal file
569
record_system_v21/2record_system_v2.1.py
Normal file
@ -0,0 +1,569 @@
|
||||
'''
|
||||
在V1.3的版本上改进:
|
||||
(1)使用界面(PyQt5)控制光谱仪的操作和显示
|
||||
(2)界面分为两个部分:一个是影像采集控制和显示;一个是光谱采集控制和显示
|
||||
'''
|
||||
from ximea import xiapi
|
||||
import numpy as np
|
||||
import PIL
|
||||
from osgeo import gdal #读写影像数据
|
||||
import os, sys, functools, re, shutil
|
||||
import datetime # 几种Python执行时间的计算方法:https://blog.csdn.net/wangshuang1631/article/details/54286551
|
||||
from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox, qApp, QDialog, QFileDialog
|
||||
from PyQt5.QtCore import pyqtSignal, QObject, QRunnable, QThreadPool
|
||||
from enter_window import *
|
||||
from image_Window import *
|
||||
from spectral_Window import *
|
||||
|
||||
import cv2
|
||||
import matplotlib
|
||||
matplotlib.use("Qt5Agg") # 声明使用QT5
|
||||
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
|
||||
from matplotlib.figure import Figure
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
|
||||
|
||||
# 主窗口
|
||||
class enter_window(QMainWindow, Ui_enter_Window):
|
||||
def __init__(self, parent=None):
|
||||
super(enter_window, self).__init__(parent)
|
||||
self.setupUi(self)
|
||||
# 在刚打开软件在本窗口显示相机状态(是否打开)
|
||||
self.c = Communicate()
|
||||
self.c.openinfo.connect(self.printCamInfo)
|
||||
# self.end_Btn.clicked.connect(self.end_event) # 绑定登陆函数
|
||||
# self.exit_Btn.clicked.connect(sys.exit)
|
||||
|
||||
def printCamInfo(self):
|
||||
self.camstatus_tb.append('相机已打开!')
|
||||
|
||||
# 主窗口信号类
|
||||
class Communicate(QObject):
|
||||
openinfo = pyqtSignal()
|
||||
|
||||
# 图像窗口
|
||||
class image_window(QDialog, Ui_image_Window):
|
||||
def __init__(self, parent=None):
|
||||
super(image_window, self).__init__(parent)
|
||||
self.setupUi(self)
|
||||
|
||||
#初始化值
|
||||
self.framenumber_le.setText('100')
|
||||
self.framerate_le.setText('15')
|
||||
self.exposureTime_le.setText('18000')
|
||||
self.filename_le.setText('test')
|
||||
self.filepath_le.setText(os.getcwd())
|
||||
#触发事件
|
||||
self.filepath_bt.clicked.connect(self.directory_select)
|
||||
self.framenumber_le.textEdited.connect(self.onchange)
|
||||
self.framerate_le.textEdited.connect(self.onchange)
|
||||
self.exposureTime_le.textEdited.connect(self.onchange)
|
||||
self.filename_le.textEdited.connect(self.onchange)
|
||||
self.filepath_le.textEdited.connect(self.onchange)
|
||||
self.dc_bt.clicked.connect(self.printDcInfo)
|
||||
self.wb_bt.clicked.connect(self.printWbInfo)
|
||||
self.save_bt.clicked.connect(self.printSaveInfo)
|
||||
self.record_bt.clicked.connect(self.printRecordInfo)
|
||||
|
||||
# 显示影像和调焦
|
||||
self.myImageFigure = MyImageFigure()
|
||||
self.image_glo.addWidget(self.myImageFigure)
|
||||
self.myFocusFigure = MyImageFigure()
|
||||
self.focus_glo.addWidget(self.myFocusFigure)
|
||||
|
||||
|
||||
def printDcInfo(self):
|
||||
self.statu_tb.append('采集暗电流!')
|
||||
|
||||
def printWbInfo(self):
|
||||
self.statu_tb.append('采集白板!')
|
||||
|
||||
def printRecordInfo(self):
|
||||
self.statu_tb.append('采集影像!')
|
||||
|
||||
def printSaveInfo(self):
|
||||
self.statu_tb.append('保存影像!')
|
||||
|
||||
def onchange(self):
|
||||
camera_operation.framenumber_input = self.framenumber_le.text()
|
||||
camera_operation.framerate_input = self.framerate_le.text()
|
||||
camera_operation.exposureTime_input = self.exposureTime_le.text()
|
||||
camera_operation.fn = self.filename_le.text()
|
||||
camera_operation.fp = self.filepath_le.text()
|
||||
|
||||
def directory_select(self):
|
||||
dirpath = QFileDialog.getExistingDirectory(self, '选择存储路径文件夹', '/home')
|
||||
self.filepath_le.setText(dirpath)
|
||||
camera_operation.fp = dirpath
|
||||
|
||||
# 图像窗口画图类
|
||||
class MyImageFigure(FigureCanvas):
|
||||
def __init__(self, width=5, height=4, dpi=100, ):
|
||||
#第一步:创建一个创建Figure
|
||||
self.fig = plt.figure(figsize=(width, height), dpi=dpi)
|
||||
#第二步:在父类中激活Figure窗口
|
||||
# this is the Canvas Widget that displays the `figure`
|
||||
# it takes the `figure` instance as a parameter to __init__
|
||||
super(MyImageFigure, self).__init__(self.fig) # 此句必不可少,否则不能显示图形
|
||||
#第三步:创建一个子图,用于绘制图形用,111表示子图编号,如matlab的subplot(1,1,1)
|
||||
self.axes = self.fig.add_subplot(1, 1, 1)
|
||||
self.axes.set_title('tangchao')
|
||||
#第四步:就是画图,【可以在此类中画,也可以在其它类中画】
|
||||
def plot(self, img):
|
||||
plt.imshow(img)
|
||||
|
||||
# 光谱窗口
|
||||
class spectral_window(QDialog, Ui_spectral_Window):
|
||||
def __init__(self, parent=None):
|
||||
super(spectral_window, self).__init__(parent)
|
||||
self.setupUi(self)
|
||||
# 初始化值
|
||||
self.filename_le.setText('test')
|
||||
self.filepath_le.setText(os.getcwd())
|
||||
# 触发事件
|
||||
self.filepath_bt.clicked.connect(self.directory_select)
|
||||
self.filename_le.textEdited.connect(self.onchange)
|
||||
self.filepath_le.textEdited.connect(self.onchange)
|
||||
self.dc_bt.clicked.connect(self.printDcInfo)
|
||||
self.wb_bt.clicked.connect(self.printWbInfo)
|
||||
self.record_bt.clicked.connect(self.printRecordInfo)
|
||||
|
||||
# 显示光谱
|
||||
self.spectralFigure = MySpectralFigure()
|
||||
self.spe_glo.addWidget(self.spectralFigure)
|
||||
|
||||
|
||||
|
||||
|
||||
def printDcInfo(self):
|
||||
self.statu_tb.append('采集暗电流!')
|
||||
|
||||
def printWbInfo(self):
|
||||
self.statu_tb.append('采集白板!')
|
||||
|
||||
def printRecordInfo(self):
|
||||
self.statu_tb.append('采集光谱!')
|
||||
|
||||
|
||||
def onchange(self):
|
||||
spectral_camera_operation.fn = self.filename_le.text()
|
||||
spectral_camera_operation.fp = self.filepath_le.text()
|
||||
|
||||
def directory_select(self):
|
||||
dirpath = QFileDialog.getExistingDirectory(self, '选择存储路径文件夹', '/home')
|
||||
self.filepath_le.setText(dirpath)
|
||||
spectral_camera_operation.fp = dirpath
|
||||
|
||||
# 光谱窗口画图类
|
||||
class MySpectralFigure(FigureCanvas):
|
||||
def __init__(self, width=5, height=4, dpi=100):
|
||||
#第一步:创建一个创建Figure
|
||||
self.fig = Figure(figsize=(width, height), dpi=dpi)
|
||||
#第二步:在父类中激活Figure窗口
|
||||
# this is the Canvas Widget that displays the `figure`
|
||||
# it takes the `figure` instance as a parameter to __init__
|
||||
super(MySpectralFigure, self).__init__(self.fig) # 此句必不可少,否则不能显示图形
|
||||
#第三步:创建一个子图,用于绘制图形用,111表示子图编号,如matlab的subplot(1,1,1)
|
||||
self.axes = self.fig.add_subplot(1, 1, 1)
|
||||
#第四步:就是画图,【可以在此类中画,也可以在其它类中画】
|
||||
def plot(self, y):
|
||||
self.axes.plot(y)
|
||||
|
||||
# 读写影像类
|
||||
class GRID(object):
|
||||
|
||||
#读图像文件
|
||||
def read_img(self, filename):
|
||||
try:
|
||||
dataset = gdal.Open(filename) # 打开文件
|
||||
im_width = dataset.RasterXSize # 栅格矩阵的列数
|
||||
im_height = dataset.RasterYSize # 栅格矩阵的行数
|
||||
num_bands = dataset.RasterCount # 栅格矩阵的波段数
|
||||
im_geotrans = dataset.GetGeoTransform() # 仿射矩阵
|
||||
im_proj = dataset.GetProjection() # 地图投影信息
|
||||
im_data = dataset.ReadAsArray(0, 0, im_width, im_height) # 将数据写成数组,对应栅格矩阵
|
||||
del dataset
|
||||
return im_proj, im_geotrans, im_data
|
||||
except:
|
||||
sys.exit()
|
||||
|
||||
#写文件,以写成tif为例
|
||||
def write_img(self, dst_filename, data):
|
||||
format = "ENVI"
|
||||
driver = gdal.GetDriverByName(format)
|
||||
RasterXSize = data.shape[2] # 遥感影像的sample(列数)
|
||||
RasterYSize = data.shape[1] # 遥感影像的line(行数)
|
||||
band = data.shape[0]
|
||||
# driver.Create()函数中RasterXSize代表影像的sample(列数),RasterYSize代表影像的line(行数)
|
||||
dst_ds = driver.Create(dst_filename, RasterXSize, RasterYSize, band, gdal.GDT_Float32)
|
||||
for i in range(band):
|
||||
dst_ds.GetRasterBand(i + 1).WriteArray(data[i, :, :]) # gdal的band从1开始,所以dst_ds.GetRasterBand(i+1)
|
||||
dst_ds = None
|
||||
|
||||
# 影像模式类:相关的函数和变量
|
||||
class camera_operation(object):
|
||||
"""
|
||||
在此版本的软件中,关于按钮点击控制光谱仪采集操作的绑定函数都放在了if __name__ == '__main__':中
|
||||
"""
|
||||
|
||||
#设置曝光时间和帧率
|
||||
framerate_input = 15 #随便给个初始值(初始值要和framerate_le控件初始值一致),从image_window获取的手动输入的帧率
|
||||
exposureTime_input = 18000
|
||||
@classmethod
|
||||
def set_exposureTime(cls, cam):
|
||||
# settings,cam.set_param("exposure",10000)
|
||||
cam.set_framerate(int(camera_operation.framerate_input))
|
||||
cam.set_exposure(int(camera_operation.exposureTime_input)) # 曝光时间单位为微秒,1s共有1000000微秒
|
||||
# print('Exposure was set to %i us' % cam.get_exposure())
|
||||
# print('Framerate was set to %i FPS' % cam.get_framerate())
|
||||
image_window_instance.statu_tb.append('Exposure was set to ' + str(cam.get_exposure()) + ' us')
|
||||
image_window_instance.statu_tb.append('Framerate was set to ' + str(cam.get_framerate()) + ' FPS')
|
||||
|
||||
|
||||
#开始采集数据
|
||||
framenumber_input = 100 #随便给个初始值(初始值要和framenumber_le控件初始值一致),从image_window获取的手动输入的帧数
|
||||
image_dc = 1 # 随便给个初始值,此变量用于存储采集到的暗电流影像
|
||||
image_wb = 1 # 随便给个初始值,此变量用于存储采集到的白板影像
|
||||
focus = True # 用于调焦
|
||||
|
||||
@classmethod
|
||||
def start_AcquireData(cls, cam):
|
||||
# 创建img = xiapi.Image()前需要设置一系列img参数,例如:格式、位深度、
|
||||
cam.set_imgdataformat('XI_RAW16')
|
||||
# create instance of Image to store image data and metadata
|
||||
img = xiapi.Image()
|
||||
# cam.get_buffer_policy()
|
||||
|
||||
print('Starting data acquisition...')
|
||||
starttime = datetime.datetime.now()
|
||||
|
||||
# 如果点击“调焦”按钮
|
||||
if image_window_instance.sender().objectName() == 'focus_bt':
|
||||
# camera_operation.set_exposureTime(cam)
|
||||
cam.start_acquisition()
|
||||
|
||||
while camera_operation.focus:
|
||||
cam.get_image(img) # get data and pass them from camera to img
|
||||
image_raw_numpy = img.get_image_data_numpy()
|
||||
image_container = image_raw_numpy[339:639, 285:1650]
|
||||
image_window_instance.myFocusFigure.plot(image_container)
|
||||
image_window_instance.myFocusFigure.draw()
|
||||
|
||||
# 如果点击“白板”按钮,采集并保存白板影像到image_wb
|
||||
if image_window_instance.sender().objectName() == 'wb_bt':
|
||||
framenumber = 10
|
||||
cam.start_acquisition()
|
||||
image_container = np.empty((300, framenumber, 1365))
|
||||
|
||||
for i in range(framenumber):
|
||||
cam.get_image(img) # get data and pass them from camera to img
|
||||
image_raw_numpy = img.get_image_data_numpy()
|
||||
image_container[:, i, :] = image_raw_numpy[339:639, 285:1650]
|
||||
|
||||
camera_operation.image_wb = image_container.mean(axis=1)
|
||||
|
||||
# 如果点击“暗电流”按钮,采集并保存暗电流影像到image_dc
|
||||
if image_window_instance.sender().objectName() == 'dc_bt':
|
||||
framenumber = 10
|
||||
cam.start_acquisition()
|
||||
image_container = np.empty((300, framenumber, 1365))
|
||||
|
||||
for i in range(framenumber):
|
||||
cam.get_image(img) # get data and pass them from camera to img
|
||||
image_raw_numpy = img.get_image_data_numpy()
|
||||
image_container[:, i, :] = image_raw_numpy[339:639, 285:1650]
|
||||
|
||||
camera_operation.image_dc = image_container.mean(axis=1)
|
||||
|
||||
#如果点击“采集”按钮,自动去除暗电流,并且转化成反射率
|
||||
if image_window_instance.sender().objectName() == 'record_bt':
|
||||
framenumber = int(camera_operation.framenumber_input)
|
||||
cam.start_acquisition()
|
||||
rgb = np.empty((3, framenumber, 1365))
|
||||
|
||||
with open('corning410_test', 'wb') as f:
|
||||
for i in range(framenumber):
|
||||
cam.get_image(img) # get data and pass them from camera to img
|
||||
image_raw_numpy = img.get_image_data_numpy()
|
||||
image_container = image_raw_numpy[339:639, 285:1650]
|
||||
|
||||
# 去除暗电流和转反射率
|
||||
if type(camera_operation.image_dc) is np.ndarray or type(camera_operation.image_wb) is np.ndarray:
|
||||
image_container = (image_container - camera_operation.image_dc).astype(
|
||||
np.float) / camera_operation.image_wb.astype(np.float)
|
||||
|
||||
rgb[:, i, :] = image_container[[36, 76, 121]]
|
||||
|
||||
f.write(image_container.flatten().tobytes())
|
||||
# 如果再这里每采集一帧就画出来,会非常影响采集速率,造成采集很慢
|
||||
# image_window_instance.myImageFigure.plot(image_container[1, :, :])
|
||||
# image_window_instance.myImageFigure.draw()
|
||||
|
||||
|
||||
# 画出影像
|
||||
# image_window_instance.myImageFigure.plot(
|
||||
# np.dstack((image_container[121, :, :].astype(np.int), image_container[76, :, :].astype(np.int),
|
||||
# image_container[36, :, :].astype(np.int))))
|
||||
try:
|
||||
image_window_instance.myImageFigure.plot(
|
||||
np.dstack((rgb[2, :, :], rgb[1, :, :], rgb[0, :, :])))
|
||||
image_window_instance.myImageFigure.draw()
|
||||
finally:
|
||||
print('画图出错')
|
||||
|
||||
endtime = datetime.datetime.now()
|
||||
print('影像采集用时:%d' % (endtime - starttime).seconds)
|
||||
|
||||
# stop data acquisition
|
||||
print('Stopping acquisition...')
|
||||
cam.stop_acquisition()
|
||||
|
||||
|
||||
#停止采集数据、计算波长、数据写入硬盘
|
||||
@classmethod
|
||||
def stop_AcquireDta(cls, cam, image_container, exposure = 400000, framerate = 90):
|
||||
# stop data acquisition
|
||||
print('Stopping acquisition...')
|
||||
cam.stop_acquisition()
|
||||
|
||||
|
||||
#保存数据
|
||||
fp = os.getcwd() #随便给个初始值(初始值要和filepath_le控件初始值一致),从image_window获取的手动输入的文件保存路径
|
||||
fn = 'test' #随便给个初始值(初始值要和filename_le控件初始值一致),从image_window获取的手动输入的帧率
|
||||
@classmethod
|
||||
def savedata(cls):
|
||||
# 保存路径
|
||||
filename = re.sub('/', '\\\\', camera_operation.fp) + '\\' + camera_operation.fn
|
||||
|
||||
#保存影像
|
||||
imagefile = os.getcwd() + '\\' + 'corning410_test'
|
||||
shutil.copyfile(imagefile, filename)
|
||||
|
||||
# 创建头文件,写入波长
|
||||
with open(filename + '.hdr', mode='w') as out_hdr: # python读取已存在txt文件时,读写模式为'r+',不是'r+w';w模式时,如果文件不存在会创建文件
|
||||
out_hdr.write('ENVI\n')
|
||||
out_hdr.write('samples = 1365\n')
|
||||
out_hdr.write('lines = ' + str(camera_operation.framenumber_input) + '\n')
|
||||
out_hdr.write('bands = 300\n')
|
||||
out_hdr.write('header offset = 0\n'
|
||||
'file type = ENVI Standard\n')
|
||||
out_hdr.write('data type = 4\ninterleave = bil\nbyte order = 0\n')
|
||||
out_hdr.write('exposure = ' + str(camera_operation.exposureTime_input) + '\n')
|
||||
out_hdr.write('framerate = ' + str(camera_operation.framerate_input) + '\n')
|
||||
out_hdr.write('wavelength= {399.95876000000004, 401.958324, 403.95788799999997, 405.95745200000005, 407.957016, 409.95658, 411.95614399999994, 413.955708, 415.955272, 417.95483599999994, 419.9544, 421.953964, 423.95352799999995, 425.953092, 427.952656, 429.95221999999995, 431.95178400000003, 433.951348, 435.95091199999996, 437.95047600000004, 439.95004, 441.94960399999997, 443.94916800000004, 445.948732, 447.94829599999997, 449.94785999999993, 451.947424, 453.946988, 455.94655199999994, 457.946116, 459.94568, 461.94524399999995, 463.944808, 465.944372, 467.94393599999995, 469.94350000000003, 471.943064, 473.94262799999996, 475.94219200000003, 477.941756, 479.94131999999996, 481.94088400000004, 483.940448, 485.94001199999997, 487.93957600000005, 489.93914, 491.938704, 493.93826799999994, 495.937832, 497.937396, 499.93695999999994, 501.936524, 503.936088, 505.93565199999995, 507.935216, 509.93478, 511.93434399999995, 513.933908, 515.9334719999999, 517.9330359999999, 519.9326000000001, 521.9321640000001, 523.931728, 525.931292, 527.930856, 529.9304199999999, 531.9299839999999, 533.9295480000001, 535.929112, 537.928676, 539.92824, 541.9278039999999, 543.9273679999999, 545.9269320000001, 547.926496, 549.92606, 551.925624, 553.9251879999999, 555.9247519999999, 557.9243160000001, 559.92388, 561.923444, 563.923008, 565.922572, 567.9221359999999, 569.9216999999999, 571.9212640000001, 573.920828, 575.920392, 577.919956, 579.9195199999999, 581.9190839999999, 583.9186480000001, 585.918212, 587.917776, 589.91734, 591.9169039999999, 593.9164679999999, 595.9160320000001, 597.915596, 599.91516, 601.914724, 603.9142879999999, 605.9138519999999, 607.9134159999999, 609.9129800000001, 611.912544, 613.912108, 615.911672, 617.9112359999999, 619.9107999999999, 621.9103640000001, 623.909928, 625.909492, 627.909056, 629.9086199999999, 631.9081839999999, 633.9077480000001, 635.907312, 637.906876, 639.90644, 641.9060039999999, 643.9055679999999, 645.9051319999999, 647.9046960000001, 649.90426, 651.903824, 653.903388, 655.9029519999999, 657.9025159999999, 659.9020800000001, 661.901644, 663.901208, 665.900772, 667.9003359999999, 669.8998999999999, 671.8994640000001, 673.899028, 675.898592, 677.898156, 679.8977199999999, 681.8972839999999, 683.8968480000001, 685.896412, 687.895976, 689.89554, 691.895104, 693.8946679999999, 695.8942319999999, 697.8937960000001, 699.89336, 701.892924, 703.892488, 705.8920519999999, 707.8916159999999, 709.8911800000001, 711.890744, 713.890308, 715.889872, 717.8894359999999, 719.8889999999999, 721.8885640000001, 723.888128, 725.887692, 727.887256, 729.88682, 731.8863839999999, 733.8859479999999, 735.8855120000001, 737.885076, 739.88464, 741.884204, 743.8837679999999, 745.8833319999999, 747.8828959999998, 749.8824599999998, 751.882024, 753.881588, 755.8811519999999, 757.8807159999999, 759.8802799999999, 761.8798439999998, 763.879408, 765.878972, 767.8785359999999, 769.8780999999999, 771.8776639999999, 773.8772279999998, 775.876792, 777.876356, 779.87592, 781.8754839999999, 783.8750479999999, 785.8746119999998, 787.8741759999998, 789.87374, 791.873304, 793.8728679999999, 795.8724319999999, 797.8719959999999, 799.8715599999998, 801.871124, 803.870688, 805.8702519999999, 807.8698159999999, 809.8693799999999, 811.8689439999998, 813.868508, 815.868072, 817.867636, 819.8671999999999, 821.8667639999999, 823.8663279999998, 825.8658919999998, 827.865456, 829.86502, 831.8645839999999, 833.8641479999999, 835.8637119999999, 837.8632759999998, 839.86284, 841.862404, 843.8619679999999, 845.8615319999999, 847.8610959999999, 849.8606599999998, 851.860224, 853.859788, 855.859352, 857.8589159999999, 859.8584799999999, 861.8580439999998, 863.8576079999998, 865.857172, 867.856736, 869.8562999999999, 871.8558639999999, 873.8554279999998, 875.8549919999998, 877.854556, 879.85412, 881.8536839999999, 883.8532479999999, 885.8528119999999, 887.8523759999998, 889.85194, 891.851504, 893.8510679999999, 895.8506319999999, 897.8501959999999, 899.8497599999998, 901.8493239999998, 903.848888, 905.848452, 907.8480159999999, 909.8475799999999, 911.8471439999998, 913.8467079999998, 915.846272, 917.845836, 919.8453999999999, 921.8449639999999, 923.8445279999999, 925.8440919999998, 927.843656, 929.84322, 931.8427839999999, 933.8423479999999, 935.8419119999999, 937.8414759999998, 939.84104, 941.840604, 943.840168, 945.8397319999999, 947.8392959999999, 949.8388599999998, 951.8384239999998, 953.837988, 955.837552, 957.8371159999999, 959.8366799999999, 961.8362439999999, 963.8358079999998, 965.835372, 967.834936, 969.8344999999999, 971.8340639999999, 973.8336279999999, 975.8331919999998, 977.832756, 979.83232, 981.831884, 983.8314479999999, 985.8310119999999, 987.8305759999998, 989.8301399999998, 991.829704, 993.829268, 995.8288319999999, 997.8283959999999}')
|
||||
|
||||
|
||||
@classmethod
|
||||
def close_camera(cls, cam):
|
||||
# stop communication
|
||||
cam.close_device()
|
||||
|
||||
# 光谱模式类:相关的函数和变量
|
||||
class spectral_camera_operation(object):
|
||||
"""
|
||||
在此版本的软件中,关于按钮点击控制光谱仪采集操作的绑定函数都放在了if __name__ == '__main__':中
|
||||
"""
|
||||
|
||||
#设置曝光时间和帧率
|
||||
@classmethod
|
||||
def set_exposureTime(cls, cam, exposure = 40000000):
|
||||
# settings,cam.set_param("exposure",10000)
|
||||
cam.set_exposure(exposure) # 曝光时间单位为微秒,1s共有1000000微秒
|
||||
cam.set_framerate(9)
|
||||
# print('Exposure was set to %i us' % cam.get_exposure())
|
||||
# print('Framerate was set to %i FPS' % cam.get_framerate())
|
||||
|
||||
spectral_window_instance.statu_tb.append('Exposure was set to ' + str(cam.get_exposure()) + ' us')
|
||||
spectral_window_instance.statu_tb.append('Framerate was set to ' + str(cam.get_framerate()) + ' FPS')
|
||||
|
||||
|
||||
#开始采集数据
|
||||
fp = os.getcwd() # 随便给个初始值(初始值要和filepath_le控件初始值一致),从spectral_window获取的手动输入的帧率
|
||||
fn = 'test' # 随便给个初始值(初始值要和filename_le控件初始值一致),从spectral_window获取的手动输入的帧率
|
||||
image_dc = 1 # 随便给个初始值,此变量用于存储采集到的暗电流影像
|
||||
spectral_wb = 1 # 随便给个初始值,此变量用于存储采集到的白板光谱
|
||||
spectral = np.empty((300, 10)).astype(np.float) # 此ndarray用于存储采集到的目标物光谱,每一列为一个光谱
|
||||
@classmethod
|
||||
def start_AcquireData(cls, cam):
|
||||
# 创建img = xiapi.Image()前需要设置一系列img参数,例如:格式、位深度、
|
||||
cam.set_imgdataformat('XI_RAW16')
|
||||
# create instance of Image to store image data and metadata
|
||||
img = xiapi.Image()
|
||||
|
||||
framenumber = 10 #每条光谱采集帧数
|
||||
spectralNumber = 10 #每次采集的光谱数
|
||||
spectralNumber_wb = 1 #每次采集的白板的光谱数
|
||||
spectral_container = np.empty((300, framenumber, 3))
|
||||
|
||||
print('Starting data acquisition...')
|
||||
starttime = datetime.datetime.now()
|
||||
|
||||
# 如果点击暗“暗电流”按钮
|
||||
if spectral_window_instance.sender().objectName() == 'dc_bt':
|
||||
cam.start_acquisition()
|
||||
for i in range(framenumber):
|
||||
cam.get_image(img) # get data and pass them from camera to img
|
||||
image_raw_numpy = img.get_image_data_numpy()
|
||||
spectral_container[:, i, :] = image_raw_numpy[339:639, 967:970]
|
||||
spectral_camera_operation.image_dc = spectral_container.mean(axis=1)
|
||||
|
||||
# 如果点击“曝光/白板”按钮
|
||||
if spectral_window_instance.sender().objectName() == 'wb_bt':
|
||||
cam.start_acquisition()
|
||||
for j in range(spectralNumber_wb):
|
||||
for i in range(framenumber):
|
||||
cam.get_image(img) # get data and pass them from camera to img
|
||||
image_raw_numpy = img.get_image_data_numpy()
|
||||
spectral_container[:, i, :] = image_raw_numpy[339:639, 967:970]
|
||||
for i in range(framenumber):#去除暗电流
|
||||
spectral_container[:, i, :] -= spectral_camera_operation.image_dc
|
||||
# spectral_camera_operation.spectral_wb = spectral_container.mean(axis=1).mean(axis=1)
|
||||
spectral_camera_operation.spectral_wb = spectral_container.mean(axis=1)
|
||||
|
||||
# 如果点击“采集”按钮,自动去除暗电流,并且转化成反射率
|
||||
if spectral_window_instance.sender().objectName() == 'record_bt':
|
||||
spectral_camera_operation.spectral = np.empty((300, 10)).astype(np.float) # 当第二次点击“采集”按钮时保证将上一次的数据清除
|
||||
cam.start_acquisition()
|
||||
for j in range(spectralNumber):
|
||||
for i in range(framenumber):
|
||||
cam.get_image(img) # get data and pass them from camera to img
|
||||
image_raw_numpy = img.get_image_data_numpy()
|
||||
spectral_container[:, i, :] = image_raw_numpy[339:639, 967:970]
|
||||
for i in range(framenumber): #去除暗电流
|
||||
spectral_container[:, i, :] -= spectral_camera_operation.image_dc
|
||||
# 转反射率
|
||||
# spectral_container = spectral_container.mean(axis=1).mean(axis=1).astype(
|
||||
# np.float) / spectral_camera_operation.spectral_wb.astype(np.float)
|
||||
|
||||
for i in range(framenumber): #每一帧除以白板光谱
|
||||
spectral_container[:, i, :] = spectral_container[:, i, :] / spectral_camera_operation.spectral_wb
|
||||
spectral_container = spectral_container.mean(axis=1).mean(axis=1)
|
||||
|
||||
|
||||
spectral_camera_operation.spectral[:, j] = spectral_container
|
||||
# 画出光谱
|
||||
spectral_window_instance.spectralFigure.plot(spectral_container)
|
||||
spectral_window_instance.spectralFigure.draw()
|
||||
# 保证当第二次点击“采集”按钮时spectral_container已经初始化
|
||||
spectral_container = np.empty((300, framenumber, 3))
|
||||
|
||||
|
||||
# # 计算波长
|
||||
def calculate_wavelength(x):
|
||||
wavelength = x * 1.999564 - 279.893
|
||||
return wavelength
|
||||
wavelength = np.empty(300)
|
||||
for i in range(340, 640):
|
||||
wavelength[i - 340] = calculate_wavelength(i)
|
||||
# 保存光谱为txt文件
|
||||
spectral_camera_operation.spectral = np.insert(spectral_camera_operation.spectral, 0, wavelength, axis=1)
|
||||
for i in range(spectralNumber):
|
||||
np.savetxt(spectral_camera_operation.fp + '\\' + spectral_camera_operation.fn + str(i) + '.txt',
|
||||
spectral_camera_operation.spectral[:, [0, i + 1]], fmt='%f')
|
||||
|
||||
|
||||
endtime = datetime.datetime.now()
|
||||
print('光谱采集用时:%d' % (endtime - starttime).seconds)
|
||||
|
||||
# stop data acquisition
|
||||
print('Stopping acquisition...')
|
||||
cam.stop_acquisition()
|
||||
|
||||
|
||||
@classmethod
|
||||
def close_camera(cls, cam):
|
||||
# stop communication
|
||||
cam.close_device()
|
||||
|
||||
|
||||
# 打开相机
|
||||
def open_camera():
|
||||
# create instance for first connected camera
|
||||
cam = xiapi.Camera()
|
||||
|
||||
# start communication to open specific device, use: cam.open_device_by_SN('41305651')
|
||||
print('Opening first camera...')
|
||||
cam.open_device()
|
||||
|
||||
# 打开相机后,显示相机信息
|
||||
print('SN: %s' % str(cam.get_device_sn(), encoding="utf-8"))
|
||||
print('Device name: %s' % str(cam.get_device_name(), encoding="utf-8"))
|
||||
print('Device name: %s' % str(cam.get_device_type(), encoding="utf-8"))
|
||||
print('Instance path: %s' % str(cam.get_device_inst_path(),
|
||||
encoding="utf-8")) # Returns device instance path in operating system.
|
||||
print('Location path: %s' % str(cam.get_device_loc_path(), encoding="utf-8"))
|
||||
|
||||
print('Debug level: %s' % cam.get_debug_level())
|
||||
print('Default number of threads per image processor: %d' % cam.get_proc_num_threads())
|
||||
cam.set_proc_num_threads(8)
|
||||
print('Current number of threads per image processor: %d' % cam.get_proc_num_threads())
|
||||
print('Is horizontal flip enabled?, %s' % str(cam.is_horizontal_flip()))
|
||||
print()
|
||||
|
||||
# This mode is supported by selected camera families: CB, MC, MT, MX
|
||||
cam.set_acq_timing_mode('XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT')
|
||||
mode_used = cam.get_acq_timing_mode()
|
||||
if mode_used == 'XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT':
|
||||
print('Mode is XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT')
|
||||
else:
|
||||
print('Mode is not XI_ACQ_TIMING_MODE_FRAME_RATE_LIMIT')
|
||||
sys.exit()
|
||||
|
||||
return cam
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QApplication(sys.argv)
|
||||
camera = open_camera()
|
||||
|
||||
|
||||
# 实例化3个窗口
|
||||
enter_window_instance = enter_window()
|
||||
enter_window_instance.setWindowTitle('主窗口')
|
||||
image_window_instance = image_window()
|
||||
image_window_instance.setWindowTitle('影像窗口')
|
||||
spectral_window_instance = spectral_window()
|
||||
spectral_window_instance.setWindowTitle('光谱窗口')
|
||||
|
||||
enter_window_instance.c.openinfo.emit()
|
||||
|
||||
|
||||
# 从主窗口弹出影像窗口和光谱窗口
|
||||
enter_window_instance.image_mode_bt.clicked.connect(image_window_instance.show)
|
||||
enter_window_instance.spectral_mode_bt.clicked.connect(spectral_window_instance.show)
|
||||
|
||||
|
||||
########################################################影像窗口操作########################################################################
|
||||
# 设置曝光时间(帧率设置放在image_window类中实现)
|
||||
img_e_bt = image_window_instance.exposureTime_bt
|
||||
img_e_bt.clicked.connect(functools.partial(camera_operation.set_exposureTime, camera))
|
||||
|
||||
# 暗电流/白板
|
||||
image_window_instance.dc_bt.clicked.connect(functools.partial(camera_operation.start_AcquireData, camera))
|
||||
image_window_instance.wb_bt.clicked.connect(functools.partial(camera_operation.start_AcquireData, camera))
|
||||
|
||||
|
||||
# 采集影像
|
||||
image_window_instance.record_bt.clicked.connect(functools.partial(camera_operation.start_AcquireData, camera))
|
||||
|
||||
image_window_instance.focus_bt.clicked.connect(functools.partial(camera_operation.start_AcquireData, camera))
|
||||
|
||||
# 保存影像
|
||||
image_window_instance.save_bt.clicked.connect(camera_operation.savedata)
|
||||
|
||||
########################################################光谱窗口操作########################################################################
|
||||
# 设置曝光时间(帧率设置放在image_window类中实现)
|
||||
spec_e_bt = spectral_window_instance.wb_bt
|
||||
spec_e_bt.clicked.connect(functools.partial(spectral_camera_operation.set_exposureTime, camera))
|
||||
|
||||
# 暗电流/白板
|
||||
spectral_window_instance.dc_bt.clicked.connect(functools.partial(spectral_camera_operation.start_AcquireData, camera))
|
||||
spectral_window_instance.wb_bt.clicked.connect(functools.partial(spectral_camera_operation.start_AcquireData, camera))
|
||||
|
||||
# 采集光谱
|
||||
spectral_window_instance.record_bt.clicked.connect(functools.partial(spectral_camera_operation.start_AcquireData, camera))
|
||||
|
||||
|
||||
enter_window_instance.show()
|
||||
sys.exit(app.exec_())
|
||||
48
record_system_v21/arcus_control_ui.py
Normal file
48
record_system_v21/arcus_control_ui.py
Normal file
@ -0,0 +1,48 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'arcus_control_ui.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_arcus_ui(object):
|
||||
def setupUi(self, arcus_ui):
|
||||
arcus_ui.setObjectName("arcus_ui")
|
||||
arcus_ui.resize(354, 171)
|
||||
self.centralwidget = QtWidgets.QWidget(arcus_ui)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.left_btn = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.left_btn.setGeometry(QtCore.QRect(100, 90, 61, 21))
|
||||
self.left_btn.setObjectName("left_btn")
|
||||
self.right_btn = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.right_btn.setGeometry(QtCore.QRect(170, 90, 61, 23))
|
||||
self.right_btn.setObjectName("right_btn")
|
||||
self.speed_lineEdit = QtWidgets.QLineEdit(self.centralwidget)
|
||||
self.speed_lineEdit.setGeometry(QtCore.QRect(101, 10, 131, 20))
|
||||
self.speed_lineEdit.setObjectName("speed_lineEdit")
|
||||
self.speed_ScrollBar = QtWidgets.QScrollBar(self.centralwidget)
|
||||
self.speed_ScrollBar.setGeometry(QtCore.QRect(100, 40, 131, 20))
|
||||
self.speed_ScrollBar.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.speed_ScrollBar.setObjectName("speed_ScrollBar")
|
||||
arcus_ui.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(arcus_ui)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 354, 23))
|
||||
self.menubar.setObjectName("menubar")
|
||||
arcus_ui.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(arcus_ui)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
arcus_ui.setStatusBar(self.statusbar)
|
||||
|
||||
self.retranslateUi(arcus_ui)
|
||||
QtCore.QMetaObject.connectSlotsByName(arcus_ui)
|
||||
|
||||
def retranslateUi(self, arcus_ui):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
arcus_ui.setWindowTitle(_translate("arcus_ui", "MainWindow"))
|
||||
self.left_btn.setText(_translate("arcus_ui", "左"))
|
||||
self.right_btn.setText(_translate("arcus_ui", "右"))
|
||||
81
record_system_v21/arcus_control_ui.ui
Normal file
81
record_system_v21/arcus_control_ui.ui
Normal file
@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>arcus_ui</class>
|
||||
<widget class="QMainWindow" name="arcus_ui">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>354</width>
|
||||
<height>171</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QPushButton" name="left_btn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>90</y>
|
||||
<width>61</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>左</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="right_btn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>170</x>
|
||||
<y>90</y>
|
||||
<width>61</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>右</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="speed_lineEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>101</x>
|
||||
<y>10</y>
|
||||
<width>131</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QScrollBar" name="speed_ScrollBar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>40</y>
|
||||
<width>131</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>354</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
47
record_system_v21/enter_window.py
Normal file
47
record_system_v21/enter_window.py
Normal file
@ -0,0 +1,47 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'enter_window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_enter_Window(object):
|
||||
def setupUi(self, enter_Window):
|
||||
enter_Window.setObjectName("enter_Window")
|
||||
enter_Window.resize(651, 474)
|
||||
self.centralwidget = QtWidgets.QWidget(enter_Window)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.image_mode_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.image_mode_bt.setGeometry(QtCore.QRect(200, 180, 111, 51))
|
||||
self.image_mode_bt.setObjectName("image_mode_bt")
|
||||
self.spectral_mode_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.spectral_mode_bt.setGeometry(QtCore.QRect(360, 180, 111, 51))
|
||||
self.spectral_mode_bt.setObjectName("spectral_mode_bt")
|
||||
self.camstatus_tb = QtWidgets.QTextBrowser(self.centralwidget)
|
||||
self.camstatus_tb.setGeometry(QtCore.QRect(200, 240, 271, 81))
|
||||
self.camstatus_tb.setObjectName("camstatus_tb")
|
||||
enter_Window.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(enter_Window)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 651, 26))
|
||||
self.menubar.setObjectName("menubar")
|
||||
enter_Window.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(enter_Window)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
enter_Window.setStatusBar(self.statusbar)
|
||||
self.actionwew_e = QtWidgets.QAction(enter_Window)
|
||||
self.actionwew_e.setObjectName("actionwew_e")
|
||||
|
||||
self.retranslateUi(enter_Window)
|
||||
QtCore.QMetaObject.connectSlotsByName(enter_Window)
|
||||
|
||||
def retranslateUi(self, enter_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
enter_Window.setWindowTitle(_translate("enter_Window", "主窗口"))
|
||||
self.image_mode_bt.setText(_translate("enter_Window", "影像模式"))
|
||||
self.spectral_mode_bt.setText(_translate("enter_Window", "光谱模式"))
|
||||
self.actionwew_e.setText(_translate("enter_Window", "wew e"))
|
||||
73
record_system_v21/enter_window.ui
Normal file
73
record_system_v21/enter_window.ui
Normal file
@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>enter_Window</class>
|
||||
<widget class="QMainWindow" name="enter_Window">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>474</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>主窗口</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QPushButton" name="image_mode_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>180</y>
|
||||
<width>111</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>影像模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="spectral_mode_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>360</x>
|
||||
<y>180</y>
|
||||
<width>111</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>光谱模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextBrowser" name="camstatus_tb">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>240</y>
|
||||
<width>271</width>
|
||||
<height>81</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
<action name="actionwew_e">
|
||||
<property name="text">
|
||||
<string>wew e</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
231
record_system_v21/image_Window.py
Normal file
231
record_system_v21/image_Window.py
Normal file
@ -0,0 +1,231 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'image_Window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_image_Window(object):
|
||||
def setupUi(self, image_Window):
|
||||
image_Window.setObjectName("image_Window")
|
||||
image_Window.setEnabled(True)
|
||||
image_Window.resize(1181, 683)
|
||||
image_Window.setMouseTracking(False)
|
||||
image_Window.setAutoFillBackground(False)
|
||||
image_Window.setSizeGripEnabled(False)
|
||||
image_Window.setModal(False)
|
||||
self.verticalLayout_7 = QtWidgets.QVBoxLayout(image_Window)
|
||||
self.verticalLayout_7.setObjectName("verticalLayout_7")
|
||||
self.groupBox_5 = QtWidgets.QGroupBox(image_Window)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_5.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_5.setSizePolicy(sizePolicy)
|
||||
self.groupBox_5.setObjectName("groupBox_5")
|
||||
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.groupBox_5)
|
||||
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
||||
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem)
|
||||
self.splitter_3 = QtWidgets.QSplitter(self.groupBox_5)
|
||||
self.splitter_3.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.splitter_3.setObjectName("splitter_3")
|
||||
self.layoutWidget = QtWidgets.QWidget(self.splitter_3)
|
||||
self.layoutWidget.setObjectName("layoutWidget")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
|
||||
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.label = QtWidgets.QLabel(self.layoutWidget)
|
||||
self.label.setObjectName("label")
|
||||
self.verticalLayout.addWidget(self.label)
|
||||
self.label_4 = QtWidgets.QLabel(self.layoutWidget)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.verticalLayout.addWidget(self.label_4)
|
||||
self.layoutWidget1 = QtWidgets.QWidget(self.splitter_3)
|
||||
self.layoutWidget1.setObjectName("layoutWidget1")
|
||||
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget1)
|
||||
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_2.setObjectName("verticalLayout_2")
|
||||
self.filepath_le = QtWidgets.QLineEdit(self.layoutWidget1)
|
||||
self.filepath_le.setObjectName("filepath_le")
|
||||
self.verticalLayout_2.addWidget(self.filepath_le)
|
||||
self.filename_le = QtWidgets.QLineEdit(self.layoutWidget1)
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.verticalLayout_2.addWidget(self.filename_le)
|
||||
self.layoutWidget2 = QtWidgets.QWidget(self.splitter_3)
|
||||
self.layoutWidget2.setObjectName("layoutWidget2")
|
||||
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.layoutWidget2)
|
||||
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
||||
self.filepath_bt = QtWidgets.QPushButton(self.layoutWidget2)
|
||||
self.filepath_bt.setObjectName("filepath_bt")
|
||||
self.verticalLayout_3.addWidget(self.filepath_bt)
|
||||
self.save_bt = QtWidgets.QPushButton(self.layoutWidget2)
|
||||
self.save_bt.setObjectName("save_bt")
|
||||
self.verticalLayout_3.addWidget(self.save_bt)
|
||||
self.horizontalLayout_4.addWidget(self.splitter_3)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem1)
|
||||
self.verticalLayout_7.addWidget(self.groupBox_5)
|
||||
self.splitter = QtWidgets.QSplitter(image_Window)
|
||||
self.splitter.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.splitter.setObjectName("splitter")
|
||||
self.groupBox_3 = QtWidgets.QGroupBox(self.splitter)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_3.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_3.setSizePolicy(sizePolicy)
|
||||
self.groupBox_3.setMinimumSize(QtCore.QSize(0, 0))
|
||||
self.groupBox_3.setMaximumSize(QtCore.QSize(2000, 16777215))
|
||||
self.groupBox_3.setObjectName("groupBox_3")
|
||||
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.groupBox_3)
|
||||
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
||||
self.groupBox = QtWidgets.QGroupBox(self.groupBox_3)
|
||||
self.groupBox.setObjectName("groupBox")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.groupBox)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.image_glo = QtWidgets.QGridLayout()
|
||||
self.image_glo.setObjectName("image_glo")
|
||||
self.horizontalLayout.addLayout(self.image_glo)
|
||||
self.verticalLayout_4.addWidget(self.groupBox)
|
||||
self.statu_tb = QtWidgets.QTextBrowser(self.groupBox_3)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.statu_tb.sizePolicy().hasHeightForWidth())
|
||||
self.statu_tb.setSizePolicy(sizePolicy)
|
||||
self.statu_tb.setMaximumSize(QtCore.QSize(8777215, 100))
|
||||
self.statu_tb.setReadOnly(True)
|
||||
self.statu_tb.setObjectName("statu_tb")
|
||||
self.verticalLayout_4.addWidget(self.statu_tb)
|
||||
self.groupBox_4 = QtWidgets.QGroupBox(self.splitter)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_4.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_4.setSizePolicy(sizePolicy)
|
||||
self.groupBox_4.setObjectName("groupBox_4")
|
||||
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.groupBox_4)
|
||||
self.verticalLayout_5.setObjectName("verticalLayout_5")
|
||||
self.groupBox_2 = QtWidgets.QGroupBox(self.groupBox_4)
|
||||
self.groupBox_2.setObjectName("groupBox_2")
|
||||
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_2)
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
self.focus_glo = QtWidgets.QGridLayout()
|
||||
self.focus_glo.setObjectName("focus_glo")
|
||||
self.horizontalLayout_2.addLayout(self.focus_glo)
|
||||
self.verticalLayout_5.addWidget(self.groupBox_2)
|
||||
self.groupBox_6 = QtWidgets.QGroupBox(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_6.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_6.setSizePolicy(sizePolicy)
|
||||
self.groupBox_6.setObjectName("groupBox_6")
|
||||
self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.groupBox_6)
|
||||
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
|
||||
self.groupBox_7 = QtWidgets.QGroupBox(self.groupBox_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_7.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_7.setSizePolicy(sizePolicy)
|
||||
self.groupBox_7.setMaximumSize(QtCore.QSize(500, 500))
|
||||
self.groupBox_7.setObjectName("groupBox_7")
|
||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.groupBox_7)
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.verticalLayout_6 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_6.setObjectName("verticalLayout_6")
|
||||
self.label_3 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.verticalLayout_6.addWidget(self.label_3)
|
||||
self.focus_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.focus_bt.setObjectName("focus_bt")
|
||||
self.verticalLayout_6.addWidget(self.focus_bt)
|
||||
self.exposureTime_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.exposureTime_bt.setObjectName("exposureTime_bt")
|
||||
self.verticalLayout_6.addWidget(self.exposureTime_bt)
|
||||
self.label_5 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_5.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.verticalLayout_6.addWidget(self.label_5)
|
||||
self.wb_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.wb_bt.setObjectName("wb_bt")
|
||||
self.verticalLayout_6.addWidget(self.wb_bt)
|
||||
self.label_2 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.verticalLayout_6.addWidget(self.label_2)
|
||||
self.record_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.record_bt.setObjectName("record_bt")
|
||||
self.verticalLayout_6.addWidget(self.record_bt)
|
||||
self.horizontalLayout_3.addLayout(self.verticalLayout_6)
|
||||
self.verticalLayout_8 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_8.setObjectName("verticalLayout_8")
|
||||
self.framerate_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.framerate_le.setReadOnly(False)
|
||||
self.framerate_le.setObjectName("framerate_le")
|
||||
self.verticalLayout_8.addWidget(self.framerate_le)
|
||||
self.stop_focus_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.stop_focus_bt.setObjectName("stop_focus_bt")
|
||||
self.verticalLayout_8.addWidget(self.stop_focus_bt)
|
||||
self.exposureTime_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.exposureTime_le.setObjectName("exposureTime_le")
|
||||
self.verticalLayout_8.addWidget(self.exposureTime_le)
|
||||
self.gain_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.gain_le.setObjectName("gain_le")
|
||||
self.verticalLayout_8.addWidget(self.gain_le)
|
||||
self.dc_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.dc_bt.setObjectName("dc_bt")
|
||||
self.verticalLayout_8.addWidget(self.dc_bt)
|
||||
self.framenumber_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.framenumber_le.setObjectName("framenumber_le")
|
||||
self.verticalLayout_8.addWidget(self.framenumber_le)
|
||||
self.motor_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.motor_bt.setObjectName("motor_bt")
|
||||
self.verticalLayout_8.addWidget(self.motor_bt)
|
||||
self.stop_record_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.stop_record_bt.setObjectName("stop_record_bt")
|
||||
self.verticalLayout_8.addWidget(self.stop_record_bt)
|
||||
self.horizontalLayout_3.addLayout(self.verticalLayout_8)
|
||||
self.horizontalLayout_5.addWidget(self.groupBox_7)
|
||||
spacerItem2 = QtWidgets.QSpacerItem(261, 17, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_5.addItem(spacerItem2)
|
||||
self.verticalLayout_5.addWidget(self.groupBox_6)
|
||||
self.verticalLayout_7.addWidget(self.splitter)
|
||||
|
||||
self.retranslateUi(image_Window)
|
||||
QtCore.QMetaObject.connectSlotsByName(image_Window)
|
||||
|
||||
def retranslateUi(self, image_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
image_Window.setWindowTitle(_translate("image_Window", "影像窗口"))
|
||||
self.groupBox_5.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.label.setText(_translate("image_Window", "保存路径"))
|
||||
self.label_4.setText(_translate("image_Window", "文件名"))
|
||||
self.filepath_bt.setText(_translate("image_Window", "浏览"))
|
||||
self.save_bt.setText(_translate("image_Window", "保存"))
|
||||
self.groupBox_3.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox.setTitle(_translate("image_Window", "图像"))
|
||||
self.groupBox_4.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox_2.setTitle(_translate("image_Window", "光谱"))
|
||||
self.groupBox_6.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox_7.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.label_3.setText(_translate("image_Window", "帧率"))
|
||||
self.focus_bt.setText(_translate("image_Window", "调焦"))
|
||||
self.exposureTime_bt.setText(_translate("image_Window", "曝光"))
|
||||
self.label_5.setText(_translate("image_Window", "gain"))
|
||||
self.wb_bt.setText(_translate("image_Window", "白板"))
|
||||
self.label_2.setText(_translate("image_Window", "帧数"))
|
||||
self.record_bt.setText(_translate("image_Window", "采集"))
|
||||
self.stop_focus_bt.setText(_translate("image_Window", "停止调焦"))
|
||||
self.dc_bt.setText(_translate("image_Window", "暗电流"))
|
||||
self.motor_bt.setText(_translate("image_Window", "马达"))
|
||||
self.stop_record_bt.setText(_translate("image_Window", "停止采集"))
|
||||
377
record_system_v21/image_Window.ui
Normal file
377
record_system_v21/image_Window.ui
Normal file
@ -0,0 +1,377 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>image_Window</class>
|
||||
<widget class="QDialog" name="image_Window">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1181</width>
|
||||
<height>683</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="mouseTracking">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>影像窗口</string>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sizeGripEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="modal">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_5">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSplitter" name="splitter_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>文件名</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="filepath_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="filename_le"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QPushButton" name="filepath_bt">
|
||||
<property name="text">
|
||||
<string>浏览</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="save_bt">
|
||||
<property name="text">
|
||||
<string>保存</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSplitter" name="splitter">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>2000</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>图像</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="image_glo"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="statu_tb">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>8777215</width>
|
||||
<height>100</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>光谱</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="focus_glo"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_6">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_7">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>500</width>
|
||||
<height>500</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>帧率</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="focus_bt">
|
||||
<property name="text">
|
||||
<string>调焦</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="exposureTime_bt">
|
||||
<property name="text">
|
||||
<string>曝光</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>gain</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="wb_bt">
|
||||
<property name="text">
|
||||
<string>白板</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>帧数</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="record_bt">
|
||||
<property name="text">
|
||||
<string>采集</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="framerate_le">
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="stop_focus_bt">
|
||||
<property name="text">
|
||||
<string>停止调焦</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="exposureTime_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="gain_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="dc_bt">
|
||||
<property name="text">
|
||||
<string>暗电流</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="framenumber_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="motor_bt">
|
||||
<property name="text">
|
||||
<string>马达</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="stop_record_bt">
|
||||
<property name="text">
|
||||
<string>停止采集</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>261</width>
|
||||
<height>17</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
94
record_system_v21/spectral_Window.py
Normal file
94
record_system_v21/spectral_Window.py
Normal file
@ -0,0 +1,94 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'spectral_Window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_spectral_Window(object):
|
||||
def setupUi(self, spectral_Window):
|
||||
spectral_Window.setObjectName("spectral_Window")
|
||||
spectral_Window.resize(792, 523)
|
||||
self.label = QtWidgets.QLabel(spectral_Window)
|
||||
self.label.setGeometry(QtCore.QRect(54, 10, 51, 20))
|
||||
self.label.setObjectName("label")
|
||||
self.filepath_le = QtWidgets.QLineEdit(spectral_Window)
|
||||
self.filepath_le.setGeometry(QtCore.QRect(131, 10, 261, 21))
|
||||
self.filepath_le.setObjectName("filepath_le")
|
||||
self.label_2 = QtWidgets.QLabel(spectral_Window)
|
||||
self.label_2.setGeometry(QtCore.QRect(54, 40, 41, 20))
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.filename_le = QtWidgets.QLineEdit(spectral_Window)
|
||||
self.filename_le.setGeometry(QtCore.QRect(131, 40, 261, 21))
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.filepath_bt = QtWidgets.QPushButton(spectral_Window)
|
||||
self.filepath_bt.setGeometry(QtCore.QRect(401, 10, 71, 21))
|
||||
self.filepath_bt.setObjectName("filepath_bt")
|
||||
self.statu_tb = QtWidgets.QTextBrowser(spectral_Window)
|
||||
self.statu_tb.setGeometry(QtCore.QRect(611, 210, 161, 301))
|
||||
self.statu_tb.setObjectName("statu_tb")
|
||||
self.tabWidget = QtWidgets.QTabWidget(spectral_Window)
|
||||
self.tabWidget.setGeometry(QtCore.QRect(10, 70, 591, 441))
|
||||
self.tabWidget.setObjectName("tabWidget")
|
||||
self.tab = QtWidgets.QWidget()
|
||||
self.tab.setObjectName("tab")
|
||||
self.gridLayoutWidget = QtWidgets.QWidget(self.tab)
|
||||
self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, 581, 411))
|
||||
self.gridLayoutWidget.setObjectName("gridLayoutWidget")
|
||||
self.spe_glo = QtWidgets.QGridLayout(self.gridLayoutWidget)
|
||||
self.spe_glo.setContentsMargins(0, 0, 0, 0)
|
||||
self.spe_glo.setObjectName("spe_glo")
|
||||
self.tabWidget.addTab(self.tab, "")
|
||||
self.tab_2 = QtWidgets.QWidget()
|
||||
self.tab_2.setObjectName("tab_2")
|
||||
self.gridLayoutWidget_2 = QtWidgets.QWidget(self.tab_2)
|
||||
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(-1, -1, 581, 411))
|
||||
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
|
||||
self.align_glo = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
|
||||
self.align_glo.setContentsMargins(0, 0, 0, 0)
|
||||
self.align_glo.setObjectName("align_glo")
|
||||
self.tabWidget.addTab(self.tab_2, "")
|
||||
self.layoutWidget = QtWidgets.QWidget(spectral_Window)
|
||||
self.layoutWidget.setGeometry(QtCore.QRect(610, 90, 195, 135))
|
||||
self.layoutWidget.setObjectName("layoutWidget")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.layoutWidget)
|
||||
self.gridLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.align_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.align_bt.setObjectName("align_bt")
|
||||
self.gridLayout.addWidget(self.align_bt, 0, 0, 1, 1)
|
||||
self.stop_align_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.stop_align_bt.setObjectName("stop_align_bt")
|
||||
self.gridLayout.addWidget(self.stop_align_bt, 0, 1, 1, 1)
|
||||
self.wb_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.wb_bt.setObjectName("wb_bt")
|
||||
self.gridLayout.addWidget(self.wb_bt, 1, 0, 1, 2)
|
||||
self.dc_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.dc_bt.setObjectName("dc_bt")
|
||||
self.gridLayout.addWidget(self.dc_bt, 2, 0, 1, 2)
|
||||
self.record_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.record_bt.setObjectName("record_bt")
|
||||
self.gridLayout.addWidget(self.record_bt, 3, 0, 1, 2)
|
||||
|
||||
self.retranslateUi(spectral_Window)
|
||||
self.tabWidget.setCurrentIndex(0)
|
||||
QtCore.QMetaObject.connectSlotsByName(spectral_Window)
|
||||
|
||||
def retranslateUi(self, spectral_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
spectral_Window.setWindowTitle(_translate("spectral_Window", "光谱窗口"))
|
||||
self.label.setText(_translate("spectral_Window", "保存路径"))
|
||||
self.label_2.setText(_translate("spectral_Window", "文件名"))
|
||||
self.filepath_bt.setText(_translate("spectral_Window", "浏览"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("spectral_Window", "spe"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("spectral_Window", "align"))
|
||||
self.align_bt.setText(_translate("spectral_Window", "align"))
|
||||
self.stop_align_bt.setText(_translate("spectral_Window", "stop align"))
|
||||
self.wb_bt.setText(_translate("spectral_Window", "曝光/白板"))
|
||||
self.dc_bt.setText(_translate("spectral_Window", "暗电流"))
|
||||
self.record_bt.setText(_translate("spectral_Window", "采集"))
|
||||
180
record_system_v21/spectral_Window.ui
Normal file
180
record_system_v21/spectral_Window.ui
Normal file
@ -0,0 +1,180 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>spectral_Window</class>
|
||||
<widget class="QDialog" name="spectral_Window">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>792</width>
|
||||
<height>523</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>光谱窗口</string>
|
||||
</property>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>54</x>
|
||||
<y>10</y>
|
||||
<width>51</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="filepath_le">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>131</x>
|
||||
<y>10</y>
|
||||
<width>261</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>54</x>
|
||||
<y>40</y>
|
||||
<width>41</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>文件名</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="filename_le">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>131</x>
|
||||
<y>40</y>
|
||||
<width>261</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="filepath_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>401</x>
|
||||
<y>10</y>
|
||||
<width>71</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>浏览</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextBrowser" name="statu_tb">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>611</x>
|
||||
<y>210</y>
|
||||
<width>161</width>
|
||||
<height>301</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>70</y>
|
||||
<width>591</width>
|
||||
<height>441</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string>spe</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="gridLayoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>581</width>
|
||||
<height>411</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="spe_glo"/>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<attribute name="title">
|
||||
<string>align</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="gridLayoutWidget_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>-1</x>
|
||||
<y>-1</y>
|
||||
<width>581</width>
|
||||
<height>411</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="align_glo"/>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>610</x>
|
||||
<y>90</y>
|
||||
<width>195</width>
|
||||
<height>135</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="align_bt">
|
||||
<property name="text">
|
||||
<string>align</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="stop_align_bt">
|
||||
<property name="text">
|
||||
<string>stop align</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="wb_bt">
|
||||
<property name="text">
|
||||
<string>曝光/白板</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="dc_bt">
|
||||
<property name="text">
|
||||
<string>暗电流</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="record_bt">
|
||||
<property name="text">
|
||||
<string>采集</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
1203
record_system_v22/2record_system_v2.2.py
Normal file
1203
record_system_v22/2record_system_v2.2.py
Normal file
File diff suppressed because it is too large
Load Diff
48
record_system_v22/arcus_control_ui.py
Normal file
48
record_system_v22/arcus_control_ui.py
Normal file
@ -0,0 +1,48 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'arcus_control_ui.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_arcus_ui(object):
|
||||
def setupUi(self, arcus_ui):
|
||||
arcus_ui.setObjectName("arcus_ui")
|
||||
arcus_ui.resize(354, 171)
|
||||
self.centralwidget = QtWidgets.QWidget(arcus_ui)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.left_btn = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.left_btn.setGeometry(QtCore.QRect(100, 90, 61, 21))
|
||||
self.left_btn.setObjectName("left_btn")
|
||||
self.right_btn = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.right_btn.setGeometry(QtCore.QRect(170, 90, 61, 23))
|
||||
self.right_btn.setObjectName("right_btn")
|
||||
self.speed_lineEdit = QtWidgets.QLineEdit(self.centralwidget)
|
||||
self.speed_lineEdit.setGeometry(QtCore.QRect(101, 10, 131, 20))
|
||||
self.speed_lineEdit.setObjectName("speed_lineEdit")
|
||||
self.speed_ScrollBar = QtWidgets.QScrollBar(self.centralwidget)
|
||||
self.speed_ScrollBar.setGeometry(QtCore.QRect(100, 40, 131, 20))
|
||||
self.speed_ScrollBar.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.speed_ScrollBar.setObjectName("speed_ScrollBar")
|
||||
arcus_ui.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(arcus_ui)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 354, 23))
|
||||
self.menubar.setObjectName("menubar")
|
||||
arcus_ui.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(arcus_ui)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
arcus_ui.setStatusBar(self.statusbar)
|
||||
|
||||
self.retranslateUi(arcus_ui)
|
||||
QtCore.QMetaObject.connectSlotsByName(arcus_ui)
|
||||
|
||||
def retranslateUi(self, arcus_ui):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
arcus_ui.setWindowTitle(_translate("arcus_ui", "MainWindow"))
|
||||
self.left_btn.setText(_translate("arcus_ui", "左"))
|
||||
self.right_btn.setText(_translate("arcus_ui", "右"))
|
||||
81
record_system_v22/arcus_control_ui.ui
Normal file
81
record_system_v22/arcus_control_ui.ui
Normal file
@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>arcus_ui</class>
|
||||
<widget class="QMainWindow" name="arcus_ui">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>354</width>
|
||||
<height>171</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QPushButton" name="left_btn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>90</y>
|
||||
<width>61</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>左</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="right_btn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>170</x>
|
||||
<y>90</y>
|
||||
<width>61</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>右</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="speed_lineEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>101</x>
|
||||
<y>10</y>
|
||||
<width>131</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QScrollBar" name="speed_ScrollBar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>40</y>
|
||||
<width>131</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>354</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
47
record_system_v22/enter_window.py
Normal file
47
record_system_v22/enter_window.py
Normal file
@ -0,0 +1,47 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'enter_window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_enter_Window(object):
|
||||
def setupUi(self, enter_Window):
|
||||
enter_Window.setObjectName("enter_Window")
|
||||
enter_Window.resize(651, 474)
|
||||
self.centralwidget = QtWidgets.QWidget(enter_Window)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.image_mode_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.image_mode_bt.setGeometry(QtCore.QRect(200, 180, 111, 51))
|
||||
self.image_mode_bt.setObjectName("image_mode_bt")
|
||||
self.spectral_mode_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.spectral_mode_bt.setGeometry(QtCore.QRect(360, 180, 111, 51))
|
||||
self.spectral_mode_bt.setObjectName("spectral_mode_bt")
|
||||
self.camstatus_tb = QtWidgets.QTextBrowser(self.centralwidget)
|
||||
self.camstatus_tb.setGeometry(QtCore.QRect(200, 240, 271, 81))
|
||||
self.camstatus_tb.setObjectName("camstatus_tb")
|
||||
enter_Window.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(enter_Window)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 651, 26))
|
||||
self.menubar.setObjectName("menubar")
|
||||
enter_Window.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(enter_Window)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
enter_Window.setStatusBar(self.statusbar)
|
||||
self.actionwew_e = QtWidgets.QAction(enter_Window)
|
||||
self.actionwew_e.setObjectName("actionwew_e")
|
||||
|
||||
self.retranslateUi(enter_Window)
|
||||
QtCore.QMetaObject.connectSlotsByName(enter_Window)
|
||||
|
||||
def retranslateUi(self, enter_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
enter_Window.setWindowTitle(_translate("enter_Window", "主窗口"))
|
||||
self.image_mode_bt.setText(_translate("enter_Window", "影像模式"))
|
||||
self.spectral_mode_bt.setText(_translate("enter_Window", "光谱模式"))
|
||||
self.actionwew_e.setText(_translate("enter_Window", "wew e"))
|
||||
73
record_system_v22/enter_window.ui
Normal file
73
record_system_v22/enter_window.ui
Normal file
@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>enter_Window</class>
|
||||
<widget class="QMainWindow" name="enter_Window">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>474</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>主窗口</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QPushButton" name="image_mode_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>180</y>
|
||||
<width>111</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>影像模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="spectral_mode_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>360</x>
|
||||
<y>180</y>
|
||||
<width>111</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>光谱模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextBrowser" name="camstatus_tb">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>240</y>
|
||||
<width>271</width>
|
||||
<height>81</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
<action name="actionwew_e">
|
||||
<property name="text">
|
||||
<string>wew e</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
231
record_system_v22/image_Window.py
Normal file
231
record_system_v22/image_Window.py
Normal file
@ -0,0 +1,231 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'image_Window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_image_Window(object):
|
||||
def setupUi(self, image_Window):
|
||||
image_Window.setObjectName("image_Window")
|
||||
image_Window.setEnabled(True)
|
||||
image_Window.resize(1181, 683)
|
||||
image_Window.setMouseTracking(False)
|
||||
image_Window.setAutoFillBackground(False)
|
||||
image_Window.setSizeGripEnabled(False)
|
||||
image_Window.setModal(False)
|
||||
self.verticalLayout_7 = QtWidgets.QVBoxLayout(image_Window)
|
||||
self.verticalLayout_7.setObjectName("verticalLayout_7")
|
||||
self.groupBox_5 = QtWidgets.QGroupBox(image_Window)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_5.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_5.setSizePolicy(sizePolicy)
|
||||
self.groupBox_5.setObjectName("groupBox_5")
|
||||
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.groupBox_5)
|
||||
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
||||
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem)
|
||||
self.splitter_3 = QtWidgets.QSplitter(self.groupBox_5)
|
||||
self.splitter_3.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.splitter_3.setObjectName("splitter_3")
|
||||
self.layoutWidget = QtWidgets.QWidget(self.splitter_3)
|
||||
self.layoutWidget.setObjectName("layoutWidget")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
|
||||
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.label = QtWidgets.QLabel(self.layoutWidget)
|
||||
self.label.setObjectName("label")
|
||||
self.verticalLayout.addWidget(self.label)
|
||||
self.label_4 = QtWidgets.QLabel(self.layoutWidget)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.verticalLayout.addWidget(self.label_4)
|
||||
self.layoutWidget1 = QtWidgets.QWidget(self.splitter_3)
|
||||
self.layoutWidget1.setObjectName("layoutWidget1")
|
||||
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget1)
|
||||
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_2.setObjectName("verticalLayout_2")
|
||||
self.filepath_le = QtWidgets.QLineEdit(self.layoutWidget1)
|
||||
self.filepath_le.setObjectName("filepath_le")
|
||||
self.verticalLayout_2.addWidget(self.filepath_le)
|
||||
self.filename_le = QtWidgets.QLineEdit(self.layoutWidget1)
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.verticalLayout_2.addWidget(self.filename_le)
|
||||
self.layoutWidget2 = QtWidgets.QWidget(self.splitter_3)
|
||||
self.layoutWidget2.setObjectName("layoutWidget2")
|
||||
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.layoutWidget2)
|
||||
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
||||
self.filepath_bt = QtWidgets.QPushButton(self.layoutWidget2)
|
||||
self.filepath_bt.setObjectName("filepath_bt")
|
||||
self.verticalLayout_3.addWidget(self.filepath_bt)
|
||||
self.save_bt = QtWidgets.QPushButton(self.layoutWidget2)
|
||||
self.save_bt.setObjectName("save_bt")
|
||||
self.verticalLayout_3.addWidget(self.save_bt)
|
||||
self.horizontalLayout_4.addWidget(self.splitter_3)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem1)
|
||||
self.verticalLayout_7.addWidget(self.groupBox_5)
|
||||
self.splitter = QtWidgets.QSplitter(image_Window)
|
||||
self.splitter.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.splitter.setObjectName("splitter")
|
||||
self.groupBox_3 = QtWidgets.QGroupBox(self.splitter)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_3.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_3.setSizePolicy(sizePolicy)
|
||||
self.groupBox_3.setMinimumSize(QtCore.QSize(0, 0))
|
||||
self.groupBox_3.setMaximumSize(QtCore.QSize(2000, 16777215))
|
||||
self.groupBox_3.setObjectName("groupBox_3")
|
||||
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.groupBox_3)
|
||||
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
||||
self.groupBox = QtWidgets.QGroupBox(self.groupBox_3)
|
||||
self.groupBox.setObjectName("groupBox")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.groupBox)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.image_glo = QtWidgets.QGridLayout()
|
||||
self.image_glo.setObjectName("image_glo")
|
||||
self.horizontalLayout.addLayout(self.image_glo)
|
||||
self.verticalLayout_4.addWidget(self.groupBox)
|
||||
self.statu_tb = QtWidgets.QTextBrowser(self.groupBox_3)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.statu_tb.sizePolicy().hasHeightForWidth())
|
||||
self.statu_tb.setSizePolicy(sizePolicy)
|
||||
self.statu_tb.setMaximumSize(QtCore.QSize(8777215, 100))
|
||||
self.statu_tb.setReadOnly(True)
|
||||
self.statu_tb.setObjectName("statu_tb")
|
||||
self.verticalLayout_4.addWidget(self.statu_tb)
|
||||
self.groupBox_4 = QtWidgets.QGroupBox(self.splitter)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_4.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_4.setSizePolicy(sizePolicy)
|
||||
self.groupBox_4.setObjectName("groupBox_4")
|
||||
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.groupBox_4)
|
||||
self.verticalLayout_5.setObjectName("verticalLayout_5")
|
||||
self.groupBox_2 = QtWidgets.QGroupBox(self.groupBox_4)
|
||||
self.groupBox_2.setObjectName("groupBox_2")
|
||||
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_2)
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
self.focus_glo = QtWidgets.QGridLayout()
|
||||
self.focus_glo.setObjectName("focus_glo")
|
||||
self.horizontalLayout_2.addLayout(self.focus_glo)
|
||||
self.verticalLayout_5.addWidget(self.groupBox_2)
|
||||
self.groupBox_6 = QtWidgets.QGroupBox(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_6.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_6.setSizePolicy(sizePolicy)
|
||||
self.groupBox_6.setObjectName("groupBox_6")
|
||||
self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.groupBox_6)
|
||||
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
|
||||
self.groupBox_7 = QtWidgets.QGroupBox(self.groupBox_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_7.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_7.setSizePolicy(sizePolicy)
|
||||
self.groupBox_7.setMaximumSize(QtCore.QSize(500, 500))
|
||||
self.groupBox_7.setObjectName("groupBox_7")
|
||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.groupBox_7)
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.verticalLayout_6 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_6.setObjectName("verticalLayout_6")
|
||||
self.label_3 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.verticalLayout_6.addWidget(self.label_3)
|
||||
self.focus_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.focus_bt.setObjectName("focus_bt")
|
||||
self.verticalLayout_6.addWidget(self.focus_bt)
|
||||
self.exposureTime_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.exposureTime_bt.setObjectName("exposureTime_bt")
|
||||
self.verticalLayout_6.addWidget(self.exposureTime_bt)
|
||||
self.label_5 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_5.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.verticalLayout_6.addWidget(self.label_5)
|
||||
self.wb_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.wb_bt.setObjectName("wb_bt")
|
||||
self.verticalLayout_6.addWidget(self.wb_bt)
|
||||
self.label_2 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.verticalLayout_6.addWidget(self.label_2)
|
||||
self.record_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.record_bt.setObjectName("record_bt")
|
||||
self.verticalLayout_6.addWidget(self.record_bt)
|
||||
self.horizontalLayout_3.addLayout(self.verticalLayout_6)
|
||||
self.verticalLayout_8 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_8.setObjectName("verticalLayout_8")
|
||||
self.framerate_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.framerate_le.setReadOnly(False)
|
||||
self.framerate_le.setObjectName("framerate_le")
|
||||
self.verticalLayout_8.addWidget(self.framerate_le)
|
||||
self.stop_focus_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.stop_focus_bt.setObjectName("stop_focus_bt")
|
||||
self.verticalLayout_8.addWidget(self.stop_focus_bt)
|
||||
self.exposureTime_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.exposureTime_le.setObjectName("exposureTime_le")
|
||||
self.verticalLayout_8.addWidget(self.exposureTime_le)
|
||||
self.gain_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.gain_le.setObjectName("gain_le")
|
||||
self.verticalLayout_8.addWidget(self.gain_le)
|
||||
self.dc_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.dc_bt.setObjectName("dc_bt")
|
||||
self.verticalLayout_8.addWidget(self.dc_bt)
|
||||
self.framenumber_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.framenumber_le.setObjectName("framenumber_le")
|
||||
self.verticalLayout_8.addWidget(self.framenumber_le)
|
||||
self.motor_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.motor_bt.setObjectName("motor_bt")
|
||||
self.verticalLayout_8.addWidget(self.motor_bt)
|
||||
self.stop_record_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.stop_record_bt.setObjectName("stop_record_bt")
|
||||
self.verticalLayout_8.addWidget(self.stop_record_bt)
|
||||
self.horizontalLayout_3.addLayout(self.verticalLayout_8)
|
||||
self.horizontalLayout_5.addWidget(self.groupBox_7)
|
||||
spacerItem2 = QtWidgets.QSpacerItem(261, 17, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_5.addItem(spacerItem2)
|
||||
self.verticalLayout_5.addWidget(self.groupBox_6)
|
||||
self.verticalLayout_7.addWidget(self.splitter)
|
||||
|
||||
self.retranslateUi(image_Window)
|
||||
QtCore.QMetaObject.connectSlotsByName(image_Window)
|
||||
|
||||
def retranslateUi(self, image_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
image_Window.setWindowTitle(_translate("image_Window", "影像窗口"))
|
||||
self.groupBox_5.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.label.setText(_translate("image_Window", "保存路径"))
|
||||
self.label_4.setText(_translate("image_Window", "文件名"))
|
||||
self.filepath_bt.setText(_translate("image_Window", "浏览"))
|
||||
self.save_bt.setText(_translate("image_Window", "保存"))
|
||||
self.groupBox_3.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox.setTitle(_translate("image_Window", "图像"))
|
||||
self.groupBox_4.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox_2.setTitle(_translate("image_Window", "光谱"))
|
||||
self.groupBox_6.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox_7.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.label_3.setText(_translate("image_Window", "帧率"))
|
||||
self.focus_bt.setText(_translate("image_Window", "调焦"))
|
||||
self.exposureTime_bt.setText(_translate("image_Window", "曝光"))
|
||||
self.label_5.setText(_translate("image_Window", "gain"))
|
||||
self.wb_bt.setText(_translate("image_Window", "白板"))
|
||||
self.label_2.setText(_translate("image_Window", "帧数"))
|
||||
self.record_bt.setText(_translate("image_Window", "采集"))
|
||||
self.stop_focus_bt.setText(_translate("image_Window", "停止调焦"))
|
||||
self.dc_bt.setText(_translate("image_Window", "暗电流"))
|
||||
self.motor_bt.setText(_translate("image_Window", "马达"))
|
||||
self.stop_record_bt.setText(_translate("image_Window", "停止采集"))
|
||||
377
record_system_v22/image_Window.ui
Normal file
377
record_system_v22/image_Window.ui
Normal file
@ -0,0 +1,377 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>image_Window</class>
|
||||
<widget class="QDialog" name="image_Window">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1181</width>
|
||||
<height>683</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="mouseTracking">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>影像窗口</string>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sizeGripEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="modal">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_5">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSplitter" name="splitter_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>文件名</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="filepath_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="filename_le"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QPushButton" name="filepath_bt">
|
||||
<property name="text">
|
||||
<string>浏览</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="save_bt">
|
||||
<property name="text">
|
||||
<string>保存</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSplitter" name="splitter">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>2000</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>图像</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="image_glo"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="statu_tb">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>8777215</width>
|
||||
<height>100</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>光谱</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="focus_glo"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_6">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_7">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>500</width>
|
||||
<height>500</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>帧率</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="focus_bt">
|
||||
<property name="text">
|
||||
<string>调焦</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="exposureTime_bt">
|
||||
<property name="text">
|
||||
<string>曝光</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>gain</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="wb_bt">
|
||||
<property name="text">
|
||||
<string>白板</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>帧数</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="record_bt">
|
||||
<property name="text">
|
||||
<string>采集</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="framerate_le">
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="stop_focus_bt">
|
||||
<property name="text">
|
||||
<string>停止调焦</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="exposureTime_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="gain_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="dc_bt">
|
||||
<property name="text">
|
||||
<string>暗电流</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="framenumber_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="motor_bt">
|
||||
<property name="text">
|
||||
<string>马达</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="stop_record_bt">
|
||||
<property name="text">
|
||||
<string>停止采集</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>261</width>
|
||||
<height>17</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
94
record_system_v22/spectral_Window.py
Normal file
94
record_system_v22/spectral_Window.py
Normal file
@ -0,0 +1,94 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'spectral_Window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_spectral_Window(object):
|
||||
def setupUi(self, spectral_Window):
|
||||
spectral_Window.setObjectName("spectral_Window")
|
||||
spectral_Window.resize(792, 523)
|
||||
self.label = QtWidgets.QLabel(spectral_Window)
|
||||
self.label.setGeometry(QtCore.QRect(54, 10, 51, 20))
|
||||
self.label.setObjectName("label")
|
||||
self.filepath_le = QtWidgets.QLineEdit(spectral_Window)
|
||||
self.filepath_le.setGeometry(QtCore.QRect(131, 10, 261, 21))
|
||||
self.filepath_le.setObjectName("filepath_le")
|
||||
self.label_2 = QtWidgets.QLabel(spectral_Window)
|
||||
self.label_2.setGeometry(QtCore.QRect(54, 40, 41, 20))
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.filename_le = QtWidgets.QLineEdit(spectral_Window)
|
||||
self.filename_le.setGeometry(QtCore.QRect(131, 40, 261, 21))
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.filepath_bt = QtWidgets.QPushButton(spectral_Window)
|
||||
self.filepath_bt.setGeometry(QtCore.QRect(401, 10, 71, 21))
|
||||
self.filepath_bt.setObjectName("filepath_bt")
|
||||
self.statu_tb = QtWidgets.QTextBrowser(spectral_Window)
|
||||
self.statu_tb.setGeometry(QtCore.QRect(611, 210, 161, 301))
|
||||
self.statu_tb.setObjectName("statu_tb")
|
||||
self.tabWidget = QtWidgets.QTabWidget(spectral_Window)
|
||||
self.tabWidget.setGeometry(QtCore.QRect(10, 70, 591, 441))
|
||||
self.tabWidget.setObjectName("tabWidget")
|
||||
self.tab = QtWidgets.QWidget()
|
||||
self.tab.setObjectName("tab")
|
||||
self.gridLayoutWidget = QtWidgets.QWidget(self.tab)
|
||||
self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, 581, 411))
|
||||
self.gridLayoutWidget.setObjectName("gridLayoutWidget")
|
||||
self.spe_glo = QtWidgets.QGridLayout(self.gridLayoutWidget)
|
||||
self.spe_glo.setContentsMargins(0, 0, 0, 0)
|
||||
self.spe_glo.setObjectName("spe_glo")
|
||||
self.tabWidget.addTab(self.tab, "")
|
||||
self.tab_2 = QtWidgets.QWidget()
|
||||
self.tab_2.setObjectName("tab_2")
|
||||
self.gridLayoutWidget_2 = QtWidgets.QWidget(self.tab_2)
|
||||
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(-1, -1, 581, 411))
|
||||
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
|
||||
self.align_glo = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
|
||||
self.align_glo.setContentsMargins(0, 0, 0, 0)
|
||||
self.align_glo.setObjectName("align_glo")
|
||||
self.tabWidget.addTab(self.tab_2, "")
|
||||
self.layoutWidget = QtWidgets.QWidget(spectral_Window)
|
||||
self.layoutWidget.setGeometry(QtCore.QRect(610, 90, 195, 135))
|
||||
self.layoutWidget.setObjectName("layoutWidget")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.layoutWidget)
|
||||
self.gridLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.align_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.align_bt.setObjectName("align_bt")
|
||||
self.gridLayout.addWidget(self.align_bt, 0, 0, 1, 1)
|
||||
self.stop_align_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.stop_align_bt.setObjectName("stop_align_bt")
|
||||
self.gridLayout.addWidget(self.stop_align_bt, 0, 1, 1, 1)
|
||||
self.wb_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.wb_bt.setObjectName("wb_bt")
|
||||
self.gridLayout.addWidget(self.wb_bt, 1, 0, 1, 2)
|
||||
self.dc_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.dc_bt.setObjectName("dc_bt")
|
||||
self.gridLayout.addWidget(self.dc_bt, 2, 0, 1, 2)
|
||||
self.record_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.record_bt.setObjectName("record_bt")
|
||||
self.gridLayout.addWidget(self.record_bt, 3, 0, 1, 2)
|
||||
|
||||
self.retranslateUi(spectral_Window)
|
||||
self.tabWidget.setCurrentIndex(0)
|
||||
QtCore.QMetaObject.connectSlotsByName(spectral_Window)
|
||||
|
||||
def retranslateUi(self, spectral_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
spectral_Window.setWindowTitle(_translate("spectral_Window", "光谱窗口"))
|
||||
self.label.setText(_translate("spectral_Window", "保存路径"))
|
||||
self.label_2.setText(_translate("spectral_Window", "文件名"))
|
||||
self.filepath_bt.setText(_translate("spectral_Window", "浏览"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("spectral_Window", "spe"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("spectral_Window", "align"))
|
||||
self.align_bt.setText(_translate("spectral_Window", "align"))
|
||||
self.stop_align_bt.setText(_translate("spectral_Window", "stop align"))
|
||||
self.wb_bt.setText(_translate("spectral_Window", "曝光/白板"))
|
||||
self.dc_bt.setText(_translate("spectral_Window", "暗电流"))
|
||||
self.record_bt.setText(_translate("spectral_Window", "采集"))
|
||||
180
record_system_v22/spectral_Window.ui
Normal file
180
record_system_v22/spectral_Window.ui
Normal file
@ -0,0 +1,180 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>spectral_Window</class>
|
||||
<widget class="QDialog" name="spectral_Window">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>792</width>
|
||||
<height>523</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>光谱窗口</string>
|
||||
</property>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>54</x>
|
||||
<y>10</y>
|
||||
<width>51</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="filepath_le">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>131</x>
|
||||
<y>10</y>
|
||||
<width>261</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>54</x>
|
||||
<y>40</y>
|
||||
<width>41</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>文件名</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="filename_le">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>131</x>
|
||||
<y>40</y>
|
||||
<width>261</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="filepath_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>401</x>
|
||||
<y>10</y>
|
||||
<width>71</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>浏览</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextBrowser" name="statu_tb">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>611</x>
|
||||
<y>210</y>
|
||||
<width>161</width>
|
||||
<height>301</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>70</y>
|
||||
<width>591</width>
|
||||
<height>441</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string>spe</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="gridLayoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>581</width>
|
||||
<height>411</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="spe_glo"/>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<attribute name="title">
|
||||
<string>align</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="gridLayoutWidget_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>-1</x>
|
||||
<y>-1</y>
|
||||
<width>581</width>
|
||||
<height>411</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="align_glo"/>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>610</x>
|
||||
<y>90</y>
|
||||
<width>195</width>
|
||||
<height>135</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="align_bt">
|
||||
<property name="text">
|
||||
<string>align</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="stop_align_bt">
|
||||
<property name="text">
|
||||
<string>stop align</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="wb_bt">
|
||||
<property name="text">
|
||||
<string>曝光/白板</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="dc_bt">
|
||||
<property name="text">
|
||||
<string>暗电流</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="record_bt">
|
||||
<property name="text">
|
||||
<string>采集</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
1438
record_system_v23/2record_system_v2.3.py
Normal file
1438
record_system_v23/2record_system_v2.3.py
Normal file
File diff suppressed because it is too large
Load Diff
48
record_system_v23/arcus_control_ui.py
Normal file
48
record_system_v23/arcus_control_ui.py
Normal file
@ -0,0 +1,48 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'arcus_control_ui.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_arcus_ui(object):
|
||||
def setupUi(self, arcus_ui):
|
||||
arcus_ui.setObjectName("arcus_ui")
|
||||
arcus_ui.resize(354, 171)
|
||||
self.centralwidget = QtWidgets.QWidget(arcus_ui)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.left_btn = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.left_btn.setGeometry(QtCore.QRect(100, 90, 61, 21))
|
||||
self.left_btn.setObjectName("left_btn")
|
||||
self.right_btn = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.right_btn.setGeometry(QtCore.QRect(170, 90, 61, 23))
|
||||
self.right_btn.setObjectName("right_btn")
|
||||
self.speed_lineEdit = QtWidgets.QLineEdit(self.centralwidget)
|
||||
self.speed_lineEdit.setGeometry(QtCore.QRect(101, 10, 131, 20))
|
||||
self.speed_lineEdit.setObjectName("speed_lineEdit")
|
||||
self.speed_ScrollBar = QtWidgets.QScrollBar(self.centralwidget)
|
||||
self.speed_ScrollBar.setGeometry(QtCore.QRect(100, 40, 131, 20))
|
||||
self.speed_ScrollBar.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.speed_ScrollBar.setObjectName("speed_ScrollBar")
|
||||
arcus_ui.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(arcus_ui)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 354, 23))
|
||||
self.menubar.setObjectName("menubar")
|
||||
arcus_ui.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(arcus_ui)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
arcus_ui.setStatusBar(self.statusbar)
|
||||
|
||||
self.retranslateUi(arcus_ui)
|
||||
QtCore.QMetaObject.connectSlotsByName(arcus_ui)
|
||||
|
||||
def retranslateUi(self, arcus_ui):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
arcus_ui.setWindowTitle(_translate("arcus_ui", "MainWindow"))
|
||||
self.left_btn.setText(_translate("arcus_ui", "左"))
|
||||
self.right_btn.setText(_translate("arcus_ui", "右"))
|
||||
81
record_system_v23/arcus_control_ui.ui
Normal file
81
record_system_v23/arcus_control_ui.ui
Normal file
@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>arcus_ui</class>
|
||||
<widget class="QMainWindow" name="arcus_ui">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>354</width>
|
||||
<height>171</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QPushButton" name="left_btn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>90</y>
|
||||
<width>61</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>左</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="right_btn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>170</x>
|
||||
<y>90</y>
|
||||
<width>61</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>右</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="speed_lineEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>101</x>
|
||||
<y>10</y>
|
||||
<width>131</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QScrollBar" name="speed_ScrollBar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>40</y>
|
||||
<width>131</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>354</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
47
record_system_v23/enter_window.py
Normal file
47
record_system_v23/enter_window.py
Normal file
@ -0,0 +1,47 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'enter_window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_enter_Window(object):
|
||||
def setupUi(self, enter_Window):
|
||||
enter_Window.setObjectName("enter_Window")
|
||||
enter_Window.resize(651, 474)
|
||||
self.centralwidget = QtWidgets.QWidget(enter_Window)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.image_mode_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.image_mode_bt.setGeometry(QtCore.QRect(200, 180, 111, 51))
|
||||
self.image_mode_bt.setObjectName("image_mode_bt")
|
||||
self.spectral_mode_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.spectral_mode_bt.setGeometry(QtCore.QRect(360, 180, 111, 51))
|
||||
self.spectral_mode_bt.setObjectName("spectral_mode_bt")
|
||||
self.camstatus_tb = QtWidgets.QTextBrowser(self.centralwidget)
|
||||
self.camstatus_tb.setGeometry(QtCore.QRect(200, 240, 271, 81))
|
||||
self.camstatus_tb.setObjectName("camstatus_tb")
|
||||
enter_Window.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(enter_Window)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 651, 26))
|
||||
self.menubar.setObjectName("menubar")
|
||||
enter_Window.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(enter_Window)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
enter_Window.setStatusBar(self.statusbar)
|
||||
self.actionwew_e = QtWidgets.QAction(enter_Window)
|
||||
self.actionwew_e.setObjectName("actionwew_e")
|
||||
|
||||
self.retranslateUi(enter_Window)
|
||||
QtCore.QMetaObject.connectSlotsByName(enter_Window)
|
||||
|
||||
def retranslateUi(self, enter_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
enter_Window.setWindowTitle(_translate("enter_Window", "主窗口"))
|
||||
self.image_mode_bt.setText(_translate("enter_Window", "影像模式"))
|
||||
self.spectral_mode_bt.setText(_translate("enter_Window", "光谱模式"))
|
||||
self.actionwew_e.setText(_translate("enter_Window", "wew e"))
|
||||
73
record_system_v23/enter_window.ui
Normal file
73
record_system_v23/enter_window.ui
Normal file
@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>enter_Window</class>
|
||||
<widget class="QMainWindow" name="enter_Window">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>474</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>主窗口</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QPushButton" name="image_mode_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>180</y>
|
||||
<width>111</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>影像模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="spectral_mode_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>360</x>
|
||||
<y>180</y>
|
||||
<width>111</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>光谱模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextBrowser" name="camstatus_tb">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>240</y>
|
||||
<width>271</width>
|
||||
<height>81</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
<action name="actionwew_e">
|
||||
<property name="text">
|
||||
<string>wew e</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
231
record_system_v23/image_Window.py
Normal file
231
record_system_v23/image_Window.py
Normal file
@ -0,0 +1,231 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'image_Window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_image_Window(object):
|
||||
def setupUi(self, image_Window):
|
||||
image_Window.setObjectName("image_Window")
|
||||
image_Window.setEnabled(True)
|
||||
image_Window.resize(1181, 683)
|
||||
image_Window.setMouseTracking(False)
|
||||
image_Window.setAutoFillBackground(False)
|
||||
image_Window.setSizeGripEnabled(False)
|
||||
image_Window.setModal(False)
|
||||
self.verticalLayout_7 = QtWidgets.QVBoxLayout(image_Window)
|
||||
self.verticalLayout_7.setObjectName("verticalLayout_7")
|
||||
self.groupBox_5 = QtWidgets.QGroupBox(image_Window)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_5.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_5.setSizePolicy(sizePolicy)
|
||||
self.groupBox_5.setObjectName("groupBox_5")
|
||||
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.groupBox_5)
|
||||
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
||||
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem)
|
||||
self.splitter_3 = QtWidgets.QSplitter(self.groupBox_5)
|
||||
self.splitter_3.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.splitter_3.setObjectName("splitter_3")
|
||||
self.layoutWidget = QtWidgets.QWidget(self.splitter_3)
|
||||
self.layoutWidget.setObjectName("layoutWidget")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
|
||||
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.label = QtWidgets.QLabel(self.layoutWidget)
|
||||
self.label.setObjectName("label")
|
||||
self.verticalLayout.addWidget(self.label)
|
||||
self.label_4 = QtWidgets.QLabel(self.layoutWidget)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.verticalLayout.addWidget(self.label_4)
|
||||
self.layoutWidget1 = QtWidgets.QWidget(self.splitter_3)
|
||||
self.layoutWidget1.setObjectName("layoutWidget1")
|
||||
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget1)
|
||||
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_2.setObjectName("verticalLayout_2")
|
||||
self.filepath_le = QtWidgets.QLineEdit(self.layoutWidget1)
|
||||
self.filepath_le.setObjectName("filepath_le")
|
||||
self.verticalLayout_2.addWidget(self.filepath_le)
|
||||
self.filename_le = QtWidgets.QLineEdit(self.layoutWidget1)
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.verticalLayout_2.addWidget(self.filename_le)
|
||||
self.layoutWidget2 = QtWidgets.QWidget(self.splitter_3)
|
||||
self.layoutWidget2.setObjectName("layoutWidget2")
|
||||
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.layoutWidget2)
|
||||
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
||||
self.filepath_bt = QtWidgets.QPushButton(self.layoutWidget2)
|
||||
self.filepath_bt.setObjectName("filepath_bt")
|
||||
self.verticalLayout_3.addWidget(self.filepath_bt)
|
||||
self.save_bt = QtWidgets.QPushButton(self.layoutWidget2)
|
||||
self.save_bt.setObjectName("save_bt")
|
||||
self.verticalLayout_3.addWidget(self.save_bt)
|
||||
self.horizontalLayout_4.addWidget(self.splitter_3)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem1)
|
||||
self.verticalLayout_7.addWidget(self.groupBox_5)
|
||||
self.splitter = QtWidgets.QSplitter(image_Window)
|
||||
self.splitter.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.splitter.setObjectName("splitter")
|
||||
self.groupBox_3 = QtWidgets.QGroupBox(self.splitter)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_3.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_3.setSizePolicy(sizePolicy)
|
||||
self.groupBox_3.setMinimumSize(QtCore.QSize(0, 0))
|
||||
self.groupBox_3.setMaximumSize(QtCore.QSize(2000, 16777215))
|
||||
self.groupBox_3.setObjectName("groupBox_3")
|
||||
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.groupBox_3)
|
||||
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
||||
self.groupBox = QtWidgets.QGroupBox(self.groupBox_3)
|
||||
self.groupBox.setObjectName("groupBox")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.groupBox)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.image_glo = QtWidgets.QGridLayout()
|
||||
self.image_glo.setObjectName("image_glo")
|
||||
self.horizontalLayout.addLayout(self.image_glo)
|
||||
self.verticalLayout_4.addWidget(self.groupBox)
|
||||
self.statu_tb = QtWidgets.QTextBrowser(self.groupBox_3)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.statu_tb.sizePolicy().hasHeightForWidth())
|
||||
self.statu_tb.setSizePolicy(sizePolicy)
|
||||
self.statu_tb.setMaximumSize(QtCore.QSize(8777215, 100))
|
||||
self.statu_tb.setReadOnly(True)
|
||||
self.statu_tb.setObjectName("statu_tb")
|
||||
self.verticalLayout_4.addWidget(self.statu_tb)
|
||||
self.groupBox_4 = QtWidgets.QGroupBox(self.splitter)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_4.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_4.setSizePolicy(sizePolicy)
|
||||
self.groupBox_4.setObjectName("groupBox_4")
|
||||
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.groupBox_4)
|
||||
self.verticalLayout_5.setObjectName("verticalLayout_5")
|
||||
self.groupBox_2 = QtWidgets.QGroupBox(self.groupBox_4)
|
||||
self.groupBox_2.setObjectName("groupBox_2")
|
||||
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_2)
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
self.focus_glo = QtWidgets.QGridLayout()
|
||||
self.focus_glo.setObjectName("focus_glo")
|
||||
self.horizontalLayout_2.addLayout(self.focus_glo)
|
||||
self.verticalLayout_5.addWidget(self.groupBox_2)
|
||||
self.groupBox_6 = QtWidgets.QGroupBox(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_6.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_6.setSizePolicy(sizePolicy)
|
||||
self.groupBox_6.setObjectName("groupBox_6")
|
||||
self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.groupBox_6)
|
||||
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
|
||||
self.groupBox_7 = QtWidgets.QGroupBox(self.groupBox_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_7.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_7.setSizePolicy(sizePolicy)
|
||||
self.groupBox_7.setMaximumSize(QtCore.QSize(500, 500))
|
||||
self.groupBox_7.setObjectName("groupBox_7")
|
||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.groupBox_7)
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.verticalLayout_6 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_6.setObjectName("verticalLayout_6")
|
||||
self.label_3 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.verticalLayout_6.addWidget(self.label_3)
|
||||
self.focus_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.focus_bt.setObjectName("focus_bt")
|
||||
self.verticalLayout_6.addWidget(self.focus_bt)
|
||||
self.exposureTime_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.exposureTime_bt.setObjectName("exposureTime_bt")
|
||||
self.verticalLayout_6.addWidget(self.exposureTime_bt)
|
||||
self.label_5 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_5.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.verticalLayout_6.addWidget(self.label_5)
|
||||
self.wb_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.wb_bt.setObjectName("wb_bt")
|
||||
self.verticalLayout_6.addWidget(self.wb_bt)
|
||||
self.label_2 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.verticalLayout_6.addWidget(self.label_2)
|
||||
self.record_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.record_bt.setObjectName("record_bt")
|
||||
self.verticalLayout_6.addWidget(self.record_bt)
|
||||
self.horizontalLayout_3.addLayout(self.verticalLayout_6)
|
||||
self.verticalLayout_8 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_8.setObjectName("verticalLayout_8")
|
||||
self.framerate_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.framerate_le.setReadOnly(False)
|
||||
self.framerate_le.setObjectName("framerate_le")
|
||||
self.verticalLayout_8.addWidget(self.framerate_le)
|
||||
self.stop_focus_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.stop_focus_bt.setObjectName("stop_focus_bt")
|
||||
self.verticalLayout_8.addWidget(self.stop_focus_bt)
|
||||
self.exposureTime_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.exposureTime_le.setObjectName("exposureTime_le")
|
||||
self.verticalLayout_8.addWidget(self.exposureTime_le)
|
||||
self.gain_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.gain_le.setObjectName("gain_le")
|
||||
self.verticalLayout_8.addWidget(self.gain_le)
|
||||
self.dc_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.dc_bt.setObjectName("dc_bt")
|
||||
self.verticalLayout_8.addWidget(self.dc_bt)
|
||||
self.framenumber_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.framenumber_le.setObjectName("framenumber_le")
|
||||
self.verticalLayout_8.addWidget(self.framenumber_le)
|
||||
self.motor_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.motor_bt.setObjectName("motor_bt")
|
||||
self.verticalLayout_8.addWidget(self.motor_bt)
|
||||
self.stop_record_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.stop_record_bt.setObjectName("stop_record_bt")
|
||||
self.verticalLayout_8.addWidget(self.stop_record_bt)
|
||||
self.horizontalLayout_3.addLayout(self.verticalLayout_8)
|
||||
self.horizontalLayout_5.addWidget(self.groupBox_7)
|
||||
spacerItem2 = QtWidgets.QSpacerItem(261, 17, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_5.addItem(spacerItem2)
|
||||
self.verticalLayout_5.addWidget(self.groupBox_6)
|
||||
self.verticalLayout_7.addWidget(self.splitter)
|
||||
|
||||
self.retranslateUi(image_Window)
|
||||
QtCore.QMetaObject.connectSlotsByName(image_Window)
|
||||
|
||||
def retranslateUi(self, image_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
image_Window.setWindowTitle(_translate("image_Window", "影像窗口"))
|
||||
self.groupBox_5.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.label.setText(_translate("image_Window", "保存路径"))
|
||||
self.label_4.setText(_translate("image_Window", "文件名"))
|
||||
self.filepath_bt.setText(_translate("image_Window", "浏览"))
|
||||
self.save_bt.setText(_translate("image_Window", "保存"))
|
||||
self.groupBox_3.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox.setTitle(_translate("image_Window", "图像"))
|
||||
self.groupBox_4.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox_2.setTitle(_translate("image_Window", "光谱"))
|
||||
self.groupBox_6.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox_7.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.label_3.setText(_translate("image_Window", "帧率"))
|
||||
self.focus_bt.setText(_translate("image_Window", "调焦"))
|
||||
self.exposureTime_bt.setText(_translate("image_Window", "曝光"))
|
||||
self.label_5.setText(_translate("image_Window", "gain"))
|
||||
self.wb_bt.setText(_translate("image_Window", "白板"))
|
||||
self.label_2.setText(_translate("image_Window", "帧数"))
|
||||
self.record_bt.setText(_translate("image_Window", "采集"))
|
||||
self.stop_focus_bt.setText(_translate("image_Window", "停止调焦"))
|
||||
self.dc_bt.setText(_translate("image_Window", "暗电流"))
|
||||
self.motor_bt.setText(_translate("image_Window", "马达"))
|
||||
self.stop_record_bt.setText(_translate("image_Window", "停止采集"))
|
||||
377
record_system_v23/image_Window.ui
Normal file
377
record_system_v23/image_Window.ui
Normal file
@ -0,0 +1,377 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>image_Window</class>
|
||||
<widget class="QDialog" name="image_Window">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1181</width>
|
||||
<height>683</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="mouseTracking">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>影像窗口</string>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sizeGripEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="modal">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_5">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSplitter" name="splitter_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>文件名</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="filepath_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="filename_le"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QPushButton" name="filepath_bt">
|
||||
<property name="text">
|
||||
<string>浏览</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="save_bt">
|
||||
<property name="text">
|
||||
<string>保存</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSplitter" name="splitter">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>2000</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>图像</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="image_glo"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="statu_tb">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>8777215</width>
|
||||
<height>100</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>光谱</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="focus_glo"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_6">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_7">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>500</width>
|
||||
<height>500</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>帧率</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="focus_bt">
|
||||
<property name="text">
|
||||
<string>调焦</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="exposureTime_bt">
|
||||
<property name="text">
|
||||
<string>曝光</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>gain</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="wb_bt">
|
||||
<property name="text">
|
||||
<string>白板</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>帧数</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="record_bt">
|
||||
<property name="text">
|
||||
<string>采集</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="framerate_le">
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="stop_focus_bt">
|
||||
<property name="text">
|
||||
<string>停止调焦</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="exposureTime_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="gain_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="dc_bt">
|
||||
<property name="text">
|
||||
<string>暗电流</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="framenumber_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="motor_bt">
|
||||
<property name="text">
|
||||
<string>马达</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="stop_record_bt">
|
||||
<property name="text">
|
||||
<string>停止采集</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>261</width>
|
||||
<height>17</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
94
record_system_v23/spectral_Window.py
Normal file
94
record_system_v23/spectral_Window.py
Normal file
@ -0,0 +1,94 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'spectral_Window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_spectral_Window(object):
|
||||
def setupUi(self, spectral_Window):
|
||||
spectral_Window.setObjectName("spectral_Window")
|
||||
spectral_Window.resize(792, 523)
|
||||
self.label = QtWidgets.QLabel(spectral_Window)
|
||||
self.label.setGeometry(QtCore.QRect(54, 10, 51, 20))
|
||||
self.label.setObjectName("label")
|
||||
self.filepath_le = QtWidgets.QLineEdit(spectral_Window)
|
||||
self.filepath_le.setGeometry(QtCore.QRect(131, 10, 261, 21))
|
||||
self.filepath_le.setObjectName("filepath_le")
|
||||
self.label_2 = QtWidgets.QLabel(spectral_Window)
|
||||
self.label_2.setGeometry(QtCore.QRect(54, 40, 41, 20))
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.filename_le = QtWidgets.QLineEdit(spectral_Window)
|
||||
self.filename_le.setGeometry(QtCore.QRect(131, 40, 261, 21))
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.filepath_bt = QtWidgets.QPushButton(spectral_Window)
|
||||
self.filepath_bt.setGeometry(QtCore.QRect(401, 10, 71, 21))
|
||||
self.filepath_bt.setObjectName("filepath_bt")
|
||||
self.statu_tb = QtWidgets.QTextBrowser(spectral_Window)
|
||||
self.statu_tb.setGeometry(QtCore.QRect(611, 210, 161, 301))
|
||||
self.statu_tb.setObjectName("statu_tb")
|
||||
self.tabWidget = QtWidgets.QTabWidget(spectral_Window)
|
||||
self.tabWidget.setGeometry(QtCore.QRect(10, 70, 591, 441))
|
||||
self.tabWidget.setObjectName("tabWidget")
|
||||
self.tab = QtWidgets.QWidget()
|
||||
self.tab.setObjectName("tab")
|
||||
self.gridLayoutWidget = QtWidgets.QWidget(self.tab)
|
||||
self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, 581, 411))
|
||||
self.gridLayoutWidget.setObjectName("gridLayoutWidget")
|
||||
self.spe_glo = QtWidgets.QGridLayout(self.gridLayoutWidget)
|
||||
self.spe_glo.setContentsMargins(0, 0, 0, 0)
|
||||
self.spe_glo.setObjectName("spe_glo")
|
||||
self.tabWidget.addTab(self.tab, "")
|
||||
self.tab_2 = QtWidgets.QWidget()
|
||||
self.tab_2.setObjectName("tab_2")
|
||||
self.gridLayoutWidget_2 = QtWidgets.QWidget(self.tab_2)
|
||||
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(-1, -1, 581, 411))
|
||||
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
|
||||
self.align_glo = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
|
||||
self.align_glo.setContentsMargins(0, 0, 0, 0)
|
||||
self.align_glo.setObjectName("align_glo")
|
||||
self.tabWidget.addTab(self.tab_2, "")
|
||||
self.layoutWidget = QtWidgets.QWidget(spectral_Window)
|
||||
self.layoutWidget.setGeometry(QtCore.QRect(610, 90, 195, 135))
|
||||
self.layoutWidget.setObjectName("layoutWidget")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.layoutWidget)
|
||||
self.gridLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.align_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.align_bt.setObjectName("align_bt")
|
||||
self.gridLayout.addWidget(self.align_bt, 0, 0, 1, 1)
|
||||
self.stop_align_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.stop_align_bt.setObjectName("stop_align_bt")
|
||||
self.gridLayout.addWidget(self.stop_align_bt, 0, 1, 1, 1)
|
||||
self.wb_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.wb_bt.setObjectName("wb_bt")
|
||||
self.gridLayout.addWidget(self.wb_bt, 1, 0, 1, 2)
|
||||
self.dc_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.dc_bt.setObjectName("dc_bt")
|
||||
self.gridLayout.addWidget(self.dc_bt, 2, 0, 1, 2)
|
||||
self.record_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.record_bt.setObjectName("record_bt")
|
||||
self.gridLayout.addWidget(self.record_bt, 3, 0, 1, 2)
|
||||
|
||||
self.retranslateUi(spectral_Window)
|
||||
self.tabWidget.setCurrentIndex(0)
|
||||
QtCore.QMetaObject.connectSlotsByName(spectral_Window)
|
||||
|
||||
def retranslateUi(self, spectral_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
spectral_Window.setWindowTitle(_translate("spectral_Window", "光谱窗口"))
|
||||
self.label.setText(_translate("spectral_Window", "保存路径"))
|
||||
self.label_2.setText(_translate("spectral_Window", "文件名"))
|
||||
self.filepath_bt.setText(_translate("spectral_Window", "浏览"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("spectral_Window", "spe"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("spectral_Window", "align"))
|
||||
self.align_bt.setText(_translate("spectral_Window", "align"))
|
||||
self.stop_align_bt.setText(_translate("spectral_Window", "stop align"))
|
||||
self.wb_bt.setText(_translate("spectral_Window", "曝光/白板"))
|
||||
self.dc_bt.setText(_translate("spectral_Window", "暗电流"))
|
||||
self.record_bt.setText(_translate("spectral_Window", "采集"))
|
||||
180
record_system_v23/spectral_Window.ui
Normal file
180
record_system_v23/spectral_Window.ui
Normal file
@ -0,0 +1,180 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>spectral_Window</class>
|
||||
<widget class="QDialog" name="spectral_Window">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>792</width>
|
||||
<height>523</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>光谱窗口</string>
|
||||
</property>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>54</x>
|
||||
<y>10</y>
|
||||
<width>51</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="filepath_le">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>131</x>
|
||||
<y>10</y>
|
||||
<width>261</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>54</x>
|
||||
<y>40</y>
|
||||
<width>41</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>文件名</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="filename_le">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>131</x>
|
||||
<y>40</y>
|
||||
<width>261</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="filepath_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>401</x>
|
||||
<y>10</y>
|
||||
<width>71</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>浏览</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextBrowser" name="statu_tb">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>611</x>
|
||||
<y>210</y>
|
||||
<width>161</width>
|
||||
<height>301</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>70</y>
|
||||
<width>591</width>
|
||||
<height>441</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string>spe</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="gridLayoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>581</width>
|
||||
<height>411</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="spe_glo"/>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<attribute name="title">
|
||||
<string>align</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="gridLayoutWidget_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>-1</x>
|
||||
<y>-1</y>
|
||||
<width>581</width>
|
||||
<height>411</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="align_glo"/>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>610</x>
|
||||
<y>90</y>
|
||||
<width>195</width>
|
||||
<height>135</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="align_bt">
|
||||
<property name="text">
|
||||
<string>align</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="stop_align_bt">
|
||||
<property name="text">
|
||||
<string>stop align</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="wb_bt">
|
||||
<property name="text">
|
||||
<string>曝光/白板</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="dc_bt">
|
||||
<property name="text">
|
||||
<string>暗电流</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="record_bt">
|
||||
<property name="text">
|
||||
<string>采集</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
1828
record_system_v24/2record_system_v24.py
Normal file
1828
record_system_v24/2record_system_v24.py
Normal file
File diff suppressed because it is too large
Load Diff
75
record_system_v24/ArcusDevice.py
Normal file
75
record_system_v24/ArcusDevice.py
Normal file
@ -0,0 +1,75 @@
|
||||
"""
|
||||
Arcus controller python interface.
|
||||
Only works if one ARCUS device is connected.
|
||||
Including Arcus Configuration cables.
|
||||
Open ArcusDevice.py in Python IDE --> Run --> Enter Terminal Commands
|
||||
"""
|
||||
import threading
|
||||
import Arcus
|
||||
import copy
|
||||
import sys
|
||||
|
||||
class ArcusDevice(object):
|
||||
"""
|
||||
This is interface class to Arcus stepper controller
|
||||
@author Lukas Zubal
|
||||
@version 1.0
|
||||
"""
|
||||
def __init__(self):
|
||||
"""
|
||||
@brief Constructor
|
||||
@param self object instance
|
||||
"""
|
||||
self.device = Arcus.Arcus()
|
||||
if self.device.Connect() == 1:
|
||||
print ' '
|
||||
else:
|
||||
print "Cannot open stepper device on port "
|
||||
sys.exit()
|
||||
self.outputBuffer = " "
|
||||
self.lock = threading.Lock() # thread safety
|
||||
self.verbose = 0
|
||||
|
||||
def close(self):
|
||||
"""
|
||||
@brief Closes Arcus device connection
|
||||
@param self object instance
|
||||
@return bool Returns a 1 if successful
|
||||
"""
|
||||
self.lock.acquire()
|
||||
self.device.Close()
|
||||
self.lock.release()
|
||||
del self.device
|
||||
return 1
|
||||
|
||||
def write(self, data):
|
||||
"""
|
||||
@brief Command-response call to Arcus device
|
||||
@see Arcus controller manual for complete list of interactive commands
|
||||
@param self object instance
|
||||
@param data string containing interactive commands to arcus
|
||||
@return str Returns string containing response of controller
|
||||
"""
|
||||
self.lock.acquire()
|
||||
self.device.SendAndRecive(data, self.outputBuffer)
|
||||
resp = copy.deepcopy(self.outputBuffer[:])
|
||||
self.lock.release()
|
||||
resp = resp.split('\x00')[0]
|
||||
if self.verbose == 1:
|
||||
print resp
|
||||
return resp
|
||||
|
||||
arc = ArcusDevice()
|
||||
|
||||
arc.write('DN') # Send Terminal Command to return device name.
|
||||
# print "Connected to device: " + response # Notify user
|
||||
|
||||
for i in range(len(sys.argv)-1):
|
||||
response = arc.write(sys.argv[i+1]) # Process Command and save Controller Response
|
||||
while response != 'OK':
|
||||
response = arc.write(sys.argv[i+1])
|
||||
if sys.argv[i+1] == 'HSPD':
|
||||
print response
|
||||
|
||||
arc.close() # Close Device.
|
||||
del arc
|
||||
23
record_system_v24/corning_config.ini
Normal file
23
record_system_v24/corning_config.ini
Normal file
@ -0,0 +1,23 @@
|
||||
[bin]
|
||||
binning = 1
|
||||
start_column_binning_1 = 12
|
||||
end_column_binning_1 = 1376
|
||||
start_row_binning_1 = 1
|
||||
end_row_binning_1 = 300
|
||||
start_column_binning_2 = 13
|
||||
end_column_binning_2 = 695
|
||||
start_row_binning_2 = 1
|
||||
end_row_binning_2 = 150
|
||||
|
||||
[image_record_param]
|
||||
image_dir = D:/07 Itres
|
||||
default_image_name = test_image
|
||||
framerate = 60
|
||||
exposure_time = 16667
|
||||
gain = 0.0
|
||||
frame_number = 600
|
||||
|
||||
[spectral_record_param]
|
||||
spectral_dir = D:/demo data
|
||||
default_spectral_name = test_spectral
|
||||
|
||||
42
record_system_v24/delete.py
Normal file
42
record_system_v24/delete.py
Normal file
@ -0,0 +1,42 @@
|
||||
import os, subprocess, time, traceback
|
||||
|
||||
print('开始马达')
|
||||
try:
|
||||
# D:\software\Anaconda3\envs\py27_32\
|
||||
python2_command = r'python2.exe ' + os.path.dirname(__file__) + '/ArcusDevice.py' + ' CLR PX=0 EO=1 J+'
|
||||
print(python2_command)
|
||||
print(python2_command.split())
|
||||
process = subprocess.Popen(python2_command.split(), stdout=subprocess.PIPE)
|
||||
try:
|
||||
output, error = process.communicate(timeout=1)
|
||||
except subprocess.TimeoutExpired:
|
||||
print('有错1')
|
||||
process.kill()
|
||||
output, error = process.communicate()
|
||||
except:
|
||||
traceback.print_exc()
|
||||
print('有错2')
|
||||
pass
|
||||
|
||||
|
||||
print('转动5秒')
|
||||
time.sleep(5)
|
||||
|
||||
|
||||
print('返回马达')
|
||||
try:
|
||||
# D:\software\Anaconda3\envs\py27_32\
|
||||
# 打包:https://stackoverflow.com/questions/58995937/using-pyinstaller-to-convert-python3-and-python2-to-exe
|
||||
python2_command = r'python2.exe ' + os.path.dirname(__file__) + '/ArcusDevice.py' + ' CLR STOP X0'
|
||||
print(python2_command)
|
||||
process = subprocess.Popen(python2_command.split(), stdout=subprocess.PIPE)
|
||||
try:
|
||||
output, error = process.communicate(timeout=1)
|
||||
except subprocess.TimeoutExpired:
|
||||
print('有错3')
|
||||
process.kill()
|
||||
output, error = process.communicate()
|
||||
except:
|
||||
traceback.print_exc()
|
||||
print('有错4')
|
||||
pass
|
||||
0
record_system_v24/ui/__init__.py
Normal file
0
record_system_v24/ui/__init__.py
Normal file
48
record_system_v24/ui/arcus_control_ui.py
Normal file
48
record_system_v24/ui/arcus_control_ui.py
Normal file
@ -0,0 +1,48 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'arcus_control_ui.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_arcus_ui(object):
|
||||
def setupUi(self, arcus_ui):
|
||||
arcus_ui.setObjectName("arcus_ui")
|
||||
arcus_ui.resize(354, 171)
|
||||
self.centralwidget = QtWidgets.QWidget(arcus_ui)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.left_btn = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.left_btn.setGeometry(QtCore.QRect(100, 90, 61, 21))
|
||||
self.left_btn.setObjectName("left_btn")
|
||||
self.right_btn = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.right_btn.setGeometry(QtCore.QRect(170, 90, 61, 23))
|
||||
self.right_btn.setObjectName("right_btn")
|
||||
self.speed_lineEdit = QtWidgets.QLineEdit(self.centralwidget)
|
||||
self.speed_lineEdit.setGeometry(QtCore.QRect(101, 10, 131, 20))
|
||||
self.speed_lineEdit.setObjectName("speed_lineEdit")
|
||||
self.speed_ScrollBar = QtWidgets.QScrollBar(self.centralwidget)
|
||||
self.speed_ScrollBar.setGeometry(QtCore.QRect(100, 40, 131, 20))
|
||||
self.speed_ScrollBar.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.speed_ScrollBar.setObjectName("speed_ScrollBar")
|
||||
arcus_ui.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(arcus_ui)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 354, 23))
|
||||
self.menubar.setObjectName("menubar")
|
||||
arcus_ui.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(arcus_ui)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
arcus_ui.setStatusBar(self.statusbar)
|
||||
|
||||
self.retranslateUi(arcus_ui)
|
||||
QtCore.QMetaObject.connectSlotsByName(arcus_ui)
|
||||
|
||||
def retranslateUi(self, arcus_ui):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
arcus_ui.setWindowTitle(_translate("arcus_ui", "MainWindow"))
|
||||
self.left_btn.setText(_translate("arcus_ui", "左"))
|
||||
self.right_btn.setText(_translate("arcus_ui", "右"))
|
||||
81
record_system_v24/ui/arcus_control_ui.ui
Normal file
81
record_system_v24/ui/arcus_control_ui.ui
Normal file
@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>arcus_ui</class>
|
||||
<widget class="QMainWindow" name="arcus_ui">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>354</width>
|
||||
<height>171</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QPushButton" name="left_btn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>90</y>
|
||||
<width>61</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>左</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="right_btn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>170</x>
|
||||
<y>90</y>
|
||||
<width>61</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>右</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="speed_lineEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>101</x>
|
||||
<y>10</y>
|
||||
<width>131</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QScrollBar" name="speed_ScrollBar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>40</y>
|
||||
<width>131</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>354</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
47
record_system_v24/ui/enter_window.py
Normal file
47
record_system_v24/ui/enter_window.py
Normal file
@ -0,0 +1,47 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'enter_window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_enter_Window(object):
|
||||
def setupUi(self, enter_Window):
|
||||
enter_Window.setObjectName("enter_Window")
|
||||
enter_Window.resize(651, 474)
|
||||
self.centralwidget = QtWidgets.QWidget(enter_Window)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.image_mode_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.image_mode_bt.setGeometry(QtCore.QRect(200, 180, 111, 51))
|
||||
self.image_mode_bt.setObjectName("image_mode_bt")
|
||||
self.spectral_mode_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.spectral_mode_bt.setGeometry(QtCore.QRect(360, 180, 111, 51))
|
||||
self.spectral_mode_bt.setObjectName("spectral_mode_bt")
|
||||
self.camstatus_tb = QtWidgets.QTextBrowser(self.centralwidget)
|
||||
self.camstatus_tb.setGeometry(QtCore.QRect(200, 240, 271, 81))
|
||||
self.camstatus_tb.setObjectName("camstatus_tb")
|
||||
enter_Window.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(enter_Window)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 651, 26))
|
||||
self.menubar.setObjectName("menubar")
|
||||
enter_Window.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(enter_Window)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
enter_Window.setStatusBar(self.statusbar)
|
||||
self.actionwew_e = QtWidgets.QAction(enter_Window)
|
||||
self.actionwew_e.setObjectName("actionwew_e")
|
||||
|
||||
self.retranslateUi(enter_Window)
|
||||
QtCore.QMetaObject.connectSlotsByName(enter_Window)
|
||||
|
||||
def retranslateUi(self, enter_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
enter_Window.setWindowTitle(_translate("enter_Window", "主窗口"))
|
||||
self.image_mode_bt.setText(_translate("enter_Window", "影像模式"))
|
||||
self.spectral_mode_bt.setText(_translate("enter_Window", "光谱模式"))
|
||||
self.actionwew_e.setText(_translate("enter_Window", "wew e"))
|
||||
73
record_system_v24/ui/enter_window.ui
Normal file
73
record_system_v24/ui/enter_window.ui
Normal file
@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>enter_Window</class>
|
||||
<widget class="QMainWindow" name="enter_Window">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>474</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>主窗口</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QPushButton" name="image_mode_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>180</y>
|
||||
<width>111</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>影像模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="spectral_mode_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>360</x>
|
||||
<y>180</y>
|
||||
<width>111</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>光谱模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextBrowser" name="camstatus_tb">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>240</y>
|
||||
<width>271</width>
|
||||
<height>81</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
<action name="actionwew_e">
|
||||
<property name="text">
|
||||
<string>wew e</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
246
record_system_v24/ui/image_Window.py
Normal file
246
record_system_v24/ui/image_Window.py
Normal file
@ -0,0 +1,246 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'image_Window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_image_Window(object):
|
||||
def setupUi(self, image_Window):
|
||||
image_Window.setObjectName("image_Window")
|
||||
image_Window.setEnabled(True)
|
||||
image_Window.resize(1181, 683)
|
||||
image_Window.setMouseTracking(False)
|
||||
image_Window.setAutoFillBackground(False)
|
||||
image_Window.setSizeGripEnabled(False)
|
||||
image_Window.setModal(False)
|
||||
self.gridLayout = QtWidgets.QGridLayout(image_Window)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.groupBox_5 = QtWidgets.QGroupBox(image_Window)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_5.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_5.setSizePolicy(sizePolicy)
|
||||
self.groupBox_5.setObjectName("groupBox_5")
|
||||
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.groupBox_5)
|
||||
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
||||
spacerItem = QtWidgets.QSpacerItem(374, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem)
|
||||
self.splitter_2 = QtWidgets.QSplitter(self.groupBox_5)
|
||||
self.splitter_2.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.splitter_2.setObjectName("splitter_2")
|
||||
self.layoutWidget = QtWidgets.QWidget(self.splitter_2)
|
||||
self.layoutWidget.setObjectName("layoutWidget")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
|
||||
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.label = QtWidgets.QLabel(self.layoutWidget)
|
||||
self.label.setObjectName("label")
|
||||
self.verticalLayout.addWidget(self.label)
|
||||
self.label_4 = QtWidgets.QLabel(self.layoutWidget)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.verticalLayout.addWidget(self.label_4)
|
||||
self.layoutWidget1 = QtWidgets.QWidget(self.splitter_2)
|
||||
self.layoutWidget1.setObjectName("layoutWidget1")
|
||||
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget1)
|
||||
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_2.setObjectName("verticalLayout_2")
|
||||
self.filepath_le = QtWidgets.QLineEdit(self.layoutWidget1)
|
||||
self.filepath_le.setObjectName("filepath_le")
|
||||
self.verticalLayout_2.addWidget(self.filepath_le)
|
||||
self.filename_le = QtWidgets.QLineEdit(self.layoutWidget1)
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.verticalLayout_2.addWidget(self.filename_le)
|
||||
self.layoutWidget2 = QtWidgets.QWidget(self.splitter_2)
|
||||
self.layoutWidget2.setObjectName("layoutWidget2")
|
||||
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.layoutWidget2)
|
||||
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
||||
self.filepath_bt = QtWidgets.QPushButton(self.layoutWidget2)
|
||||
self.filepath_bt.setObjectName("filepath_bt")
|
||||
self.verticalLayout_3.addWidget(self.filepath_bt)
|
||||
self.save_bt = QtWidgets.QPushButton(self.layoutWidget2)
|
||||
self.save_bt.setObjectName("save_bt")
|
||||
self.verticalLayout_3.addWidget(self.save_bt)
|
||||
self.layoutWidget3 = QtWidgets.QWidget(self.splitter_2)
|
||||
self.layoutWidget3.setObjectName("layoutWidget3")
|
||||
self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.layoutWidget3)
|
||||
self.verticalLayout_7.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_7.setObjectName("verticalLayout_7")
|
||||
self.t_label = QtWidgets.QLabel(self.layoutWidget3)
|
||||
self.t_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.t_label.setObjectName("t_label")
|
||||
self.verticalLayout_7.addWidget(self.t_label)
|
||||
self.hum_label = QtWidgets.QLabel(self.layoutWidget3)
|
||||
self.hum_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.hum_label.setObjectName("hum_label")
|
||||
self.verticalLayout_7.addWidget(self.hum_label)
|
||||
self.horizontalLayout_4.addWidget(self.splitter_2)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(374, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem1)
|
||||
self.gridLayout.addWidget(self.groupBox_5, 0, 0, 1, 1)
|
||||
self.splitter = QtWidgets.QSplitter(image_Window)
|
||||
self.splitter.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.splitter.setObjectName("splitter")
|
||||
self.groupBox_3 = QtWidgets.QGroupBox(self.splitter)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_3.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_3.setSizePolicy(sizePolicy)
|
||||
self.groupBox_3.setMinimumSize(QtCore.QSize(0, 0))
|
||||
self.groupBox_3.setMaximumSize(QtCore.QSize(2000, 16777215))
|
||||
self.groupBox_3.setObjectName("groupBox_3")
|
||||
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.groupBox_3)
|
||||
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
||||
self.groupBox = QtWidgets.QGroupBox(self.groupBox_3)
|
||||
self.groupBox.setObjectName("groupBox")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.groupBox)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.image_glo = QtWidgets.QGridLayout()
|
||||
self.image_glo.setObjectName("image_glo")
|
||||
self.horizontalLayout.addLayout(self.image_glo)
|
||||
self.verticalLayout_4.addWidget(self.groupBox)
|
||||
self.statu_tb = QtWidgets.QTextBrowser(self.groupBox_3)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.statu_tb.sizePolicy().hasHeightForWidth())
|
||||
self.statu_tb.setSizePolicy(sizePolicy)
|
||||
self.statu_tb.setMaximumSize(QtCore.QSize(8777215, 100))
|
||||
self.statu_tb.setReadOnly(True)
|
||||
self.statu_tb.setObjectName("statu_tb")
|
||||
self.verticalLayout_4.addWidget(self.statu_tb)
|
||||
self.groupBox_4 = QtWidgets.QGroupBox(self.splitter)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_4.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_4.setSizePolicy(sizePolicy)
|
||||
self.groupBox_4.setObjectName("groupBox_4")
|
||||
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.groupBox_4)
|
||||
self.verticalLayout_5.setObjectName("verticalLayout_5")
|
||||
self.groupBox_2 = QtWidgets.QGroupBox(self.groupBox_4)
|
||||
self.groupBox_2.setObjectName("groupBox_2")
|
||||
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_2)
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
self.focus_glo = QtWidgets.QGridLayout()
|
||||
self.focus_glo.setObjectName("focus_glo")
|
||||
self.horizontalLayout_2.addLayout(self.focus_glo)
|
||||
self.verticalLayout_5.addWidget(self.groupBox_2)
|
||||
self.groupBox_6 = QtWidgets.QGroupBox(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_6.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_6.setSizePolicy(sizePolicy)
|
||||
self.groupBox_6.setObjectName("groupBox_6")
|
||||
self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.groupBox_6)
|
||||
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
|
||||
self.groupBox_7 = QtWidgets.QGroupBox(self.groupBox_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_7.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_7.setSizePolicy(sizePolicy)
|
||||
self.groupBox_7.setMaximumSize(QtCore.QSize(500, 500))
|
||||
self.groupBox_7.setObjectName("groupBox_7")
|
||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.groupBox_7)
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.verticalLayout_6 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_6.setObjectName("verticalLayout_6")
|
||||
self.label_3 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.verticalLayout_6.addWidget(self.label_3)
|
||||
self.image_mode_focus_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_focus_bt.setObjectName("image_mode_focus_bt")
|
||||
self.verticalLayout_6.addWidget(self.image_mode_focus_bt)
|
||||
self.image_mode_exposureTime_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_exposureTime_bt.setObjectName("image_mode_exposureTime_bt")
|
||||
self.verticalLayout_6.addWidget(self.image_mode_exposureTime_bt)
|
||||
self.label_5 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_5.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.verticalLayout_6.addWidget(self.label_5)
|
||||
self.image_mode_wb_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_wb_bt.setObjectName("image_mode_wb_bt")
|
||||
self.verticalLayout_6.addWidget(self.image_mode_wb_bt)
|
||||
self.label_2 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.verticalLayout_6.addWidget(self.label_2)
|
||||
self.image_mode_record_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_record_bt.setObjectName("image_mode_record_bt")
|
||||
self.verticalLayout_6.addWidget(self.image_mode_record_bt)
|
||||
self.horizontalLayout_3.addLayout(self.verticalLayout_6)
|
||||
self.verticalLayout_8 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_8.setObjectName("verticalLayout_8")
|
||||
self.framerate_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.framerate_le.setReadOnly(False)
|
||||
self.framerate_le.setObjectName("framerate_le")
|
||||
self.verticalLayout_8.addWidget(self.framerate_le)
|
||||
self.image_mode_stop_focus_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_stop_focus_bt.setObjectName("image_mode_stop_focus_bt")
|
||||
self.verticalLayout_8.addWidget(self.image_mode_stop_focus_bt)
|
||||
self.exposureTime_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.exposureTime_le.setObjectName("exposureTime_le")
|
||||
self.verticalLayout_8.addWidget(self.exposureTime_le)
|
||||
self.gain_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.gain_le.setObjectName("gain_le")
|
||||
self.verticalLayout_8.addWidget(self.gain_le)
|
||||
self.image_mode_dc_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_dc_bt.setObjectName("image_mode_dc_bt")
|
||||
self.verticalLayout_8.addWidget(self.image_mode_dc_bt)
|
||||
self.framenumber_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.framenumber_le.setObjectName("framenumber_le")
|
||||
self.verticalLayout_8.addWidget(self.framenumber_le)
|
||||
self.image_mode_motor_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_motor_bt.setObjectName("image_mode_motor_bt")
|
||||
self.verticalLayout_8.addWidget(self.image_mode_motor_bt)
|
||||
self.image_mode_stop_record_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_stop_record_bt.setObjectName("image_mode_stop_record_bt")
|
||||
self.verticalLayout_8.addWidget(self.image_mode_stop_record_bt)
|
||||
self.horizontalLayout_3.addLayout(self.verticalLayout_8)
|
||||
self.horizontalLayout_5.addWidget(self.groupBox_7)
|
||||
spacerItem2 = QtWidgets.QSpacerItem(261, 17, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_5.addItem(spacerItem2)
|
||||
self.verticalLayout_5.addWidget(self.groupBox_6)
|
||||
self.gridLayout.addWidget(self.splitter, 1, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(image_Window)
|
||||
QtCore.QMetaObject.connectSlotsByName(image_Window)
|
||||
|
||||
def retranslateUi(self, image_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
image_Window.setWindowTitle(_translate("image_Window", "影像窗口"))
|
||||
self.groupBox_5.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.label.setText(_translate("image_Window", "保存路径"))
|
||||
self.label_4.setText(_translate("image_Window", "文件名"))
|
||||
self.filepath_bt.setText(_translate("image_Window", "浏览"))
|
||||
self.save_bt.setText(_translate("image_Window", "保存"))
|
||||
self.t_label.setText(_translate("image_Window", "温度:无数据"))
|
||||
self.hum_label.setText(_translate("image_Window", "湿度:无数据"))
|
||||
self.groupBox_3.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox.setTitle(_translate("image_Window", "图像"))
|
||||
self.groupBox_4.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox_2.setTitle(_translate("image_Window", "光谱"))
|
||||
self.groupBox_6.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox_7.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.label_3.setText(_translate("image_Window", "帧率"))
|
||||
self.image_mode_focus_bt.setText(_translate("image_Window", "调焦"))
|
||||
self.image_mode_exposureTime_bt.setText(_translate("image_Window", "曝光"))
|
||||
self.label_5.setText(_translate("image_Window", "gain"))
|
||||
self.image_mode_wb_bt.setText(_translate("image_Window", "白板"))
|
||||
self.label_2.setText(_translate("image_Window", "帧数"))
|
||||
self.image_mode_record_bt.setText(_translate("image_Window", "采集"))
|
||||
self.image_mode_stop_focus_bt.setText(_translate("image_Window", "停止调焦"))
|
||||
self.image_mode_dc_bt.setText(_translate("image_Window", "暗电流"))
|
||||
self.image_mode_motor_bt.setText(_translate("image_Window", "马达"))
|
||||
self.image_mode_stop_record_bt.setText(_translate("image_Window", "停止采集"))
|
||||
405
record_system_v24/ui/image_Window.ui
Normal file
405
record_system_v24/ui/image_Window.ui
Normal file
@ -0,0 +1,405 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>image_Window</class>
|
||||
<widget class="QDialog" name="image_Window">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1179</width>
|
||||
<height>683</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="mouseTracking">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>影像窗口</string>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sizeGripEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="modal">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_5">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QLabel" name="hum_label">
|
||||
<property name="text">
|
||||
<string>湿度:无数据</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>374</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSplitter" name="splitter_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>文件名</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="filepath_le">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="filename_le"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QPushButton" name="filepath_bt">
|
||||
<property name="text">
|
||||
<string>浏览</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="save_bt">
|
||||
<property name="text">
|
||||
<string>保存</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
<item>
|
||||
<widget class="QLabel" name="t_label">
|
||||
<property name="text">
|
||||
<string>温度:无数据</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>374</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QSplitter" name="splitter">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>2000</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>图像</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="image_glo"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="statu_tb">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>8777215</width>
|
||||
<height>100</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>光谱</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="focus_glo"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_6">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_7">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>500</width>
|
||||
<height>500</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>帧率</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_focus_bt">
|
||||
<property name="text">
|
||||
<string>调焦</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_exposureTime_bt">
|
||||
<property name="text">
|
||||
<string>曝光</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>gain</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_wb_bt">
|
||||
<property name="text">
|
||||
<string>白板</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>帧数</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_record_bt">
|
||||
<property name="text">
|
||||
<string>采集</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="framerate_le">
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_stop_focus_bt">
|
||||
<property name="text">
|
||||
<string>停止调焦</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="exposureTime_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="gain_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_dc_bt">
|
||||
<property name="text">
|
||||
<string>暗电流</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="framenumber_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_motor_bt">
|
||||
<property name="text">
|
||||
<string>马达</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_stop_record_bt">
|
||||
<property name="text">
|
||||
<string>停止采集</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>261</width>
|
||||
<height>17</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
104
record_system_v24/ui/spectral_Window.py
Normal file
104
record_system_v24/ui/spectral_Window.py
Normal file
@ -0,0 +1,104 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'spectral_Window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_spectral_Window(object):
|
||||
def setupUi(self, spectral_Window):
|
||||
spectral_Window.setObjectName("spectral_Window")
|
||||
spectral_Window.resize(820, 545)
|
||||
self.label = QtWidgets.QLabel(spectral_Window)
|
||||
self.label.setGeometry(QtCore.QRect(54, 10, 51, 20))
|
||||
self.label.setObjectName("label")
|
||||
self.filepath_le = QtWidgets.QLineEdit(spectral_Window)
|
||||
self.filepath_le.setGeometry(QtCore.QRect(131, 10, 261, 21))
|
||||
self.filepath_le.setObjectName("filepath_le")
|
||||
self.label_2 = QtWidgets.QLabel(spectral_Window)
|
||||
self.label_2.setGeometry(QtCore.QRect(54, 40, 41, 20))
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.filename_le = QtWidgets.QLineEdit(spectral_Window)
|
||||
self.filename_le.setGeometry(QtCore.QRect(131, 40, 261, 21))
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.filepath_bt = QtWidgets.QPushButton(spectral_Window)
|
||||
self.filepath_bt.setGeometry(QtCore.QRect(401, 10, 71, 21))
|
||||
self.filepath_bt.setObjectName("filepath_bt")
|
||||
self.statu_tb = QtWidgets.QTextBrowser(spectral_Window)
|
||||
self.statu_tb.setGeometry(QtCore.QRect(620, 240, 161, 301))
|
||||
self.statu_tb.setObjectName("statu_tb")
|
||||
self.tabWidget = QtWidgets.QTabWidget(spectral_Window)
|
||||
self.tabWidget.setGeometry(QtCore.QRect(10, 70, 591, 441))
|
||||
self.tabWidget.setObjectName("tabWidget")
|
||||
self.tab = QtWidgets.QWidget()
|
||||
self.tab.setObjectName("tab")
|
||||
self.gridLayoutWidget = QtWidgets.QWidget(self.tab)
|
||||
self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, 581, 411))
|
||||
self.gridLayoutWidget.setObjectName("gridLayoutWidget")
|
||||
self.spe_glo = QtWidgets.QGridLayout(self.gridLayoutWidget)
|
||||
self.spe_glo.setContentsMargins(0, 0, 0, 0)
|
||||
self.spe_glo.setObjectName("spe_glo")
|
||||
self.tabWidget.addTab(self.tab, "")
|
||||
self.tab_2 = QtWidgets.QWidget()
|
||||
self.tab_2.setObjectName("tab_2")
|
||||
self.gridLayoutWidget_2 = QtWidgets.QWidget(self.tab_2)
|
||||
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(-1, -1, 581, 411))
|
||||
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
|
||||
self.align_glo = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
|
||||
self.align_glo.setContentsMargins(0, 0, 0, 0)
|
||||
self.align_glo.setObjectName("align_glo")
|
||||
self.tabWidget.addTab(self.tab_2, "")
|
||||
self.layoutWidget = QtWidgets.QWidget(spectral_Window)
|
||||
self.layoutWidget.setGeometry(QtCore.QRect(610, 90, 195, 135))
|
||||
self.layoutWidget.setObjectName("layoutWidget")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.layoutWidget)
|
||||
self.gridLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.spectral_mode_align_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.spectral_mode_align_bt.setObjectName("spectral_mode_align_bt")
|
||||
self.gridLayout.addWidget(self.spectral_mode_align_bt, 0, 0, 1, 1)
|
||||
self.spectral_mode_stop_align_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.spectral_mode_stop_align_bt.setObjectName("spectral_mode_stop_align_bt")
|
||||
self.gridLayout.addWidget(self.spectral_mode_stop_align_bt, 0, 1, 1, 1)
|
||||
self.spectral_mode_wb_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.spectral_mode_wb_bt.setObjectName("spectral_mode_wb_bt")
|
||||
self.gridLayout.addWidget(self.spectral_mode_wb_bt, 1, 0, 1, 2)
|
||||
self.spectral_mode_dc_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.spectral_mode_dc_bt.setObjectName("spectral_mode_dc_bt")
|
||||
self.gridLayout.addWidget(self.spectral_mode_dc_bt, 2, 0, 1, 2)
|
||||
self.spectral_mode_record_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.spectral_mode_record_bt.setObjectName("spectral_mode_record_bt")
|
||||
self.gridLayout.addWidget(self.spectral_mode_record_bt, 3, 0, 1, 2)
|
||||
self.t_label = QtWidgets.QLabel(spectral_Window)
|
||||
self.t_label.setGeometry(QtCore.QRect(490, 11, 78, 23))
|
||||
self.t_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.t_label.setObjectName("t_label")
|
||||
self.hum_label = QtWidgets.QLabel(spectral_Window)
|
||||
self.hum_label.setGeometry(QtCore.QRect(490, 40, 78, 23))
|
||||
self.hum_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.hum_label.setObjectName("hum_label")
|
||||
|
||||
self.retranslateUi(spectral_Window)
|
||||
self.tabWidget.setCurrentIndex(0)
|
||||
QtCore.QMetaObject.connectSlotsByName(spectral_Window)
|
||||
|
||||
def retranslateUi(self, spectral_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
spectral_Window.setWindowTitle(_translate("spectral_Window", "光谱窗口"))
|
||||
self.label.setText(_translate("spectral_Window", "保存路径"))
|
||||
self.label_2.setText(_translate("spectral_Window", "文件名"))
|
||||
self.filepath_bt.setText(_translate("spectral_Window", "浏览"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("spectral_Window", "spe"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("spectral_Window", "align"))
|
||||
self.spectral_mode_align_bt.setText(_translate("spectral_Window", "align"))
|
||||
self.spectral_mode_stop_align_bt.setText(_translate("spectral_Window", "stop align"))
|
||||
self.spectral_mode_wb_bt.setText(_translate("spectral_Window", "曝光/白板"))
|
||||
self.spectral_mode_dc_bt.setText(_translate("spectral_Window", "暗电流"))
|
||||
self.spectral_mode_record_bt.setText(_translate("spectral_Window", "采集"))
|
||||
self.t_label.setText(_translate("spectral_Window", "温度:无数据"))
|
||||
self.hum_label.setText(_translate("spectral_Window", "湿度:无数据"))
|
||||
212
record_system_v24/ui/spectral_Window.ui
Normal file
212
record_system_v24/ui/spectral_Window.ui
Normal file
@ -0,0 +1,212 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>spectral_Window</class>
|
||||
<widget class="QDialog" name="spectral_Window">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>820</width>
|
||||
<height>545</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>光谱窗口</string>
|
||||
</property>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>54</x>
|
||||
<y>10</y>
|
||||
<width>51</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="filepath_le">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>131</x>
|
||||
<y>10</y>
|
||||
<width>261</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>54</x>
|
||||
<y>40</y>
|
||||
<width>41</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>文件名</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="filename_le">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>131</x>
|
||||
<y>40</y>
|
||||
<width>261</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="filepath_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>401</x>
|
||||
<y>10</y>
|
||||
<width>71</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>浏览</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextBrowser" name="statu_tb">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>620</x>
|
||||
<y>240</y>
|
||||
<width>161</width>
|
||||
<height>301</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>70</y>
|
||||
<width>591</width>
|
||||
<height>441</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string>spe</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="gridLayoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>581</width>
|
||||
<height>411</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="spe_glo"/>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<attribute name="title">
|
||||
<string>align</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="gridLayoutWidget_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>-1</x>
|
||||
<y>-1</y>
|
||||
<width>581</width>
|
||||
<height>411</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="align_glo"/>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>610</x>
|
||||
<y>90</y>
|
||||
<width>195</width>
|
||||
<height>135</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="spectral_mode_align_bt">
|
||||
<property name="text">
|
||||
<string>align</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="spectral_mode_stop_align_bt">
|
||||
<property name="text">
|
||||
<string>stop align</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="spectral_mode_wb_bt">
|
||||
<property name="text">
|
||||
<string>曝光/白板</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="spectral_mode_dc_bt">
|
||||
<property name="text">
|
||||
<string>暗电流</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="spectral_mode_record_bt">
|
||||
<property name="text">
|
||||
<string>采集</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QLabel" name="t_label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>490</x>
|
||||
<y>11</y>
|
||||
<width>78</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>温度:无数据</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="hum_label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>490</x>
|
||||
<y>40</y>
|
||||
<width>78</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>湿度:无数据</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
1801
record_system_v25/2record_system_v25.py
Normal file
1801
record_system_v25/2record_system_v25.py
Normal file
File diff suppressed because it is too large
Load Diff
3
record_system_v25/delete.py
Normal file
3
record_system_v25/delete.py
Normal file
@ -0,0 +1,3 @@
|
||||
from record_system_v25.library.functions import get_path
|
||||
|
||||
print(get_path())
|
||||
23
record_system_v25/log/corning_config.ini
Normal file
23
record_system_v25/log/corning_config.ini
Normal file
@ -0,0 +1,23 @@
|
||||
[bin]
|
||||
binning = 1
|
||||
start_column_binning_1 = 12
|
||||
end_column_binning_1 = 1376
|
||||
start_row_binning_1 = 1
|
||||
end_row_binning_1 = 301
|
||||
start_column_binning_2 = 13
|
||||
end_column_binning_2 = 695
|
||||
start_row_binning_2 = 1
|
||||
end_row_binning_2 = 150
|
||||
|
||||
[image_record_param]
|
||||
image_dir = D:/delete
|
||||
default_image_name = tangdfg
|
||||
framerate = 30
|
||||
exposure_time = 199
|
||||
gain = 0
|
||||
frame_number = 10
|
||||
|
||||
[spectral_record_param]
|
||||
spectral_dir = D:/py27_program/arcus
|
||||
default_spectral_name = 555
|
||||
|
||||
0
record_system_v25/ui/__init__.py
Normal file
0
record_system_v25/ui/__init__.py
Normal file
48
record_system_v25/ui/arcus_control_ui.py
Normal file
48
record_system_v25/ui/arcus_control_ui.py
Normal file
@ -0,0 +1,48 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'arcus_control_ui.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_arcus_ui(object):
|
||||
def setupUi(self, arcus_ui):
|
||||
arcus_ui.setObjectName("arcus_ui")
|
||||
arcus_ui.resize(354, 171)
|
||||
self.centralwidget = QtWidgets.QWidget(arcus_ui)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.left_btn = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.left_btn.setGeometry(QtCore.QRect(100, 90, 61, 21))
|
||||
self.left_btn.setObjectName("left_btn")
|
||||
self.right_btn = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.right_btn.setGeometry(QtCore.QRect(170, 90, 61, 23))
|
||||
self.right_btn.setObjectName("right_btn")
|
||||
self.speed_lineEdit = QtWidgets.QLineEdit(self.centralwidget)
|
||||
self.speed_lineEdit.setGeometry(QtCore.QRect(101, 10, 131, 20))
|
||||
self.speed_lineEdit.setObjectName("speed_lineEdit")
|
||||
self.speed_ScrollBar = QtWidgets.QScrollBar(self.centralwidget)
|
||||
self.speed_ScrollBar.setGeometry(QtCore.QRect(100, 40, 131, 20))
|
||||
self.speed_ScrollBar.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.speed_ScrollBar.setObjectName("speed_ScrollBar")
|
||||
arcus_ui.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(arcus_ui)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 354, 23))
|
||||
self.menubar.setObjectName("menubar")
|
||||
arcus_ui.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(arcus_ui)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
arcus_ui.setStatusBar(self.statusbar)
|
||||
|
||||
self.retranslateUi(arcus_ui)
|
||||
QtCore.QMetaObject.connectSlotsByName(arcus_ui)
|
||||
|
||||
def retranslateUi(self, arcus_ui):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
arcus_ui.setWindowTitle(_translate("arcus_ui", "MainWindow"))
|
||||
self.left_btn.setText(_translate("arcus_ui", "左"))
|
||||
self.right_btn.setText(_translate("arcus_ui", "右"))
|
||||
81
record_system_v25/ui/arcus_control_ui.ui
Normal file
81
record_system_v25/ui/arcus_control_ui.ui
Normal file
@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>arcus_ui</class>
|
||||
<widget class="QMainWindow" name="arcus_ui">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>354</width>
|
||||
<height>171</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QPushButton" name="left_btn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>90</y>
|
||||
<width>61</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>左</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="right_btn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>170</x>
|
||||
<y>90</y>
|
||||
<width>61</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>右</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="speed_lineEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>101</x>
|
||||
<y>10</y>
|
||||
<width>131</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QScrollBar" name="speed_ScrollBar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>40</y>
|
||||
<width>131</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>354</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
47
record_system_v25/ui/enter_window.py
Normal file
47
record_system_v25/ui/enter_window.py
Normal file
@ -0,0 +1,47 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'enter_window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_enter_Window(object):
|
||||
def setupUi(self, enter_Window):
|
||||
enter_Window.setObjectName("enter_Window")
|
||||
enter_Window.resize(651, 474)
|
||||
self.centralwidget = QtWidgets.QWidget(enter_Window)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.image_mode_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.image_mode_bt.setGeometry(QtCore.QRect(200, 180, 111, 51))
|
||||
self.image_mode_bt.setObjectName("image_mode_bt")
|
||||
self.spectral_mode_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.spectral_mode_bt.setGeometry(QtCore.QRect(360, 180, 111, 51))
|
||||
self.spectral_mode_bt.setObjectName("spectral_mode_bt")
|
||||
self.camstatus_tb = QtWidgets.QTextBrowser(self.centralwidget)
|
||||
self.camstatus_tb.setGeometry(QtCore.QRect(200, 240, 271, 81))
|
||||
self.camstatus_tb.setObjectName("camstatus_tb")
|
||||
enter_Window.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(enter_Window)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 651, 26))
|
||||
self.menubar.setObjectName("menubar")
|
||||
enter_Window.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(enter_Window)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
enter_Window.setStatusBar(self.statusbar)
|
||||
self.actionwew_e = QtWidgets.QAction(enter_Window)
|
||||
self.actionwew_e.setObjectName("actionwew_e")
|
||||
|
||||
self.retranslateUi(enter_Window)
|
||||
QtCore.QMetaObject.connectSlotsByName(enter_Window)
|
||||
|
||||
def retranslateUi(self, enter_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
enter_Window.setWindowTitle(_translate("enter_Window", "主窗口"))
|
||||
self.image_mode_bt.setText(_translate("enter_Window", "影像模式"))
|
||||
self.spectral_mode_bt.setText(_translate("enter_Window", "光谱模式"))
|
||||
self.actionwew_e.setText(_translate("enter_Window", "wew e"))
|
||||
73
record_system_v25/ui/enter_window.ui
Normal file
73
record_system_v25/ui/enter_window.ui
Normal file
@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>enter_Window</class>
|
||||
<widget class="QMainWindow" name="enter_Window">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>474</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>主窗口</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QPushButton" name="image_mode_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>180</y>
|
||||
<width>111</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>影像模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="spectral_mode_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>360</x>
|
||||
<y>180</y>
|
||||
<width>111</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>光谱模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextBrowser" name="camstatus_tb">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>240</y>
|
||||
<width>271</width>
|
||||
<height>81</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
<action name="actionwew_e">
|
||||
<property name="text">
|
||||
<string>wew e</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
268
record_system_v25/ui/image_Window.py
Normal file
268
record_system_v25/ui/image_Window.py
Normal file
@ -0,0 +1,268 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'image_Window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_image_Window(object):
|
||||
def setupUi(self, image_Window):
|
||||
image_Window.setObjectName("image_Window")
|
||||
image_Window.setEnabled(True)
|
||||
image_Window.resize(1179, 683)
|
||||
image_Window.setMouseTracking(False)
|
||||
image_Window.setFocusPolicy(QtCore.Qt.NoFocus)
|
||||
image_Window.setAutoFillBackground(False)
|
||||
image_Window.setSizeGripEnabled(False)
|
||||
image_Window.setModal(False)
|
||||
self.gridLayout = QtWidgets.QGridLayout(image_Window)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.groupBox_5 = QtWidgets.QGroupBox(image_Window)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_5.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_5.setSizePolicy(sizePolicy)
|
||||
self.groupBox_5.setObjectName("groupBox_5")
|
||||
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.groupBox_5)
|
||||
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
||||
self.hum_label = QtWidgets.QLabel(self.groupBox_5)
|
||||
self.hum_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.hum_label.setObjectName("hum_label")
|
||||
self.horizontalLayout_4.addWidget(self.hum_label)
|
||||
spacerItem = QtWidgets.QSpacerItem(374, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem)
|
||||
self.splitter_2 = QtWidgets.QSplitter(self.groupBox_5)
|
||||
self.splitter_2.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.splitter_2.setObjectName("splitter_2")
|
||||
self.layoutWidget = QtWidgets.QWidget(self.splitter_2)
|
||||
self.layoutWidget.setObjectName("layoutWidget")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
|
||||
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.label = QtWidgets.QLabel(self.layoutWidget)
|
||||
self.label.setObjectName("label")
|
||||
self.verticalLayout.addWidget(self.label)
|
||||
self.label_4 = QtWidgets.QLabel(self.layoutWidget)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.verticalLayout.addWidget(self.label_4)
|
||||
self.layoutWidget1 = QtWidgets.QWidget(self.splitter_2)
|
||||
self.layoutWidget1.setObjectName("layoutWidget1")
|
||||
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget1)
|
||||
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_2.setObjectName("verticalLayout_2")
|
||||
self.filepath_le = QtWidgets.QLineEdit(self.layoutWidget1)
|
||||
self.filepath_le.setReadOnly(True)
|
||||
self.filepath_le.setObjectName("filepath_le")
|
||||
self.verticalLayout_2.addWidget(self.filepath_le)
|
||||
self.filename_le = QtWidgets.QLineEdit(self.layoutWidget1)
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.verticalLayout_2.addWidget(self.filename_le)
|
||||
self.layoutWidget2 = QtWidgets.QWidget(self.splitter_2)
|
||||
self.layoutWidget2.setObjectName("layoutWidget2")
|
||||
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.layoutWidget2)
|
||||
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
||||
self.filepath_bt = QtWidgets.QPushButton(self.layoutWidget2)
|
||||
self.filepath_bt.setFocusPolicy(QtCore.Qt.ClickFocus)
|
||||
self.filepath_bt.setAutoDefault(False)
|
||||
self.filepath_bt.setObjectName("filepath_bt")
|
||||
self.verticalLayout_3.addWidget(self.filepath_bt)
|
||||
self.save_bt = QtWidgets.QPushButton(self.layoutWidget2)
|
||||
self.save_bt.setFocusPolicy(QtCore.Qt.ClickFocus)
|
||||
self.save_bt.setAutoDefault(False)
|
||||
self.save_bt.setObjectName("save_bt")
|
||||
self.verticalLayout_3.addWidget(self.save_bt)
|
||||
self.layoutWidget3 = QtWidgets.QWidget(self.splitter_2)
|
||||
self.layoutWidget3.setObjectName("layoutWidget3")
|
||||
self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.layoutWidget3)
|
||||
self.verticalLayout_7.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_7.setObjectName("verticalLayout_7")
|
||||
self.t_label = QtWidgets.QLabel(self.layoutWidget3)
|
||||
self.t_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.t_label.setObjectName("t_label")
|
||||
self.verticalLayout_7.addWidget(self.t_label)
|
||||
self.horizontalLayout_4.addWidget(self.splitter_2)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(374, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem1)
|
||||
self.gridLayout.addWidget(self.groupBox_5, 0, 0, 1, 1)
|
||||
self.splitter = QtWidgets.QSplitter(image_Window)
|
||||
self.splitter.setOrientation(QtCore.Qt.Horizontal)
|
||||
self.splitter.setObjectName("splitter")
|
||||
self.groupBox_3 = QtWidgets.QGroupBox(self.splitter)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_3.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_3.setSizePolicy(sizePolicy)
|
||||
self.groupBox_3.setMinimumSize(QtCore.QSize(0, 0))
|
||||
self.groupBox_3.setMaximumSize(QtCore.QSize(2000, 16777215))
|
||||
self.groupBox_3.setObjectName("groupBox_3")
|
||||
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.groupBox_3)
|
||||
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
||||
self.groupBox = QtWidgets.QGroupBox(self.groupBox_3)
|
||||
self.groupBox.setObjectName("groupBox")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.groupBox)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.image_glo = QtWidgets.QGridLayout()
|
||||
self.image_glo.setObjectName("image_glo")
|
||||
self.horizontalLayout.addLayout(self.image_glo)
|
||||
self.verticalLayout_4.addWidget(self.groupBox)
|
||||
self.statu_tb = QtWidgets.QTextBrowser(self.groupBox_3)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.statu_tb.sizePolicy().hasHeightForWidth())
|
||||
self.statu_tb.setSizePolicy(sizePolicy)
|
||||
self.statu_tb.setMaximumSize(QtCore.QSize(8777215, 100))
|
||||
self.statu_tb.setReadOnly(True)
|
||||
self.statu_tb.setObjectName("statu_tb")
|
||||
self.verticalLayout_4.addWidget(self.statu_tb)
|
||||
self.groupBox_4 = QtWidgets.QGroupBox(self.splitter)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_4.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_4.setSizePolicy(sizePolicy)
|
||||
self.groupBox_4.setObjectName("groupBox_4")
|
||||
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.groupBox_4)
|
||||
self.verticalLayout_5.setObjectName("verticalLayout_5")
|
||||
self.groupBox_2 = QtWidgets.QGroupBox(self.groupBox_4)
|
||||
self.groupBox_2.setObjectName("groupBox_2")
|
||||
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_2)
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
self.focus_glo = QtWidgets.QGridLayout()
|
||||
self.focus_glo.setObjectName("focus_glo")
|
||||
self.horizontalLayout_2.addLayout(self.focus_glo)
|
||||
self.verticalLayout_5.addWidget(self.groupBox_2)
|
||||
self.groupBox_6 = QtWidgets.QGroupBox(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_6.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_6.setSizePolicy(sizePolicy)
|
||||
self.groupBox_6.setObjectName("groupBox_6")
|
||||
self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.groupBox_6)
|
||||
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
|
||||
self.groupBox_7 = QtWidgets.QGroupBox(self.groupBox_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_7.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_7.setSizePolicy(sizePolicy)
|
||||
self.groupBox_7.setMaximumSize(QtCore.QSize(500, 500))
|
||||
self.groupBox_7.setObjectName("groupBox_7")
|
||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.groupBox_7)
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.verticalLayout_6 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_6.setObjectName("verticalLayout_6")
|
||||
self.label_3 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.verticalLayout_6.addWidget(self.label_3)
|
||||
self.image_mode_focus_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_focus_bt.setFocusPolicy(QtCore.Qt.ClickFocus)
|
||||
self.image_mode_focus_bt.setAutoDefault(False)
|
||||
self.image_mode_focus_bt.setObjectName("image_mode_focus_bt")
|
||||
self.verticalLayout_6.addWidget(self.image_mode_focus_bt)
|
||||
self.image_mode_exposureTime_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_exposureTime_bt.setFocusPolicy(QtCore.Qt.ClickFocus)
|
||||
self.image_mode_exposureTime_bt.setAutoDefault(False)
|
||||
self.image_mode_exposureTime_bt.setObjectName("image_mode_exposureTime_bt")
|
||||
self.verticalLayout_6.addWidget(self.image_mode_exposureTime_bt)
|
||||
self.label_5 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_5.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.verticalLayout_6.addWidget(self.label_5)
|
||||
self.image_mode_wb_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_wb_bt.setFocusPolicy(QtCore.Qt.ClickFocus)
|
||||
self.image_mode_wb_bt.setAutoDefault(False)
|
||||
self.image_mode_wb_bt.setObjectName("image_mode_wb_bt")
|
||||
self.verticalLayout_6.addWidget(self.image_mode_wb_bt)
|
||||
self.label_2 = QtWidgets.QLabel(self.groupBox_7)
|
||||
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.verticalLayout_6.addWidget(self.label_2)
|
||||
self.image_mode_record_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_record_bt.setFocusPolicy(QtCore.Qt.ClickFocus)
|
||||
self.image_mode_record_bt.setAutoDefault(False)
|
||||
self.image_mode_record_bt.setObjectName("image_mode_record_bt")
|
||||
self.verticalLayout_6.addWidget(self.image_mode_record_bt)
|
||||
self.horizontalLayout_3.addLayout(self.verticalLayout_6)
|
||||
self.verticalLayout_8 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_8.setObjectName("verticalLayout_8")
|
||||
self.framerate_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.framerate_le.setReadOnly(False)
|
||||
self.framerate_le.setObjectName("framerate_le")
|
||||
self.verticalLayout_8.addWidget(self.framerate_le)
|
||||
self.image_mode_stop_focus_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_stop_focus_bt.setFocusPolicy(QtCore.Qt.ClickFocus)
|
||||
self.image_mode_stop_focus_bt.setAutoDefault(False)
|
||||
self.image_mode_stop_focus_bt.setObjectName("image_mode_stop_focus_bt")
|
||||
self.verticalLayout_8.addWidget(self.image_mode_stop_focus_bt)
|
||||
self.exposure_time_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.exposure_time_le.setObjectName("exposure_time_le")
|
||||
self.verticalLayout_8.addWidget(self.exposure_time_le)
|
||||
self.gain_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.gain_le.setObjectName("gain_le")
|
||||
self.verticalLayout_8.addWidget(self.gain_le)
|
||||
self.image_mode_dc_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_dc_bt.setFocusPolicy(QtCore.Qt.ClickFocus)
|
||||
self.image_mode_dc_bt.setAutoDefault(False)
|
||||
self.image_mode_dc_bt.setObjectName("image_mode_dc_bt")
|
||||
self.verticalLayout_8.addWidget(self.image_mode_dc_bt)
|
||||
self.framenumber_le = QtWidgets.QLineEdit(self.groupBox_7)
|
||||
self.framenumber_le.setObjectName("framenumber_le")
|
||||
self.verticalLayout_8.addWidget(self.framenumber_le)
|
||||
self.image_mode_motor_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_motor_bt.setFocusPolicy(QtCore.Qt.ClickFocus)
|
||||
self.image_mode_motor_bt.setAutoDefault(False)
|
||||
self.image_mode_motor_bt.setObjectName("image_mode_motor_bt")
|
||||
self.verticalLayout_8.addWidget(self.image_mode_motor_bt)
|
||||
self.image_mode_stop_record_bt = QtWidgets.QPushButton(self.groupBox_7)
|
||||
self.image_mode_stop_record_bt.setFocusPolicy(QtCore.Qt.ClickFocus)
|
||||
self.image_mode_stop_record_bt.setAutoDefault(False)
|
||||
self.image_mode_stop_record_bt.setObjectName("image_mode_stop_record_bt")
|
||||
self.verticalLayout_8.addWidget(self.image_mode_stop_record_bt)
|
||||
self.horizontalLayout_3.addLayout(self.verticalLayout_8)
|
||||
self.horizontalLayout_5.addWidget(self.groupBox_7)
|
||||
spacerItem2 = QtWidgets.QSpacerItem(261, 17, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_5.addItem(spacerItem2)
|
||||
self.verticalLayout_5.addWidget(self.groupBox_6)
|
||||
self.gridLayout.addWidget(self.splitter, 1, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(image_Window)
|
||||
QtCore.QMetaObject.connectSlotsByName(image_Window)
|
||||
|
||||
def retranslateUi(self, image_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
image_Window.setWindowTitle(_translate("image_Window", "影像窗口"))
|
||||
self.groupBox_5.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.hum_label.setText(_translate("image_Window", "湿度:无数据"))
|
||||
self.label.setText(_translate("image_Window", "保存路径"))
|
||||
self.label_4.setText(_translate("image_Window", "文件名"))
|
||||
self.filepath_bt.setText(_translate("image_Window", "浏览"))
|
||||
self.save_bt.setText(_translate("image_Window", "保存"))
|
||||
self.t_label.setText(_translate("image_Window", "温度:无数据"))
|
||||
self.groupBox_3.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox.setTitle(_translate("image_Window", "图像"))
|
||||
self.groupBox_4.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox_2.setTitle(_translate("image_Window", "光谱"))
|
||||
self.groupBox_6.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.groupBox_7.setTitle(_translate("image_Window", "GroupBox"))
|
||||
self.label_3.setText(_translate("image_Window", "帧率"))
|
||||
self.image_mode_focus_bt.setText(_translate("image_Window", "调焦"))
|
||||
self.image_mode_exposureTime_bt.setText(_translate("image_Window", "曝光"))
|
||||
self.label_5.setText(_translate("image_Window", "gain"))
|
||||
self.image_mode_wb_bt.setText(_translate("image_Window", "白板"))
|
||||
self.label_2.setText(_translate("image_Window", "帧数"))
|
||||
self.image_mode_record_bt.setText(_translate("image_Window", "采集"))
|
||||
self.image_mode_stop_focus_bt.setText(_translate("image_Window", "停止调焦"))
|
||||
self.image_mode_dc_bt.setText(_translate("image_Window", "暗电流"))
|
||||
self.image_mode_motor_bt.setText(_translate("image_Window", "马达"))
|
||||
self.image_mode_stop_record_bt.setText(_translate("image_Window", "停止采集"))
|
||||
468
record_system_v25/ui/image_Window.ui
Normal file
468
record_system_v25/ui/image_Window.ui
Normal file
@ -0,0 +1,468 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>image_Window</class>
|
||||
<widget class="QDialog" name="image_Window">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1179</width>
|
||||
<height>683</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="mouseTracking">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>影像窗口</string>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sizeGripEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="modal">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_5">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QLabel" name="hum_label">
|
||||
<property name="text">
|
||||
<string>湿度:无数据</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>374</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSplitter" name="splitter_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>文件名</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="filepath_le">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="filename_le"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QPushButton" name="filepath_bt">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::ClickFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>浏览</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="save_bt">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::ClickFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
<item>
|
||||
<widget class="QLabel" name="t_label">
|
||||
<property name="text">
|
||||
<string>温度:无数据</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>374</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QSplitter" name="splitter">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>2000</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>图像</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="image_glo"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="statu_tb">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>8777215</width>
|
||||
<height>100</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>光谱</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="focus_glo"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_6">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_7">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>500</width>
|
||||
<height>500</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>帧率</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_focus_bt">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::ClickFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>调焦</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_exposureTime_bt">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::ClickFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>曝光</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>gain</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_wb_bt">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::ClickFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>白板</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>帧数</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_record_bt">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::ClickFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>采集</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="framerate_le">
|
||||
<property name="readOnly">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_stop_focus_bt">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::ClickFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>停止调焦</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="exposure_time_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="gain_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_dc_bt">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::ClickFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>暗电流</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="framenumber_le"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_motor_bt">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::ClickFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>马达</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="image_mode_stop_record_bt">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::ClickFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>停止采集</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>261</width>
|
||||
<height>17</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
1083
record_system_v25/ui/image_Window_phone.ui
Normal file
1083
record_system_v25/ui/image_Window_phone.ui
Normal file
File diff suppressed because it is too large
Load Diff
104
record_system_v25/ui/spectral_Window.py
Normal file
104
record_system_v25/ui/spectral_Window.py
Normal file
@ -0,0 +1,104 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'spectral_Window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_spectral_Window(object):
|
||||
def setupUi(self, spectral_Window):
|
||||
spectral_Window.setObjectName("spectral_Window")
|
||||
spectral_Window.resize(820, 545)
|
||||
self.label = QtWidgets.QLabel(spectral_Window)
|
||||
self.label.setGeometry(QtCore.QRect(54, 10, 51, 20))
|
||||
self.label.setObjectName("label")
|
||||
self.filepath_le = QtWidgets.QLineEdit(spectral_Window)
|
||||
self.filepath_le.setGeometry(QtCore.QRect(131, 10, 261, 21))
|
||||
self.filepath_le.setObjectName("filepath_le")
|
||||
self.label_2 = QtWidgets.QLabel(spectral_Window)
|
||||
self.label_2.setGeometry(QtCore.QRect(54, 40, 41, 20))
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.filename_le = QtWidgets.QLineEdit(spectral_Window)
|
||||
self.filename_le.setGeometry(QtCore.QRect(131, 40, 261, 21))
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.filepath_bt = QtWidgets.QPushButton(spectral_Window)
|
||||
self.filepath_bt.setGeometry(QtCore.QRect(401, 10, 71, 21))
|
||||
self.filepath_bt.setObjectName("filepath_bt")
|
||||
self.statu_tb = QtWidgets.QTextBrowser(spectral_Window)
|
||||
self.statu_tb.setGeometry(QtCore.QRect(620, 240, 161, 301))
|
||||
self.statu_tb.setObjectName("statu_tb")
|
||||
self.tabWidget = QtWidgets.QTabWidget(spectral_Window)
|
||||
self.tabWidget.setGeometry(QtCore.QRect(10, 70, 591, 441))
|
||||
self.tabWidget.setObjectName("tabWidget")
|
||||
self.tab = QtWidgets.QWidget()
|
||||
self.tab.setObjectName("tab")
|
||||
self.gridLayoutWidget = QtWidgets.QWidget(self.tab)
|
||||
self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, 581, 411))
|
||||
self.gridLayoutWidget.setObjectName("gridLayoutWidget")
|
||||
self.spe_glo = QtWidgets.QGridLayout(self.gridLayoutWidget)
|
||||
self.spe_glo.setContentsMargins(0, 0, 0, 0)
|
||||
self.spe_glo.setObjectName("spe_glo")
|
||||
self.tabWidget.addTab(self.tab, "")
|
||||
self.tab_2 = QtWidgets.QWidget()
|
||||
self.tab_2.setObjectName("tab_2")
|
||||
self.gridLayoutWidget_2 = QtWidgets.QWidget(self.tab_2)
|
||||
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(-1, -1, 581, 411))
|
||||
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
|
||||
self.align_glo = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
|
||||
self.align_glo.setContentsMargins(0, 0, 0, 0)
|
||||
self.align_glo.setObjectName("align_glo")
|
||||
self.tabWidget.addTab(self.tab_2, "")
|
||||
self.layoutWidget = QtWidgets.QWidget(spectral_Window)
|
||||
self.layoutWidget.setGeometry(QtCore.QRect(610, 90, 195, 135))
|
||||
self.layoutWidget.setObjectName("layoutWidget")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.layoutWidget)
|
||||
self.gridLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.spectral_mode_align_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.spectral_mode_align_bt.setObjectName("spectral_mode_align_bt")
|
||||
self.gridLayout.addWidget(self.spectral_mode_align_bt, 0, 0, 1, 1)
|
||||
self.spectral_mode_stop_align_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.spectral_mode_stop_align_bt.setObjectName("spectral_mode_stop_align_bt")
|
||||
self.gridLayout.addWidget(self.spectral_mode_stop_align_bt, 0, 1, 1, 1)
|
||||
self.spectral_mode_wb_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.spectral_mode_wb_bt.setObjectName("spectral_mode_wb_bt")
|
||||
self.gridLayout.addWidget(self.spectral_mode_wb_bt, 1, 0, 1, 2)
|
||||
self.spectral_mode_dc_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.spectral_mode_dc_bt.setObjectName("spectral_mode_dc_bt")
|
||||
self.gridLayout.addWidget(self.spectral_mode_dc_bt, 2, 0, 1, 2)
|
||||
self.spectral_mode_record_bt = QtWidgets.QPushButton(self.layoutWidget)
|
||||
self.spectral_mode_record_bt.setObjectName("spectral_mode_record_bt")
|
||||
self.gridLayout.addWidget(self.spectral_mode_record_bt, 3, 0, 1, 2)
|
||||
self.t_label = QtWidgets.QLabel(spectral_Window)
|
||||
self.t_label.setGeometry(QtCore.QRect(490, 11, 78, 23))
|
||||
self.t_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.t_label.setObjectName("t_label")
|
||||
self.hum_label = QtWidgets.QLabel(spectral_Window)
|
||||
self.hum_label.setGeometry(QtCore.QRect(490, 40, 78, 23))
|
||||
self.hum_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.hum_label.setObjectName("hum_label")
|
||||
|
||||
self.retranslateUi(spectral_Window)
|
||||
self.tabWidget.setCurrentIndex(0)
|
||||
QtCore.QMetaObject.connectSlotsByName(spectral_Window)
|
||||
|
||||
def retranslateUi(self, spectral_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
spectral_Window.setWindowTitle(_translate("spectral_Window", "光谱窗口"))
|
||||
self.label.setText(_translate("spectral_Window", "保存路径"))
|
||||
self.label_2.setText(_translate("spectral_Window", "文件名"))
|
||||
self.filepath_bt.setText(_translate("spectral_Window", "浏览"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("spectral_Window", "spe"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("spectral_Window", "align"))
|
||||
self.spectral_mode_align_bt.setText(_translate("spectral_Window", "align"))
|
||||
self.spectral_mode_stop_align_bt.setText(_translate("spectral_Window", "stop align"))
|
||||
self.spectral_mode_wb_bt.setText(_translate("spectral_Window", "曝光/白板"))
|
||||
self.spectral_mode_dc_bt.setText(_translate("spectral_Window", "暗电流"))
|
||||
self.spectral_mode_record_bt.setText(_translate("spectral_Window", "采集"))
|
||||
self.t_label.setText(_translate("spectral_Window", "温度:无数据"))
|
||||
self.hum_label.setText(_translate("spectral_Window", "湿度:无数据"))
|
||||
215
record_system_v25/ui/spectral_Window.ui
Normal file
215
record_system_v25/ui/spectral_Window.ui
Normal file
@ -0,0 +1,215 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>spectral_Window</class>
|
||||
<widget class="QDialog" name="spectral_Window">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>820</width>
|
||||
<height>545</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>光谱窗口</string>
|
||||
</property>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>54</x>
|
||||
<y>10</y>
|
||||
<width>51</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="filepath_le">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>131</x>
|
||||
<y>10</y>
|
||||
<width>261</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>54</x>
|
||||
<y>40</y>
|
||||
<width>41</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>文件名</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="filename_le">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>131</x>
|
||||
<y>40</y>
|
||||
<width>261</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="filepath_bt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>401</x>
|
||||
<y>10</y>
|
||||
<width>71</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>浏览</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTextBrowser" name="statu_tb">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>620</x>
|
||||
<y>240</y>
|
||||
<width>161</width>
|
||||
<height>301</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>70</y>
|
||||
<width>591</width>
|
||||
<height>441</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string>spe</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="gridLayoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>581</width>
|
||||
<height>411</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="spe_glo"/>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<attribute name="title">
|
||||
<string>align</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="gridLayoutWidget_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>-1</x>
|
||||
<y>-1</y>
|
||||
<width>581</width>
|
||||
<height>411</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="align_glo"/>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>610</x>
|
||||
<y>90</y>
|
||||
<width>195</width>
|
||||
<height>135</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="spectral_mode_align_bt">
|
||||
<property name="text">
|
||||
<string>align</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="spectral_mode_stop_align_bt">
|
||||
<property name="text">
|
||||
<string>stop align</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="spectral_mode_wb_bt">
|
||||
<property name="text">
|
||||
<string>曝光/白板</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="spectral_mode_dc_bt">
|
||||
<property name="text">
|
||||
<string>暗电流</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="spectral_mode_record_bt">
|
||||
<property name="text">
|
||||
<string>采集</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QLabel" name="t_label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>490</x>
|
||||
<y>11</y>
|
||||
<width>78</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>温度:无数据</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="hum_label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>490</x>
|
||||
<y>40</y>
|
||||
<width>78</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>湿度:无数据</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
377
record_system_v25/ui/spectral_Window_phone.ui
Normal file
377
record_system_v25/ui/spectral_Window_phone.ui
Normal file
@ -0,0 +1,377 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>spectral_Window_phone</class>
|
||||
<widget class="QDialog" name="spectral_Window_phone">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>568</width>
|
||||
<height>1144</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>光谱窗口</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="0" column="0">
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>600</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="spe_glo"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QFrame" name="frame_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>600</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="spectral_mode_wb_bt">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">/*按钮普通态*/
|
||||
QPushButton
|
||||
{
|
||||
/*字体为微软雅黑*/
|
||||
font-family:Microsoft Yahei;
|
||||
/*字体大小为20点*/
|
||||
font-size:25pt;
|
||||
/*字体颜色为白色*/
|
||||
/*color:white;*/
|
||||
/*背景颜色*/
|
||||
/*background-color:rgb(14 , 150 , 254);*/
|
||||
/*边框圆角半径为8像素*/
|
||||
/*border-radius:8px;*/
|
||||
}
|
||||
|
||||
/*按钮停留态*/
|
||||
QPushButton:hover
|
||||
{
|
||||
/*背景颜色*/
|
||||
background-color:rgb(44 , 137 , 255);
|
||||
/*边框圆角半径为8像素*/
|
||||
border-radius:20px;
|
||||
}
|
||||
|
||||
/*按钮按下态*/
|
||||
QPushButton:pressed
|
||||
{
|
||||
/*背景颜色*/
|
||||
/*background-color:rgb(14 , 135 , 228);*/
|
||||
background-color:red;
|
||||
|
||||
/*左内边距为3像素,让按下时字向右移动3像素*/
|
||||
padding-left:3px;
|
||||
|
||||
/*上内边距为3像素,让按下时字向下移动3像素*/
|
||||
padding-top:3px;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>曝光/白板</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="spectral_mode_dc_bt">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">/*按钮普通态*/
|
||||
QPushButton
|
||||
{
|
||||
/*字体为微软雅黑*/
|
||||
font-family:Microsoft Yahei;
|
||||
/*字体大小为20点*/
|
||||
font-size:25pt;
|
||||
/*字体颜色为白色*/
|
||||
/*color:white;*/
|
||||
/*背景颜色*/
|
||||
/*background-color:rgb(14 , 150 , 254);*/
|
||||
/*边框圆角半径为8像素*/
|
||||
/*border-radius:8px;*/
|
||||
}
|
||||
|
||||
/*按钮停留态*/
|
||||
QPushButton:hover
|
||||
{
|
||||
/*背景颜色*/
|
||||
background-color:rgb(44 , 137 , 255);
|
||||
/*边框圆角半径为8像素*/
|
||||
border-radius:20px;
|
||||
}
|
||||
|
||||
/*按钮按下态*/
|
||||
QPushButton:pressed
|
||||
{
|
||||
/*背景颜色*/
|
||||
/*background-color:rgb(14 , 135 , 228);*/
|
||||
background-color:red;
|
||||
|
||||
/*左内边距为3像素,让按下时字向右移动3像素*/
|
||||
padding-left:3px;
|
||||
|
||||
/*上内边距为3像素,让按下时字向下移动3像素*/
|
||||
padding-top:3px;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>暗电流</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QPushButton" name="spectral_mode_record_bt">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">/*按钮普通态*/
|
||||
QPushButton
|
||||
{
|
||||
/*字体为微软雅黑*/
|
||||
font-family:Microsoft Yahei;
|
||||
/*字体大小为20点*/
|
||||
font-size:25pt;
|
||||
/*字体颜色为白色*/
|
||||
/*color:white;*/
|
||||
/*背景颜色*/
|
||||
/*background-color:rgb(14 , 150 , 254);*/
|
||||
/*边框圆角半径为8像素*/
|
||||
/*border-radius:8px;*/
|
||||
}
|
||||
|
||||
/*按钮停留态*/
|
||||
QPushButton:hover
|
||||
{
|
||||
/*背景颜色*/
|
||||
background-color:rgb(44 , 137 , 255);
|
||||
/*边框圆角半径为8像素*/
|
||||
border-radius:20px;
|
||||
}
|
||||
|
||||
/*按钮按下态*/
|
||||
QPushButton:pressed
|
||||
{
|
||||
/*背景颜色*/
|
||||
/*background-color:rgb(14 , 135 , 228);*/
|
||||
background-color:red;
|
||||
|
||||
/*左内边距为3像素,让按下时字向右移动3像素*/
|
||||
padding-left:3px;
|
||||
|
||||
/*上内边距为3像素,让按下时字向下移动3像素*/
|
||||
padding-top:3px;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>采集</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QFrame" name="frame_3">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>150</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>25</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>文件名</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="filename_le">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>61</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="t_label">
|
||||
<property name="text">
|
||||
<string>温度:无数据</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="hum_label">
|
||||
<property name="text">
|
||||
<string>湿度:无数据</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
2215
record_system_v26/2record_system_v26.py
Normal file
2215
record_system_v26/2record_system_v26.py
Normal file
File diff suppressed because it is too large
Load Diff
27
record_system_v26/log/corning_config.ini
Normal file
27
record_system_v26/log/corning_config.ini
Normal file
@ -0,0 +1,27 @@
|
||||
[bin]
|
||||
binning = 1
|
||||
start_column_binning_1 = 12
|
||||
end_column_binning_1 = 1376
|
||||
start_row_binning_1 = 0
|
||||
end_row_binning_1 = 300
|
||||
start_column_binning_2 = 13
|
||||
end_column_binning_2 = 695
|
||||
start_row_binning_2 = 0
|
||||
end_row_binning_2 = 150
|
||||
|
||||
[image_record_param]
|
||||
image_dir = D:\py_program\corning410\record_system_v26/image
|
||||
default_image_name = test_image
|
||||
framerate = 10
|
||||
exposure_time = 99997
|
||||
gain = 0.0
|
||||
frame_number = 1000
|
||||
arcus_speed = 500
|
||||
|
||||
[spectral_record_param]
|
||||
spectral_dir = D:\py_program\corning410\record_system_v26/spectral
|
||||
default_spectral_name = 500
|
||||
spectral_number = 500
|
||||
framenumber_average = 500
|
||||
exposure_time_spectral = 500
|
||||
|
||||
0
record_system_v26/ui/__init__.py
Normal file
0
record_system_v26/ui/__init__.py
Normal file
150
record_system_v26/ui/enter_window.py
Normal file
150
record_system_v26/ui/enter_window.py
Normal file
@ -0,0 +1,150 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'enter_window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_enter_Window(object):
|
||||
def setupUi(self, enter_Window):
|
||||
enter_Window.setObjectName("enter_Window")
|
||||
enter_Window.setEnabled(True)
|
||||
enter_Window.resize(651, 474)
|
||||
self.centralwidget = QtWidgets.QWidget(enter_Window)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.camstatus_label = QtWidgets.QLabel(self.centralwidget)
|
||||
self.camstatus_label.setEnabled(True)
|
||||
self.camstatus_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:30pt;\n"
|
||||
" /*字体颜色为白色*/\n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/\n"
|
||||
" background-color:rgb(225 , 225 , 225);\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}")
|
||||
self.camstatus_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.camstatus_label.setObjectName("camstatus_label")
|
||||
self.gridLayout.addWidget(self.camstatus_label, 2, 0, 1, 1)
|
||||
self.spectral_mode_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.spectral_mode_bt.setEnabled(True)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.spectral_mode_bt.sizePolicy().hasHeightForWidth())
|
||||
self.spectral_mode_bt.setSizePolicy(sizePolicy)
|
||||
self.spectral_mode_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.spectral_mode_bt.setObjectName("spectral_mode_bt")
|
||||
self.gridLayout.addWidget(self.spectral_mode_bt, 1, 0, 1, 1)
|
||||
self.image_mode_phone_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.image_mode_phone_bt.setEnabled(True)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.image_mode_phone_bt.sizePolicy().hasHeightForWidth())
|
||||
self.image_mode_phone_bt.setSizePolicy(sizePolicy)
|
||||
self.image_mode_phone_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.image_mode_phone_bt.setObjectName("image_mode_phone_bt")
|
||||
self.gridLayout.addWidget(self.image_mode_phone_bt, 0, 0, 1, 1)
|
||||
enter_Window.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(enter_Window)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 651, 23))
|
||||
self.menubar.setObjectName("menubar")
|
||||
enter_Window.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(enter_Window)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
enter_Window.setStatusBar(self.statusbar)
|
||||
self.actionwew_e = QtWidgets.QAction(enter_Window)
|
||||
self.actionwew_e.setObjectName("actionwew_e")
|
||||
|
||||
self.retranslateUi(enter_Window)
|
||||
QtCore.QMetaObject.connectSlotsByName(enter_Window)
|
||||
|
||||
def retranslateUi(self, enter_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
enter_Window.setWindowTitle(_translate("enter_Window", "主窗口"))
|
||||
self.camstatus_label.setText(_translate("enter_Window", "正在打开相机..."))
|
||||
self.spectral_mode_bt.setText(_translate("enter_Window", "光谱模式"))
|
||||
self.image_mode_phone_bt.setText(_translate("enter_Window", "影像模式"))
|
||||
self.actionwew_e.setText(_translate("enter_Window", "wew e"))
|
||||
178
record_system_v26/ui/enter_window.ui
Normal file
178
record_system_v26/ui/enter_window.ui
Normal file
@ -0,0 +1,178 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>enter_Window</class>
|
||||
<widget class="QMainWindow" name="enter_Window">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>474</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>主窗口</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="camstatus_label">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QLabel
|
||||
{
|
||||
/*字体为微软雅黑*/
|
||||
font-family:Microsoft Yahei;
|
||||
/*字体大小为20点*/
|
||||
font-size:30pt;
|
||||
/*字体颜色为白色*/
|
||||
/*color:white;*/
|
||||
/*背景颜色*/
|
||||
background-color:rgb(225 , 225 , 225);
|
||||
/*边框圆角半径为8像素*/
|
||||
border-radius:20px;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>正在打开相机...</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="spectral_mode_bt">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">/*按钮普通态*/
|
||||
QPushButton
|
||||
{
|
||||
/*字体为微软雅黑*/
|
||||
font-family:Microsoft Yahei;
|
||||
/*字体大小为20点*/
|
||||
font-size:25pt;
|
||||
/*字体颜色为白色*/
|
||||
/*color:white;*/
|
||||
/*背景颜色*/
|
||||
background-color:rgb(225 , 225 , 225);
|
||||
/*边框圆角半径为8像素*/
|
||||
border-radius:20px;
|
||||
}
|
||||
|
||||
/*按钮停留态*/
|
||||
QPushButton:hover
|
||||
{
|
||||
/*背景颜色*/
|
||||
background-color:rgb(44 , 137 , 255);
|
||||
/*边框圆角半径为8像素*/
|
||||
/*border-radius:20px;*/
|
||||
}
|
||||
|
||||
/*按钮按下态*/
|
||||
QPushButton:pressed
|
||||
{
|
||||
/*背景颜色*/
|
||||
background-color:rgb(255 , 0 , 0);
|
||||
|
||||
/*左内边距为3像素,让按下时字向右移动3像素*/
|
||||
padding-left:3px;
|
||||
|
||||
/*上内边距为3像素,让按下时字向下移动3像素*/
|
||||
padding-top:3px;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>光谱模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="image_mode_phone_bt">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">/*按钮普通态*/
|
||||
QPushButton
|
||||
{
|
||||
/*字体为微软雅黑*/
|
||||
font-family:Microsoft Yahei;
|
||||
/*字体大小为20点*/
|
||||
font-size:25pt;
|
||||
/*字体颜色为白色*/
|
||||
/*color:white;*/
|
||||
/*背景颜色*/
|
||||
background-color:rgb(225 , 225 , 225);
|
||||
/*边框圆角半径为8像素*/
|
||||
border-radius:20px;
|
||||
}
|
||||
|
||||
/*按钮停留态*/
|
||||
QPushButton:hover
|
||||
{
|
||||
/*背景颜色*/
|
||||
background-color:rgb(44 , 137 , 255);
|
||||
/*边框圆角半径为8像素*/
|
||||
/*border-radius:20px;*/
|
||||
}
|
||||
|
||||
/*按钮按下态*/
|
||||
QPushButton:pressed
|
||||
{
|
||||
/*背景颜色*/
|
||||
background-color:rgb(255 , 0 , 0);
|
||||
|
||||
/*左内边距为3像素,让按下时字向右移动3像素*/
|
||||
padding-left:3px;
|
||||
|
||||
/*上内边距为3像素,让按下时字向下移动3像素*/
|
||||
padding-top:3px;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>影像模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
<action name="actionwew_e">
|
||||
<property name="text">
|
||||
<string>wew e</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
830
record_system_v26/ui/image_Window_phone.py
Normal file
830
record_system_v26/ui/image_Window_phone.py
Normal file
@ -0,0 +1,830 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'image_Window_phone.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_image_Window_phone(object):
|
||||
def setupUi(self, image_Window_phone):
|
||||
image_Window_phone.setObjectName("image_Window_phone")
|
||||
image_Window_phone.setEnabled(True)
|
||||
image_Window_phone.resize(518, 1174)
|
||||
image_Window_phone.setMouseTracking(False)
|
||||
image_Window_phone.setAutoFillBackground(False)
|
||||
image_Window_phone.setSizeGripEnabled(False)
|
||||
image_Window_phone.setModal(False)
|
||||
self.gridLayout_6 = QtWidgets.QGridLayout(image_Window_phone)
|
||||
self.gridLayout_6.setObjectName("gridLayout_6")
|
||||
self.splitter = QtWidgets.QSplitter(image_Window_phone)
|
||||
self.splitter.setOrientation(QtCore.Qt.Vertical)
|
||||
self.splitter.setObjectName("splitter")
|
||||
self.frame_2 = QtWidgets.QFrame(self.splitter)
|
||||
self.frame_2.setFrameShape(QtWidgets.QFrame.Box)
|
||||
self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_2.setObjectName("frame_2")
|
||||
self.gridLayout_2 = QtWidgets.QGridLayout(self.frame_2)
|
||||
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||
self.image_glo = QtWidgets.QGridLayout()
|
||||
self.image_glo.setObjectName("image_glo")
|
||||
self.gridLayout_2.addLayout(self.image_glo, 0, 0, 1, 1)
|
||||
self.frame = QtWidgets.QFrame(self.splitter)
|
||||
self.frame.setMaximumSize(QtCore.QSize(16777215, 600))
|
||||
self.frame.setFrameShape(QtWidgets.QFrame.Box)
|
||||
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame.setObjectName("frame")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.frame)
|
||||
self.gridLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.focus_glo = QtWidgets.QGridLayout()
|
||||
self.focus_glo.setObjectName("focus_glo")
|
||||
self.gridLayout.addLayout(self.focus_glo, 0, 0, 1, 1)
|
||||
self.gridLayout_6.addWidget(self.splitter, 0, 0, 1, 1)
|
||||
self.frame_3 = QtWidgets.QFrame(image_Window_phone)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.frame_3.sizePolicy().hasHeightForWidth())
|
||||
self.frame_3.setSizePolicy(sizePolicy)
|
||||
self.frame_3.setMaximumSize(QtCore.QSize(16777215, 600))
|
||||
self.frame_3.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_3.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_3.setObjectName("frame_3")
|
||||
self.gridLayout_5 = QtWidgets.QGridLayout(self.frame_3)
|
||||
self.gridLayout_5.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_5.setObjectName("gridLayout_5")
|
||||
self.frame_7 = QtWidgets.QFrame(self.frame_3)
|
||||
self.frame_7.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_7.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_7.setObjectName("frame_7")
|
||||
self.gridLayout_4 = QtWidgets.QGridLayout(self.frame_7)
|
||||
self.gridLayout_4.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_4.setObjectName("gridLayout_4")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.image_mode_exposureTime_bt = QtWidgets.QPushButton(self.frame_7)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.image_mode_exposureTime_bt.sizePolicy().hasHeightForWidth())
|
||||
self.image_mode_exposureTime_bt.setSizePolicy(sizePolicy)
|
||||
self.image_mode_exposureTime_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.image_mode_exposureTime_bt.setFont(font)
|
||||
self.image_mode_exposureTime_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.image_mode_exposureTime_bt.setAutoDefault(False)
|
||||
self.image_mode_exposureTime_bt.setObjectName("image_mode_exposureTime_bt")
|
||||
self.verticalLayout.addWidget(self.image_mode_exposureTime_bt)
|
||||
self.image_mode_focus_bt = QtWidgets.QPushButton(self.frame_7)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.image_mode_focus_bt.sizePolicy().hasHeightForWidth())
|
||||
self.image_mode_focus_bt.setSizePolicy(sizePolicy)
|
||||
self.image_mode_focus_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.image_mode_focus_bt.setFont(font)
|
||||
self.image_mode_focus_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.image_mode_focus_bt.setAutoDefault(False)
|
||||
self.image_mode_focus_bt.setObjectName("image_mode_focus_bt")
|
||||
self.verticalLayout.addWidget(self.image_mode_focus_bt)
|
||||
self.image_mode_dc_bt = QtWidgets.QPushButton(self.frame_7)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.image_mode_dc_bt.sizePolicy().hasHeightForWidth())
|
||||
self.image_mode_dc_bt.setSizePolicy(sizePolicy)
|
||||
self.image_mode_dc_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.image_mode_dc_bt.setFont(font)
|
||||
self.image_mode_dc_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.image_mode_dc_bt.setAutoDefault(False)
|
||||
self.image_mode_dc_bt.setObjectName("image_mode_dc_bt")
|
||||
self.verticalLayout.addWidget(self.image_mode_dc_bt)
|
||||
self.image_mode_wb_bt = QtWidgets.QPushButton(self.frame_7)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.image_mode_wb_bt.sizePolicy().hasHeightForWidth())
|
||||
self.image_mode_wb_bt.setSizePolicy(sizePolicy)
|
||||
self.image_mode_wb_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.image_mode_wb_bt.setFont(font)
|
||||
self.image_mode_wb_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.image_mode_wb_bt.setAutoDefault(False)
|
||||
self.image_mode_wb_bt.setObjectName("image_mode_wb_bt")
|
||||
self.verticalLayout.addWidget(self.image_mode_wb_bt)
|
||||
self.image_mode_record_bt = QtWidgets.QPushButton(self.frame_7)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.image_mode_record_bt.sizePolicy().hasHeightForWidth())
|
||||
self.image_mode_record_bt.setSizePolicy(sizePolicy)
|
||||
self.image_mode_record_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.image_mode_record_bt.setFont(font)
|
||||
self.image_mode_record_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.image_mode_record_bt.setAutoDefault(False)
|
||||
self.image_mode_record_bt.setObjectName("image_mode_record_bt")
|
||||
self.verticalLayout.addWidget(self.image_mode_record_bt)
|
||||
self.save_bt = QtWidgets.QPushButton(self.frame_7)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.save_bt.sizePolicy().hasHeightForWidth())
|
||||
self.save_bt.setSizePolicy(sizePolicy)
|
||||
self.save_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.save_bt.setFont(font)
|
||||
self.save_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.save_bt.setAutoDefault(False)
|
||||
self.save_bt.setObjectName("save_bt")
|
||||
self.verticalLayout.addWidget(self.save_bt)
|
||||
self.gridLayout_4.addLayout(self.verticalLayout, 0, 0, 1, 1)
|
||||
self.gridLayout_5.addWidget(self.frame_7, 0, 0, 1, 1)
|
||||
self.frame_6 = QtWidgets.QFrame(self.frame_3)
|
||||
self.frame_6.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_6.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_6.setObjectName("frame_6")
|
||||
self.gridLayout_3 = QtWidgets.QGridLayout(self.frame_6)
|
||||
self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||
self.frame_8 = QtWidgets.QFrame(self.frame_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.frame_8.sizePolicy().hasHeightForWidth())
|
||||
self.frame_8.setSizePolicy(sizePolicy)
|
||||
self.frame_8.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_8.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_8.setLineWidth(0)
|
||||
self.frame_8.setObjectName("frame_8")
|
||||
self.gridLayout_3.addWidget(self.frame_8, 3, 0, 1, 1)
|
||||
self.frame_10 = QtWidgets.QFrame(self.frame_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.frame_10.sizePolicy().hasHeightForWidth())
|
||||
self.frame_10.setSizePolicy(sizePolicy)
|
||||
self.frame_10.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_10.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_10.setObjectName("frame_10")
|
||||
self.gridLayout_8 = QtWidgets.QGridLayout(self.frame_10)
|
||||
self.gridLayout_8.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_8.setSpacing(0)
|
||||
self.gridLayout_8.setObjectName("gridLayout_8")
|
||||
self.label_2 = QtWidgets.QLabel(self.frame_10)
|
||||
self.label_2.setMinimumSize(QtCore.QSize(110, 0))
|
||||
self.label_2.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:20pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.gridLayout_8.addWidget(self.label_2, 0, 0, 1, 1)
|
||||
self.framenumber_le = QtWidgets.QLineEdit(self.frame_10)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.framenumber_le.sizePolicy().hasHeightForWidth())
|
||||
self.framenumber_le.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(42)
|
||||
self.framenumber_le.setFont(font)
|
||||
self.framenumber_le.setObjectName("framenumber_le")
|
||||
self.gridLayout_8.addWidget(self.framenumber_le, 0, 1, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.frame_10, 4, 0, 1, 1)
|
||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.label_3 = QtWidgets.QLabel(self.frame_6)
|
||||
self.label_3.setMinimumSize(QtCore.QSize(110, 0))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(20)
|
||||
self.label_3.setFont(font)
|
||||
self.label_3.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:20pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.horizontalLayout_3.addWidget(self.label_3)
|
||||
self.framerate_le = QtWidgets.QLineEdit(self.frame_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.framerate_le.sizePolicy().hasHeightForWidth())
|
||||
self.framerate_le.setSizePolicy(sizePolicy)
|
||||
self.framerate_le.setMaximumSize(QtCore.QSize(16777215, 106))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(42)
|
||||
self.framerate_le.setFont(font)
|
||||
self.framerate_le.setReadOnly(False)
|
||||
self.framerate_le.setObjectName("framerate_le")
|
||||
self.horizontalLayout_3.addWidget(self.framerate_le)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_3, 1, 0, 1, 1)
|
||||
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
||||
self.label_5 = QtWidgets.QLabel(self.frame_6)
|
||||
self.label_5.setMinimumSize(QtCore.QSize(110, 0))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(20)
|
||||
self.label_5.setFont(font)
|
||||
self.label_5.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:20pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.horizontalLayout_4.addWidget(self.label_5)
|
||||
self.exposure_time_le = QtWidgets.QLineEdit(self.frame_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.exposure_time_le.sizePolicy().hasHeightForWidth())
|
||||
self.exposure_time_le.setSizePolicy(sizePolicy)
|
||||
self.exposure_time_le.setMaximumSize(QtCore.QSize(16777215, 106))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(42)
|
||||
self.exposure_time_le.setFont(font)
|
||||
self.exposure_time_le.setObjectName("exposure_time_le")
|
||||
self.horizontalLayout_4.addWidget(self.exposure_time_le)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_4, 0, 0, 1, 1)
|
||||
self.frame_5 = QtWidgets.QFrame(self.frame_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.frame_5.sizePolicy().hasHeightForWidth())
|
||||
self.frame_5.setSizePolicy(sizePolicy)
|
||||
self.frame_5.setMinimumSize(QtCore.QSize(160, 0))
|
||||
self.frame_5.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_5.setObjectName("frame_5")
|
||||
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.frame_5)
|
||||
self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
self.label_7 = QtWidgets.QLabel(self.frame_5)
|
||||
self.label_7.setMinimumSize(QtCore.QSize(110, 0))
|
||||
self.label_7.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:20pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_7.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_7.setObjectName("label_7")
|
||||
self.horizontalLayout_2.addWidget(self.label_7)
|
||||
self.arcus_left_bt = QtWidgets.QPushButton(self.frame_5)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.arcus_left_bt.sizePolicy().hasHeightForWidth())
|
||||
self.arcus_left_bt.setSizePolicy(sizePolicy)
|
||||
self.arcus_left_bt.setMinimumSize(QtCore.QSize(50, 0))
|
||||
self.arcus_left_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.arcus_left_bt.setFont(font)
|
||||
self.arcus_left_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.arcus_left_bt.setAutoDefault(False)
|
||||
self.arcus_left_bt.setObjectName("arcus_left_bt")
|
||||
self.horizontalLayout_2.addWidget(self.arcus_left_bt)
|
||||
self.arcus_speed_le = QtWidgets.QLineEdit(self.frame_5)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.arcus_speed_le.sizePolicy().hasHeightForWidth())
|
||||
self.arcus_speed_le.setSizePolicy(sizePolicy)
|
||||
self.arcus_speed_le.setMinimumSize(QtCore.QSize(60, 0))
|
||||
self.arcus_speed_le.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(42)
|
||||
self.arcus_speed_le.setFont(font)
|
||||
self.arcus_speed_le.setObjectName("arcus_speed_le")
|
||||
self.horizontalLayout_2.addWidget(self.arcus_speed_le)
|
||||
self.arcus_right_bt = QtWidgets.QPushButton(self.frame_5)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.arcus_right_bt.sizePolicy().hasHeightForWidth())
|
||||
self.arcus_right_bt.setSizePolicy(sizePolicy)
|
||||
self.arcus_right_bt.setMinimumSize(QtCore.QSize(50, 0))
|
||||
self.arcus_right_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.arcus_right_bt.setFont(font)
|
||||
self.arcus_right_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.arcus_right_bt.setAutoDefault(False)
|
||||
self.arcus_right_bt.setObjectName("arcus_right_bt")
|
||||
self.horizontalLayout_2.addWidget(self.arcus_right_bt)
|
||||
self.gridLayout_3.addWidget(self.frame_5, 2, 0, 1, 1)
|
||||
self.frame_9 = QtWidgets.QFrame(self.frame_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.frame_9.sizePolicy().hasHeightForWidth())
|
||||
self.frame_9.setSizePolicy(sizePolicy)
|
||||
self.frame_9.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_9.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_9.setLineWidth(0)
|
||||
self.frame_9.setObjectName("frame_9")
|
||||
self.gridLayout_7 = QtWidgets.QGridLayout(self.frame_9)
|
||||
self.gridLayout_7.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_7.setSpacing(0)
|
||||
self.gridLayout_7.setObjectName("gridLayout_7")
|
||||
self.filename_le = QtWidgets.QLineEdit(self.frame_9)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.filename_le.sizePolicy().hasHeightForWidth())
|
||||
self.filename_le.setSizePolicy(sizePolicy)
|
||||
self.filename_le.setMaximumSize(QtCore.QSize(16777215, 106))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(42)
|
||||
self.filename_le.setFont(font)
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.gridLayout_7.addWidget(self.filename_le, 0, 1, 1, 1)
|
||||
self.file_number_label = QtWidgets.QLabel(self.frame_9)
|
||||
self.file_number_label.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.file_number_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.file_number_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.file_number_label.setObjectName("file_number_label")
|
||||
self.gridLayout_7.addWidget(self.file_number_label, 0, 2, 1, 1)
|
||||
self.label_6 = QtWidgets.QLabel(self.frame_9)
|
||||
self.label_6.setMinimumSize(QtCore.QSize(110, 0))
|
||||
self.label_6.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:20pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_6.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_6.setObjectName("label_6")
|
||||
self.gridLayout_7.addWidget(self.label_6, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.frame_9, 6, 0, 1, 1)
|
||||
self.gridLayout_5.addWidget(self.frame_6, 0, 1, 1, 1)
|
||||
self.gridLayout_6.addWidget(self.frame_3, 1, 0, 1, 1)
|
||||
self.frame_4 = QtWidgets.QFrame(image_Window_phone)
|
||||
self.frame_4.setMinimumSize(QtCore.QSize(0, 0))
|
||||
self.frame_4.setMaximumSize(QtCore.QSize(16777215, 35))
|
||||
self.frame_4.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_4.setObjectName("frame_4")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.frame_4)
|
||||
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.horizontalLayout.setSpacing(0)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
spacerItem = QtWidgets.QSpacerItem(233, 12, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout.addItem(spacerItem)
|
||||
self.t_label = QtWidgets.QLabel(self.frame_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.t_label.sizePolicy().hasHeightForWidth())
|
||||
self.t_label.setSizePolicy(sizePolicy)
|
||||
self.t_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.t_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.t_label.setObjectName("t_label")
|
||||
self.horizontalLayout.addWidget(self.t_label)
|
||||
self.hum_label = QtWidgets.QLabel(self.frame_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.hum_label.sizePolicy().hasHeightForWidth())
|
||||
self.hum_label.setSizePolicy(sizePolicy)
|
||||
self.hum_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.hum_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.hum_label.setObjectName("hum_label")
|
||||
self.horizontalLayout.addWidget(self.hum_label)
|
||||
self.camera_status_label = QtWidgets.QLabel(self.frame_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.camera_status_label.sizePolicy().hasHeightForWidth())
|
||||
self.camera_status_label.setSizePolicy(sizePolicy)
|
||||
self.camera_status_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.camera_status_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.camera_status_label.setObjectName("camera_status_label")
|
||||
self.horizontalLayout.addWidget(self.camera_status_label)
|
||||
self.arcus_status_label = QtWidgets.QLabel(self.frame_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.arcus_status_label.sizePolicy().hasHeightForWidth())
|
||||
self.arcus_status_label.setSizePolicy(sizePolicy)
|
||||
self.arcus_status_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.arcus_status_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.arcus_status_label.setObjectName("arcus_status_label")
|
||||
self.horizontalLayout.addWidget(self.arcus_status_label)
|
||||
self.gridLayout_6.addWidget(self.frame_4, 2, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(image_Window_phone)
|
||||
QtCore.QMetaObject.connectSlotsByName(image_Window_phone)
|
||||
|
||||
def retranslateUi(self, image_Window_phone):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
image_Window_phone.setWindowTitle(_translate("image_Window_phone", "影像窗口"))
|
||||
self.image_mode_exposureTime_bt.setText(_translate("image_Window_phone", "曝 光"))
|
||||
self.image_mode_focus_bt.setText(_translate("image_Window_phone", "调 焦"))
|
||||
self.image_mode_dc_bt.setText(_translate("image_Window_phone", "暗 电 流"))
|
||||
self.image_mode_wb_bt.setText(_translate("image_Window_phone", "白 板"))
|
||||
self.image_mode_record_bt.setText(_translate("image_Window_phone", "采 集"))
|
||||
self.save_bt.setText(_translate("image_Window_phone", "保 存"))
|
||||
self.label_2.setText(_translate("image_Window_phone", "帧 数"))
|
||||
self.label_3.setText(_translate("image_Window_phone", "帧 率"))
|
||||
self.label_5.setText(_translate("image_Window_phone", "积分时间"))
|
||||
self.label_7.setText(_translate("image_Window_phone", "马 达"))
|
||||
self.arcus_left_bt.setText(_translate("image_Window_phone", "<"))
|
||||
self.arcus_right_bt.setText(_translate("image_Window_phone", ">"))
|
||||
self.file_number_label.setText(_translate("image_Window_phone", "文件号"))
|
||||
self.label_6.setText(_translate("image_Window_phone", "命 名"))
|
||||
self.t_label.setText(_translate("image_Window_phone", "温度:无数据"))
|
||||
self.hum_label.setText(_translate("image_Window_phone", "湿度:无数据"))
|
||||
self.camera_status_label.setText(_translate("image_Window_phone", "光谱仪:连接失败"))
|
||||
self.arcus_status_label.setText(_translate("image_Window_phone", "马达:连接失败!"))
|
||||
1323
record_system_v26/ui/image_Window_phone.ui
Normal file
1323
record_system_v26/ui/image_Window_phone.ui
Normal file
File diff suppressed because it is too large
Load Diff
629
record_system_v26/ui/spectral_Window_phone.py
Normal file
629
record_system_v26/ui/spectral_Window_phone.py
Normal file
@ -0,0 +1,629 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'spectral_Window_phone.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_spectral_Window_phone(object):
|
||||
def setupUi(self, spectral_Window_phone):
|
||||
spectral_Window_phone.setObjectName("spectral_Window_phone")
|
||||
spectral_Window_phone.resize(540, 1175)
|
||||
self.gridLayout_6 = QtWidgets.QGridLayout(spectral_Window_phone)
|
||||
self.gridLayout_6.setObjectName("gridLayout_6")
|
||||
self.frame = QtWidgets.QFrame(spectral_Window_phone)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
|
||||
self.frame.setSizePolicy(sizePolicy)
|
||||
self.frame.setMinimumSize(QtCore.QSize(0, 600))
|
||||
self.frame.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame.setObjectName("frame")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.frame)
|
||||
self.gridLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.spe_glo = QtWidgets.QGridLayout()
|
||||
self.spe_glo.setObjectName("spe_glo")
|
||||
self.gridLayout.addLayout(self.spe_glo, 0, 0, 1, 1)
|
||||
self.gridLayout_6.addWidget(self.frame, 0, 0, 1, 1)
|
||||
self.frame_2 = QtWidgets.QFrame(spectral_Window_phone)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.frame_2.sizePolicy().hasHeightForWidth())
|
||||
self.frame_2.setSizePolicy(sizePolicy)
|
||||
self.frame_2.setMaximumSize(QtCore.QSize(16777215, 600))
|
||||
self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_2.setObjectName("frame_2")
|
||||
self.gridLayout_8 = QtWidgets.QGridLayout(self.frame_2)
|
||||
self.gridLayout_8.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_8.setSpacing(0)
|
||||
self.gridLayout_8.setObjectName("gridLayout_8")
|
||||
self.frame_4 = QtWidgets.QFrame(self.frame_2)
|
||||
self.frame_4.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_4.setObjectName("frame_4")
|
||||
self.gridLayout_4 = QtWidgets.QGridLayout(self.frame_4)
|
||||
self.gridLayout_4.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_4.setSpacing(0)
|
||||
self.gridLayout_4.setObjectName("gridLayout_4")
|
||||
self.spectral_mode_autoexposure_bt = QtWidgets.QPushButton(self.frame_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.spectral_mode_autoexposure_bt.sizePolicy().hasHeightForWidth())
|
||||
self.spectral_mode_autoexposure_bt.setSizePolicy(sizePolicy)
|
||||
self.spectral_mode_autoexposure_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.spectral_mode_autoexposure_bt.setAutoDefault(False)
|
||||
self.spectral_mode_autoexposure_bt.setObjectName("spectral_mode_autoexposure_bt")
|
||||
self.gridLayout_4.addWidget(self.spectral_mode_autoexposure_bt, 0, 0, 1, 1)
|
||||
self.autoexposure_le = QtWidgets.QLineEdit(self.frame_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.autoexposure_le.sizePolicy().hasHeightForWidth())
|
||||
self.autoexposure_le.setSizePolicy(sizePolicy)
|
||||
self.autoexposure_le.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.autoexposure_le.setStyleSheet("QLineEdit\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:40pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.autoexposure_le.setObjectName("autoexposure_le")
|
||||
self.gridLayout_4.addWidget(self.autoexposure_le, 0, 1, 1, 1)
|
||||
self.gridLayout_8.addWidget(self.frame_4, 0, 0, 1, 1)
|
||||
self.frame_6 = QtWidgets.QFrame(self.frame_2)
|
||||
self.frame_6.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_6.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_6.setObjectName("frame_6")
|
||||
self.gridLayout_2 = QtWidgets.QGridLayout(self.frame_6)
|
||||
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_2.setSpacing(0)
|
||||
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||
self.dc_timer_label = QtWidgets.QLabel(self.frame_6)
|
||||
self.dc_timer_label.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.dc_timer_label.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.dc_timer_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.dc_timer_label.setObjectName("dc_timer_label")
|
||||
self.gridLayout_2.addWidget(self.dc_timer_label, 0, 1, 1, 1)
|
||||
self.spectral_mode_dc_bt = QtWidgets.QPushButton(self.frame_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.spectral_mode_dc_bt.sizePolicy().hasHeightForWidth())
|
||||
self.spectral_mode_dc_bt.setSizePolicy(sizePolicy)
|
||||
self.spectral_mode_dc_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.spectral_mode_dc_bt.setAutoDefault(False)
|
||||
self.spectral_mode_dc_bt.setObjectName("spectral_mode_dc_bt")
|
||||
self.gridLayout_2.addWidget(self.spectral_mode_dc_bt, 0, 0, 1, 1)
|
||||
self.gridLayout_8.addWidget(self.frame_6, 1, 0, 1, 1)
|
||||
self.frame_7 = QtWidgets.QFrame(self.frame_2)
|
||||
self.frame_7.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_7.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_7.setObjectName("frame_7")
|
||||
self.gridLayout_7 = QtWidgets.QGridLayout(self.frame_7)
|
||||
self.gridLayout_7.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_7.setSpacing(0)
|
||||
self.gridLayout_7.setObjectName("gridLayout_7")
|
||||
self.spectral_mode_wb_bt = QtWidgets.QPushButton(self.frame_7)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.spectral_mode_wb_bt.sizePolicy().hasHeightForWidth())
|
||||
self.spectral_mode_wb_bt.setSizePolicy(sizePolicy)
|
||||
self.spectral_mode_wb_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.spectral_mode_wb_bt.setAutoDefault(False)
|
||||
self.spectral_mode_wb_bt.setObjectName("spectral_mode_wb_bt")
|
||||
self.gridLayout_7.addWidget(self.spectral_mode_wb_bt, 0, 0, 1, 1)
|
||||
self.wb_timer_label = QtWidgets.QLabel(self.frame_7)
|
||||
self.wb_timer_label.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.wb_timer_label.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.wb_timer_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.wb_timer_label.setObjectName("wb_timer_label")
|
||||
self.gridLayout_7.addWidget(self.wb_timer_label, 0, 1, 1, 1)
|
||||
self.gridLayout_8.addWidget(self.frame_7, 2, 0, 1, 1)
|
||||
self.frame_5 = QtWidgets.QFrame(self.frame_2)
|
||||
self.frame_5.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_5.setObjectName("frame_5")
|
||||
self.gridLayout_5 = QtWidgets.QGridLayout(self.frame_5)
|
||||
self.gridLayout_5.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_5.setSpacing(0)
|
||||
self.gridLayout_5.setObjectName("gridLayout_5")
|
||||
self.spectral_mode_record_bt = QtWidgets.QPushButton(self.frame_5)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.spectral_mode_record_bt.sizePolicy().hasHeightForWidth())
|
||||
self.spectral_mode_record_bt.setSizePolicy(sizePolicy)
|
||||
self.spectral_mode_record_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.spectral_mode_record_bt.setAutoDefault(False)
|
||||
self.spectral_mode_record_bt.setObjectName("spectral_mode_record_bt")
|
||||
self.gridLayout_5.addWidget(self.spectral_mode_record_bt, 0, 0, 1, 1)
|
||||
self.data_type_comboBox = QtWidgets.QComboBox(self.frame_5)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.data_type_comboBox.sizePolicy().hasHeightForWidth())
|
||||
self.data_type_comboBox.setSizePolicy(sizePolicy)
|
||||
self.data_type_comboBox.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.data_type_comboBox.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QComboBox\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}")
|
||||
self.data_type_comboBox.setFrame(False)
|
||||
self.data_type_comboBox.setObjectName("data_type_comboBox")
|
||||
self.data_type_comboBox.addItem("")
|
||||
self.data_type_comboBox.addItem("")
|
||||
self.data_type_comboBox.addItem("")
|
||||
self.gridLayout_5.addWidget(self.data_type_comboBox, 0, 1, 1, 1)
|
||||
self.progressBar = QtWidgets.QProgressBar(self.frame_5)
|
||||
self.progressBar.setProperty("value", 0)
|
||||
self.progressBar.setTextVisible(False)
|
||||
self.progressBar.setObjectName("progressBar")
|
||||
self.gridLayout_5.addWidget(self.progressBar, 1, 0, 1, 2)
|
||||
self.gridLayout_8.addWidget(self.frame_5, 3, 0, 1, 1)
|
||||
self.gridLayout_6.addWidget(self.frame_2, 1, 0, 1, 1)
|
||||
self.frame_3 = QtWidgets.QFrame(spectral_Window_phone)
|
||||
self.frame_3.setMaximumSize(QtCore.QSize(16777215, 200))
|
||||
self.frame_3.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_3.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_3.setObjectName("frame_3")
|
||||
self.gridLayout_10 = QtWidgets.QGridLayout(self.frame_3)
|
||||
self.gridLayout_10.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_10.setSpacing(0)
|
||||
self.gridLayout_10.setObjectName("gridLayout_10")
|
||||
self.frame_9 = QtWidgets.QFrame(self.frame_3)
|
||||
self.frame_9.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_9.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_9.setObjectName("frame_9")
|
||||
self.gridLayout_9 = QtWidgets.QGridLayout(self.frame_9)
|
||||
self.gridLayout_9.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_9.setSpacing(0)
|
||||
self.gridLayout_9.setObjectName("gridLayout_9")
|
||||
self.filename_le = QtWidgets.QLineEdit(self.frame_9)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.filename_le.sizePolicy().hasHeightForWidth())
|
||||
self.filename_le.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(61)
|
||||
self.filename_le.setFont(font)
|
||||
self.filename_le.setStyleSheet("QLineEdit\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:61pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.gridLayout_9.addWidget(self.filename_le, 0, 2, 1, 1)
|
||||
self.label_2 = QtWidgets.QLabel(self.frame_9)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
|
||||
self.label_2.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.label_2.setFont(font)
|
||||
self.label_2.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.gridLayout_9.addWidget(self.label_2, 0, 1, 1, 1)
|
||||
self.file_number_label = QtWidgets.QLabel(self.frame_9)
|
||||
self.file_number_label.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.file_number_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.file_number_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.file_number_label.setObjectName("file_number_label")
|
||||
self.gridLayout_9.addWidget(self.file_number_label, 0, 3, 1, 1)
|
||||
self.frame_10 = QtWidgets.QFrame(self.frame_9)
|
||||
self.frame_10.setMinimumSize(QtCore.QSize(200, 0))
|
||||
self.frame_10.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.frame_10.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_10.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_10.setObjectName("frame_10")
|
||||
self.gridLayout_11 = QtWidgets.QGridLayout(self.frame_10)
|
||||
self.gridLayout_11.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_11.setSpacing(0)
|
||||
self.gridLayout_11.setObjectName("gridLayout_11")
|
||||
self.label_3 = QtWidgets.QLabel(self.frame_10)
|
||||
self.label_3.setMinimumSize(QtCore.QSize(140, 0))
|
||||
self.label_3.setMaximumSize(QtCore.QSize(110, 16777215))
|
||||
self.label_3.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.gridLayout_11.addWidget(self.label_3, 0, 0, 1, 1)
|
||||
self.label_4 = QtWidgets.QLabel(self.frame_10)
|
||||
self.label_4.setMinimumSize(QtCore.QSize(140, 0))
|
||||
self.label_4.setMaximumSize(QtCore.QSize(110, 16777215))
|
||||
self.label_4.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_4.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.gridLayout_11.addWidget(self.label_4, 1, 0, 1, 1)
|
||||
self.spectral_number_le = QtWidgets.QLineEdit(self.frame_10)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.spectral_number_le.sizePolicy().hasHeightForWidth())
|
||||
self.spectral_number_le.setSizePolicy(sizePolicy)
|
||||
self.spectral_number_le.setMinimumSize(QtCore.QSize(60, 0))
|
||||
self.spectral_number_le.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
self.spectral_number_le.setStyleSheet("QLineEdit\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:30pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.spectral_number_le.setObjectName("spectral_number_le")
|
||||
self.gridLayout_11.addWidget(self.spectral_number_le, 1, 2, 1, 1)
|
||||
self.framenumber_average_le = QtWidgets.QLineEdit(self.frame_10)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.framenumber_average_le.sizePolicy().hasHeightForWidth())
|
||||
self.framenumber_average_le.setSizePolicy(sizePolicy)
|
||||
self.framenumber_average_le.setMinimumSize(QtCore.QSize(60, 0))
|
||||
self.framenumber_average_le.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
self.framenumber_average_le.setStyleSheet("QLineEdit\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:30pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.framenumber_average_le.setObjectName("framenumber_average_le")
|
||||
self.gridLayout_11.addWidget(self.framenumber_average_le, 0, 2, 1, 1)
|
||||
self.gridLayout_9.addWidget(self.frame_10, 0, 0, 1, 1)
|
||||
self.gridLayout_10.addWidget(self.frame_9, 0, 0, 1, 1)
|
||||
self.frame_8 = QtWidgets.QFrame(self.frame_3)
|
||||
self.frame_8.setMaximumSize(QtCore.QSize(16777215, 35))
|
||||
self.frame_8.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_8.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_8.setObjectName("frame_8")
|
||||
self.gridLayout_3 = QtWidgets.QGridLayout(self.frame_8)
|
||||
self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_3.setSpacing(0)
|
||||
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||
spacerItem = QtWidgets.QSpacerItem(399, 15, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.gridLayout_3.addItem(spacerItem, 0, 0, 1, 1)
|
||||
self.t_label = QtWidgets.QLabel(self.frame_8)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.t_label.sizePolicy().hasHeightForWidth())
|
||||
self.t_label.setSizePolicy(sizePolicy)
|
||||
self.t_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.t_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.t_label.setObjectName("t_label")
|
||||
self.gridLayout_3.addWidget(self.t_label, 0, 1, 1, 1)
|
||||
self.hum_label = QtWidgets.QLabel(self.frame_8)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.hum_label.sizePolicy().hasHeightForWidth())
|
||||
self.hum_label.setSizePolicy(sizePolicy)
|
||||
self.hum_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.hum_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.hum_label.setObjectName("hum_label")
|
||||
self.gridLayout_3.addWidget(self.hum_label, 0, 2, 1, 1)
|
||||
self.camera_status_label = QtWidgets.QLabel(self.frame_8)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.camera_status_label.sizePolicy().hasHeightForWidth())
|
||||
self.camera_status_label.setSizePolicy(sizePolicy)
|
||||
self.camera_status_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.camera_status_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.camera_status_label.setObjectName("camera_status_label")
|
||||
self.gridLayout_3.addWidget(self.camera_status_label, 0, 3, 1, 1)
|
||||
self.gridLayout_10.addWidget(self.frame_8, 1, 0, 1, 1)
|
||||
self.gridLayout_6.addWidget(self.frame_3, 2, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(spectral_Window_phone)
|
||||
QtCore.QMetaObject.connectSlotsByName(spectral_Window_phone)
|
||||
|
||||
def retranslateUi(self, spectral_Window_phone):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
spectral_Window_phone.setWindowTitle(_translate("spectral_Window_phone", "光谱窗口"))
|
||||
self.spectral_mode_autoexposure_bt.setText(_translate("spectral_Window_phone", "曝 光"))
|
||||
self.dc_timer_label.setText(_translate("spectral_Window_phone", "计时"))
|
||||
self.spectral_mode_dc_bt.setText(_translate("spectral_Window_phone", "暗 电 流"))
|
||||
self.spectral_mode_wb_bt.setText(_translate("spectral_Window_phone", "白 板"))
|
||||
self.wb_timer_label.setText(_translate("spectral_Window_phone", "计时"))
|
||||
self.spectral_mode_record_bt.setText(_translate("spectral_Window_phone", "采 集"))
|
||||
self.data_type_comboBox.setCurrentText(_translate("spectral_Window_phone", "Ref"))
|
||||
self.data_type_comboBox.setItemText(0, _translate("spectral_Window_phone", "Ref"))
|
||||
self.data_type_comboBox.setItemText(1, _translate("spectral_Window_phone", "DN"))
|
||||
self.data_type_comboBox.setItemText(2, _translate("spectral_Window_phone", "Rad"))
|
||||
self.label_2.setText(_translate("spectral_Window_phone", "文 件"))
|
||||
self.file_number_label.setText(_translate("spectral_Window_phone", "文件号"))
|
||||
self.label_3.setText(_translate("spectral_Window_phone", "自动平均"))
|
||||
self.label_4.setText(_translate("spectral_Window_phone", "连续测量"))
|
||||
self.t_label.setText(_translate("spectral_Window_phone", "温度:无数据"))
|
||||
self.hum_label.setText(_translate("spectral_Window_phone", "湿度:无数据"))
|
||||
self.camera_status_label.setText(_translate("spectral_Window_phone", "光谱仪:连接失败"))
|
||||
1057
record_system_v26/ui/spectral_Window_phone.ui
Normal file
1057
record_system_v26/ui/spectral_Window_phone.ui
Normal file
File diff suppressed because it is too large
Load Diff
2304
record_system_v27/2record_system_v27.py
Normal file
2304
record_system_v27/2record_system_v27.py
Normal file
File diff suppressed because it is too large
Load Diff
27
record_system_v27/log/corning_config.ini
Normal file
27
record_system_v27/log/corning_config.ini
Normal file
@ -0,0 +1,27 @@
|
||||
[bin]
|
||||
binning = 1
|
||||
start_column_binning_1 = 12
|
||||
end_column_binning_1 = 1376
|
||||
start_row_binning_1 = 0
|
||||
end_row_binning_1 = 300
|
||||
start_column_binning_2 = 13
|
||||
end_column_binning_2 = 695
|
||||
start_row_binning_2 = 1
|
||||
end_row_binning_2 = 151
|
||||
|
||||
[image_record_param]
|
||||
image_dir = D:\py_program\corning410\record_system_v27/image
|
||||
default_image_name = mnhbjhb
|
||||
framerate = 40
|
||||
exposure_time = 24997
|
||||
gain = 0.0
|
||||
frame_number = 4000
|
||||
arcus_speed = 2000
|
||||
|
||||
[spectral_record_param]
|
||||
spectral_dir = D:\py_program\corning410\record_system_v27/spectral
|
||||
default_spectral_name = lllllll
|
||||
spectral_number = 10
|
||||
framenumber_average = 10
|
||||
exposure_time_spectral = 1000
|
||||
|
||||
0
record_system_v27/ui/__init__.py
Normal file
0
record_system_v27/ui/__init__.py
Normal file
150
record_system_v27/ui/enter_window.py
Normal file
150
record_system_v27/ui/enter_window.py
Normal file
@ -0,0 +1,150 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'enter_window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_enter_Window(object):
|
||||
def setupUi(self, enter_Window):
|
||||
enter_Window.setObjectName("enter_Window")
|
||||
enter_Window.setEnabled(True)
|
||||
enter_Window.resize(651, 474)
|
||||
self.centralwidget = QtWidgets.QWidget(enter_Window)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.camstatus_label = QtWidgets.QLabel(self.centralwidget)
|
||||
self.camstatus_label.setEnabled(True)
|
||||
self.camstatus_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:30pt;\n"
|
||||
" /*字体颜色为白色*/\n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/\n"
|
||||
" background-color:rgb(225 , 225 , 225);\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}")
|
||||
self.camstatus_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.camstatus_label.setObjectName("camstatus_label")
|
||||
self.gridLayout.addWidget(self.camstatus_label, 2, 0, 1, 1)
|
||||
self.spectral_mode_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.spectral_mode_bt.setEnabled(True)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.spectral_mode_bt.sizePolicy().hasHeightForWidth())
|
||||
self.spectral_mode_bt.setSizePolicy(sizePolicy)
|
||||
self.spectral_mode_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.spectral_mode_bt.setObjectName("spectral_mode_bt")
|
||||
self.gridLayout.addWidget(self.spectral_mode_bt, 1, 0, 1, 1)
|
||||
self.image_mode_phone_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.image_mode_phone_bt.setEnabled(True)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.image_mode_phone_bt.sizePolicy().hasHeightForWidth())
|
||||
self.image_mode_phone_bt.setSizePolicy(sizePolicy)
|
||||
self.image_mode_phone_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.image_mode_phone_bt.setObjectName("image_mode_phone_bt")
|
||||
self.gridLayout.addWidget(self.image_mode_phone_bt, 0, 0, 1, 1)
|
||||
enter_Window.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(enter_Window)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 651, 23))
|
||||
self.menubar.setObjectName("menubar")
|
||||
enter_Window.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(enter_Window)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
enter_Window.setStatusBar(self.statusbar)
|
||||
self.actionwew_e = QtWidgets.QAction(enter_Window)
|
||||
self.actionwew_e.setObjectName("actionwew_e")
|
||||
|
||||
self.retranslateUi(enter_Window)
|
||||
QtCore.QMetaObject.connectSlotsByName(enter_Window)
|
||||
|
||||
def retranslateUi(self, enter_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
enter_Window.setWindowTitle(_translate("enter_Window", "主窗口"))
|
||||
self.camstatus_label.setText(_translate("enter_Window", "正在打开相机..."))
|
||||
self.spectral_mode_bt.setText(_translate("enter_Window", "光谱模式"))
|
||||
self.image_mode_phone_bt.setText(_translate("enter_Window", "影像模式"))
|
||||
self.actionwew_e.setText(_translate("enter_Window", "wew e"))
|
||||
178
record_system_v27/ui/enter_window.ui
Normal file
178
record_system_v27/ui/enter_window.ui
Normal file
@ -0,0 +1,178 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>enter_Window</class>
|
||||
<widget class="QMainWindow" name="enter_Window">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>474</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>主窗口</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="camstatus_label">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QLabel
|
||||
{
|
||||
/*字体为微软雅黑*/
|
||||
font-family:Microsoft Yahei;
|
||||
/*字体大小为20点*/
|
||||
font-size:30pt;
|
||||
/*字体颜色为白色*/
|
||||
/*color:white;*/
|
||||
/*背景颜色*/
|
||||
background-color:rgb(225 , 225 , 225);
|
||||
/*边框圆角半径为8像素*/
|
||||
border-radius:20px;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>正在打开相机...</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="spectral_mode_bt">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">/*按钮普通态*/
|
||||
QPushButton
|
||||
{
|
||||
/*字体为微软雅黑*/
|
||||
font-family:Microsoft Yahei;
|
||||
/*字体大小为20点*/
|
||||
font-size:25pt;
|
||||
/*字体颜色为白色*/
|
||||
/*color:white;*/
|
||||
/*背景颜色*/
|
||||
background-color:rgb(225 , 225 , 225);
|
||||
/*边框圆角半径为8像素*/
|
||||
border-radius:20px;
|
||||
}
|
||||
|
||||
/*按钮停留态*/
|
||||
QPushButton:hover
|
||||
{
|
||||
/*背景颜色*/
|
||||
background-color:rgb(44 , 137 , 255);
|
||||
/*边框圆角半径为8像素*/
|
||||
/*border-radius:20px;*/
|
||||
}
|
||||
|
||||
/*按钮按下态*/
|
||||
QPushButton:pressed
|
||||
{
|
||||
/*背景颜色*/
|
||||
background-color:rgb(255 , 0 , 0);
|
||||
|
||||
/*左内边距为3像素,让按下时字向右移动3像素*/
|
||||
padding-left:3px;
|
||||
|
||||
/*上内边距为3像素,让按下时字向下移动3像素*/
|
||||
padding-top:3px;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>光谱模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="image_mode_phone_bt">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">/*按钮普通态*/
|
||||
QPushButton
|
||||
{
|
||||
/*字体为微软雅黑*/
|
||||
font-family:Microsoft Yahei;
|
||||
/*字体大小为20点*/
|
||||
font-size:25pt;
|
||||
/*字体颜色为白色*/
|
||||
/*color:white;*/
|
||||
/*背景颜色*/
|
||||
background-color:rgb(225 , 225 , 225);
|
||||
/*边框圆角半径为8像素*/
|
||||
border-radius:20px;
|
||||
}
|
||||
|
||||
/*按钮停留态*/
|
||||
QPushButton:hover
|
||||
{
|
||||
/*背景颜色*/
|
||||
background-color:rgb(44 , 137 , 255);
|
||||
/*边框圆角半径为8像素*/
|
||||
/*border-radius:20px;*/
|
||||
}
|
||||
|
||||
/*按钮按下态*/
|
||||
QPushButton:pressed
|
||||
{
|
||||
/*背景颜色*/
|
||||
background-color:rgb(255 , 0 , 0);
|
||||
|
||||
/*左内边距为3像素,让按下时字向右移动3像素*/
|
||||
padding-left:3px;
|
||||
|
||||
/*上内边距为3像素,让按下时字向下移动3像素*/
|
||||
padding-top:3px;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>影像模式</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>651</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
<action name="actionwew_e">
|
||||
<property name="text">
|
||||
<string>wew e</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
1358
record_system_v27/ui/image_Window_phone - 副本 (2).ui
Normal file
1358
record_system_v27/ui/image_Window_phone - 副本 (2).ui
Normal file
File diff suppressed because it is too large
Load Diff
868
record_system_v27/ui/image_Window_phone.py
Normal file
868
record_system_v27/ui/image_Window_phone.py
Normal file
@ -0,0 +1,868 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'image_Window_phone.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_image_Window_phone(object):
|
||||
def setupUi(self, image_Window_phone):
|
||||
image_Window_phone.setObjectName("image_Window_phone")
|
||||
image_Window_phone.setEnabled(True)
|
||||
image_Window_phone.resize(562, 1174)
|
||||
image_Window_phone.setMouseTracking(False)
|
||||
image_Window_phone.setAutoFillBackground(False)
|
||||
image_Window_phone.setSizeGripEnabled(False)
|
||||
image_Window_phone.setModal(False)
|
||||
self.gridLayout_6 = QtWidgets.QGridLayout(image_Window_phone)
|
||||
self.gridLayout_6.setObjectName("gridLayout_6")
|
||||
self.frame_3 = QtWidgets.QFrame(image_Window_phone)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.frame_3.sizePolicy().hasHeightForWidth())
|
||||
self.frame_3.setSizePolicy(sizePolicy)
|
||||
self.frame_3.setMaximumSize(QtCore.QSize(16777215, 600))
|
||||
self.frame_3.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_3.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_3.setObjectName("frame_3")
|
||||
self.gridLayout_5 = QtWidgets.QGridLayout(self.frame_3)
|
||||
self.gridLayout_5.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_5.setObjectName("gridLayout_5")
|
||||
self.frame_7 = QtWidgets.QFrame(self.frame_3)
|
||||
self.frame_7.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_7.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_7.setObjectName("frame_7")
|
||||
self.gridLayout_4 = QtWidgets.QGridLayout(self.frame_7)
|
||||
self.gridLayout_4.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_4.setObjectName("gridLayout_4")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.image_mode_focus_bt = QtWidgets.QPushButton(self.frame_7)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.image_mode_focus_bt.sizePolicy().hasHeightForWidth())
|
||||
self.image_mode_focus_bt.setSizePolicy(sizePolicy)
|
||||
self.image_mode_focus_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.image_mode_focus_bt.setFont(font)
|
||||
self.image_mode_focus_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.image_mode_focus_bt.setAutoDefault(False)
|
||||
self.image_mode_focus_bt.setObjectName("image_mode_focus_bt")
|
||||
self.verticalLayout.addWidget(self.image_mode_focus_bt)
|
||||
self.image_mode_exposureTime_bt = QtWidgets.QPushButton(self.frame_7)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.image_mode_exposureTime_bt.sizePolicy().hasHeightForWidth())
|
||||
self.image_mode_exposureTime_bt.setSizePolicy(sizePolicy)
|
||||
self.image_mode_exposureTime_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.image_mode_exposureTime_bt.setFont(font)
|
||||
self.image_mode_exposureTime_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.image_mode_exposureTime_bt.setAutoDefault(False)
|
||||
self.image_mode_exposureTime_bt.setObjectName("image_mode_exposureTime_bt")
|
||||
self.verticalLayout.addWidget(self.image_mode_exposureTime_bt)
|
||||
self.image_mode_dc_bt = QtWidgets.QPushButton(self.frame_7)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.image_mode_dc_bt.sizePolicy().hasHeightForWidth())
|
||||
self.image_mode_dc_bt.setSizePolicy(sizePolicy)
|
||||
self.image_mode_dc_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.image_mode_dc_bt.setFont(font)
|
||||
self.image_mode_dc_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.image_mode_dc_bt.setAutoDefault(False)
|
||||
self.image_mode_dc_bt.setObjectName("image_mode_dc_bt")
|
||||
self.verticalLayout.addWidget(self.image_mode_dc_bt)
|
||||
self.image_mode_record_bt = QtWidgets.QPushButton(self.frame_7)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.image_mode_record_bt.sizePolicy().hasHeightForWidth())
|
||||
self.image_mode_record_bt.setSizePolicy(sizePolicy)
|
||||
self.image_mode_record_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.image_mode_record_bt.setFont(font)
|
||||
self.image_mode_record_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.image_mode_record_bt.setAutoDefault(False)
|
||||
self.image_mode_record_bt.setObjectName("image_mode_record_bt")
|
||||
self.verticalLayout.addWidget(self.image_mode_record_bt)
|
||||
self.save_bt = QtWidgets.QPushButton(self.frame_7)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.save_bt.sizePolicy().hasHeightForWidth())
|
||||
self.save_bt.setSizePolicy(sizePolicy)
|
||||
self.save_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.save_bt.setFont(font)
|
||||
self.save_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.save_bt.setAutoDefault(False)
|
||||
self.save_bt.setObjectName("save_bt")
|
||||
self.verticalLayout.addWidget(self.save_bt)
|
||||
self.gridLayout_4.addLayout(self.verticalLayout, 0, 0, 1, 1)
|
||||
self.gridLayout_5.addWidget(self.frame_7, 0, 0, 1, 1)
|
||||
self.frame_6 = QtWidgets.QFrame(self.frame_3)
|
||||
self.frame_6.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_6.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_6.setObjectName("frame_6")
|
||||
self.gridLayout_3 = QtWidgets.QGridLayout(self.frame_6)
|
||||
self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||
self.frame_10 = QtWidgets.QFrame(self.frame_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.frame_10.sizePolicy().hasHeightForWidth())
|
||||
self.frame_10.setSizePolicy(sizePolicy)
|
||||
self.frame_10.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_10.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_10.setObjectName("frame_10")
|
||||
self.gridLayout_8 = QtWidgets.QGridLayout(self.frame_10)
|
||||
self.gridLayout_8.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_8.setSpacing(0)
|
||||
self.gridLayout_8.setObjectName("gridLayout_8")
|
||||
self.rad_dn_comboBox = QtWidgets.QComboBox(self.frame_10)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.rad_dn_comboBox.sizePolicy().hasHeightForWidth())
|
||||
self.rad_dn_comboBox.setSizePolicy(sizePolicy)
|
||||
self.rad_dn_comboBox.setMinimumSize(QtCore.QSize(90, 0))
|
||||
self.rad_dn_comboBox.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QComboBox\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}")
|
||||
self.rad_dn_comboBox.setObjectName("rad_dn_comboBox")
|
||||
self.rad_dn_comboBox.addItem("")
|
||||
self.rad_dn_comboBox.addItem("")
|
||||
self.gridLayout_8.addWidget(self.rad_dn_comboBox, 0, 2, 1, 1)
|
||||
self.framenumber_le = QtWidgets.QLineEdit(self.frame_10)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.framenumber_le.sizePolicy().hasHeightForWidth())
|
||||
self.framenumber_le.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(42)
|
||||
self.framenumber_le.setFont(font)
|
||||
self.framenumber_le.setObjectName("framenumber_le")
|
||||
self.gridLayout_8.addWidget(self.framenumber_le, 0, 1, 1, 1)
|
||||
self.arcus_direction_bt = QtWidgets.QPushButton(self.frame_10)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.arcus_direction_bt.sizePolicy().hasHeightForWidth())
|
||||
self.arcus_direction_bt.setSizePolicy(sizePolicy)
|
||||
self.arcus_direction_bt.setMinimumSize(QtCore.QSize(90, 0))
|
||||
self.arcus_direction_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.arcus_direction_bt.setFont(font)
|
||||
self.arcus_direction_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.arcus_direction_bt.setAutoDefault(False)
|
||||
self.arcus_direction_bt.setObjectName("arcus_direction_bt")
|
||||
self.gridLayout_8.addWidget(self.arcus_direction_bt, 0, 3, 1, 1)
|
||||
self.label_2 = QtWidgets.QLabel(self.frame_10)
|
||||
self.label_2.setMinimumSize(QtCore.QSize(110, 0))
|
||||
self.label_2.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:20pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.gridLayout_8.addWidget(self.label_2, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.frame_10, 4, 0, 1, 1)
|
||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.label_3 = QtWidgets.QLabel(self.frame_6)
|
||||
self.label_3.setMinimumSize(QtCore.QSize(110, 0))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(20)
|
||||
self.label_3.setFont(font)
|
||||
self.label_3.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:20pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.horizontalLayout_3.addWidget(self.label_3)
|
||||
self.framerate_le = QtWidgets.QLineEdit(self.frame_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.framerate_le.sizePolicy().hasHeightForWidth())
|
||||
self.framerate_le.setSizePolicy(sizePolicy)
|
||||
self.framerate_le.setMaximumSize(QtCore.QSize(16777215, 106))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(42)
|
||||
self.framerate_le.setFont(font)
|
||||
self.framerate_le.setReadOnly(False)
|
||||
self.framerate_le.setObjectName("framerate_le")
|
||||
self.horizontalLayout_3.addWidget(self.framerate_le)
|
||||
self.framenumber_recorded_label = QtWidgets.QLabel(self.frame_6)
|
||||
self.framenumber_recorded_label.setMinimumSize(QtCore.QSize(180, 0))
|
||||
self.framenumber_recorded_label.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.framenumber_recorded_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.framenumber_recorded_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.framenumber_recorded_label.setObjectName("framenumber_recorded_label")
|
||||
self.horizontalLayout_3.addWidget(self.framenumber_recorded_label)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_3, 1, 0, 1, 1)
|
||||
self.frame_9 = QtWidgets.QFrame(self.frame_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.frame_9.sizePolicy().hasHeightForWidth())
|
||||
self.frame_9.setSizePolicy(sizePolicy)
|
||||
self.frame_9.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_9.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_9.setLineWidth(0)
|
||||
self.frame_9.setObjectName("frame_9")
|
||||
self.gridLayout_7 = QtWidgets.QGridLayout(self.frame_9)
|
||||
self.gridLayout_7.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_7.setSpacing(0)
|
||||
self.gridLayout_7.setObjectName("gridLayout_7")
|
||||
self.filename_le = QtWidgets.QLineEdit(self.frame_9)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.filename_le.sizePolicy().hasHeightForWidth())
|
||||
self.filename_le.setSizePolicy(sizePolicy)
|
||||
self.filename_le.setMaximumSize(QtCore.QSize(16777215, 106))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(42)
|
||||
self.filename_le.setFont(font)
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.gridLayout_7.addWidget(self.filename_le, 0, 1, 1, 1)
|
||||
self.label_6 = QtWidgets.QLabel(self.frame_9)
|
||||
self.label_6.setMinimumSize(QtCore.QSize(110, 0))
|
||||
self.label_6.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:20pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_6.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_6.setObjectName("label_6")
|
||||
self.gridLayout_7.addWidget(self.label_6, 0, 0, 1, 1)
|
||||
self.file_number_label = QtWidgets.QLabel(self.frame_9)
|
||||
self.file_number_label.setMinimumSize(QtCore.QSize(180, 0))
|
||||
self.file_number_label.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.file_number_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.file_number_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.file_number_label.setObjectName("file_number_label")
|
||||
self.gridLayout_7.addWidget(self.file_number_label, 0, 2, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.frame_9, 6, 0, 1, 1)
|
||||
self.frame_5 = QtWidgets.QFrame(self.frame_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.frame_5.sizePolicy().hasHeightForWidth())
|
||||
self.frame_5.setSizePolicy(sizePolicy)
|
||||
self.frame_5.setMinimumSize(QtCore.QSize(160, 0))
|
||||
self.frame_5.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_5.setObjectName("frame_5")
|
||||
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.frame_5)
|
||||
self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
self.label_7 = QtWidgets.QLabel(self.frame_5)
|
||||
self.label_7.setMinimumSize(QtCore.QSize(110, 0))
|
||||
self.label_7.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:20pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_7.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_7.setObjectName("label_7")
|
||||
self.horizontalLayout_2.addWidget(self.label_7)
|
||||
self.arcus_left_bt = QtWidgets.QPushButton(self.frame_5)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.arcus_left_bt.sizePolicy().hasHeightForWidth())
|
||||
self.arcus_left_bt.setSizePolicy(sizePolicy)
|
||||
self.arcus_left_bt.setMinimumSize(QtCore.QSize(50, 0))
|
||||
self.arcus_left_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.arcus_left_bt.setFont(font)
|
||||
self.arcus_left_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.arcus_left_bt.setAutoDefault(False)
|
||||
self.arcus_left_bt.setObjectName("arcus_left_bt")
|
||||
self.horizontalLayout_2.addWidget(self.arcus_left_bt)
|
||||
self.arcus_speed_le = QtWidgets.QLineEdit(self.frame_5)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.arcus_speed_le.sizePolicy().hasHeightForWidth())
|
||||
self.arcus_speed_le.setSizePolicy(sizePolicy)
|
||||
self.arcus_speed_le.setMinimumSize(QtCore.QSize(60, 0))
|
||||
self.arcus_speed_le.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(42)
|
||||
self.arcus_speed_le.setFont(font)
|
||||
self.arcus_speed_le.setObjectName("arcus_speed_le")
|
||||
self.horizontalLayout_2.addWidget(self.arcus_speed_le)
|
||||
self.arcus_right_bt = QtWidgets.QPushButton(self.frame_5)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.arcus_right_bt.sizePolicy().hasHeightForWidth())
|
||||
self.arcus_right_bt.setSizePolicy(sizePolicy)
|
||||
self.arcus_right_bt.setMinimumSize(QtCore.QSize(50, 0))
|
||||
self.arcus_right_bt.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.arcus_right_bt.setFont(font)
|
||||
self.arcus_right_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.arcus_right_bt.setAutoDefault(False)
|
||||
self.arcus_right_bt.setObjectName("arcus_right_bt")
|
||||
self.horizontalLayout_2.addWidget(self.arcus_right_bt)
|
||||
self.gridLayout_3.addWidget(self.frame_5, 3, 0, 1, 1)
|
||||
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
||||
self.label_5 = QtWidgets.QLabel(self.frame_6)
|
||||
self.label_5.setMinimumSize(QtCore.QSize(110, 0))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(20)
|
||||
self.label_5.setFont(font)
|
||||
self.label_5.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:20pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.horizontalLayout_4.addWidget(self.label_5)
|
||||
self.exposure_time_le = QtWidgets.QLineEdit(self.frame_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.exposure_time_le.sizePolicy().hasHeightForWidth())
|
||||
self.exposure_time_le.setSizePolicy(sizePolicy)
|
||||
self.exposure_time_le.setMaximumSize(QtCore.QSize(16777215, 106))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(42)
|
||||
self.exposure_time_le.setFont(font)
|
||||
self.exposure_time_le.setObjectName("exposure_time_le")
|
||||
self.horizontalLayout_4.addWidget(self.exposure_time_le)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_4, 2, 0, 1, 1)
|
||||
self.gridLayout_5.addWidget(self.frame_6, 0, 1, 1, 1)
|
||||
self.gridLayout_6.addWidget(self.frame_3, 1, 0, 1, 1)
|
||||
self.frame_4 = QtWidgets.QFrame(image_Window_phone)
|
||||
self.frame_4.setMinimumSize(QtCore.QSize(0, 0))
|
||||
self.frame_4.setMaximumSize(QtCore.QSize(16777215, 35))
|
||||
self.frame_4.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_4.setObjectName("frame_4")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.frame_4)
|
||||
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.horizontalLayout.setSpacing(0)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
spacerItem = QtWidgets.QSpacerItem(233, 12, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout.addItem(spacerItem)
|
||||
self.t_label = QtWidgets.QLabel(self.frame_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.t_label.sizePolicy().hasHeightForWidth())
|
||||
self.t_label.setSizePolicy(sizePolicy)
|
||||
self.t_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.t_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.t_label.setObjectName("t_label")
|
||||
self.horizontalLayout.addWidget(self.t_label)
|
||||
self.hum_label = QtWidgets.QLabel(self.frame_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.hum_label.sizePolicy().hasHeightForWidth())
|
||||
self.hum_label.setSizePolicy(sizePolicy)
|
||||
self.hum_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.hum_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.hum_label.setObjectName("hum_label")
|
||||
self.horizontalLayout.addWidget(self.hum_label)
|
||||
self.camera_status_label = QtWidgets.QLabel(self.frame_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.camera_status_label.sizePolicy().hasHeightForWidth())
|
||||
self.camera_status_label.setSizePolicy(sizePolicy)
|
||||
self.camera_status_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.camera_status_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.camera_status_label.setObjectName("camera_status_label")
|
||||
self.horizontalLayout.addWidget(self.camera_status_label)
|
||||
self.arcus_status_label = QtWidgets.QLabel(self.frame_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.arcus_status_label.sizePolicy().hasHeightForWidth())
|
||||
self.arcus_status_label.setSizePolicy(sizePolicy)
|
||||
self.arcus_status_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.arcus_status_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.arcus_status_label.setObjectName("arcus_status_label")
|
||||
self.horizontalLayout.addWidget(self.arcus_status_label)
|
||||
self.gridLayout_6.addWidget(self.frame_4, 2, 0, 1, 1)
|
||||
self.splitter = QtWidgets.QSplitter(image_Window_phone)
|
||||
self.splitter.setOrientation(QtCore.Qt.Vertical)
|
||||
self.splitter.setObjectName("splitter")
|
||||
self.frame_2 = QtWidgets.QFrame(self.splitter)
|
||||
self.frame_2.setFrameShape(QtWidgets.QFrame.Box)
|
||||
self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_2.setObjectName("frame_2")
|
||||
self.gridLayout_2 = QtWidgets.QGridLayout(self.frame_2)
|
||||
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||
self.image_glo = QtWidgets.QGridLayout()
|
||||
self.image_glo.setObjectName("image_glo")
|
||||
self.gridLayout_2.addLayout(self.image_glo, 0, 0, 1, 1)
|
||||
self.frame = QtWidgets.QFrame(self.splitter)
|
||||
self.frame.setMaximumSize(QtCore.QSize(16777215, 600))
|
||||
self.frame.setFrameShape(QtWidgets.QFrame.Box)
|
||||
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame.setObjectName("frame")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.frame)
|
||||
self.gridLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.focus_glo = QtWidgets.QGridLayout()
|
||||
self.focus_glo.setObjectName("focus_glo")
|
||||
self.gridLayout.addLayout(self.focus_glo, 0, 0, 1, 1)
|
||||
self.gridLayout_6.addWidget(self.splitter, 0, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(image_Window_phone)
|
||||
QtCore.QMetaObject.connectSlotsByName(image_Window_phone)
|
||||
|
||||
def retranslateUi(self, image_Window_phone):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
image_Window_phone.setWindowTitle(_translate("image_Window_phone", "影像窗口"))
|
||||
self.image_mode_focus_bt.setText(_translate("image_Window_phone", "调 焦"))
|
||||
self.image_mode_exposureTime_bt.setText(_translate("image_Window_phone", "曝 光"))
|
||||
self.image_mode_dc_bt.setText(_translate("image_Window_phone", "暗 电 流"))
|
||||
self.image_mode_record_bt.setText(_translate("image_Window_phone", "采 集"))
|
||||
self.save_bt.setText(_translate("image_Window_phone", "保 存"))
|
||||
self.rad_dn_comboBox.setItemText(0, _translate("image_Window_phone", "rad"))
|
||||
self.rad_dn_comboBox.setItemText(1, _translate("image_Window_phone", "dn"))
|
||||
self.arcus_direction_bt.setText(_translate("image_Window_phone", "反转"))
|
||||
self.label_2.setText(_translate("image_Window_phone", "帧 数"))
|
||||
self.label_3.setText(_translate("image_Window_phone", "帧 率"))
|
||||
self.framenumber_recorded_label.setText(_translate("image_Window_phone", "文件号"))
|
||||
self.label_6.setText(_translate("image_Window_phone", "命 名"))
|
||||
self.file_number_label.setText(_translate("image_Window_phone", "文件号"))
|
||||
self.label_7.setText(_translate("image_Window_phone", "马 达"))
|
||||
self.arcus_left_bt.setText(_translate("image_Window_phone", "<"))
|
||||
self.arcus_right_bt.setText(_translate("image_Window_phone", ">"))
|
||||
self.label_5.setText(_translate("image_Window_phone", "积分时间"))
|
||||
self.t_label.setText(_translate("image_Window_phone", "温度:无数据"))
|
||||
self.hum_label.setText(_translate("image_Window_phone", "湿度:无数据"))
|
||||
self.camera_status_label.setText(_translate("image_Window_phone", "光谱仪:连接失败"))
|
||||
self.arcus_status_label.setText(_translate("image_Window_phone", "马达:连接失败!"))
|
||||
1395
record_system_v27/ui/image_Window_phone.ui
Normal file
1395
record_system_v27/ui/image_Window_phone.ui
Normal file
File diff suppressed because it is too large
Load Diff
629
record_system_v27/ui/spectral_Window_phone.py
Normal file
629
record_system_v27/ui/spectral_Window_phone.py
Normal file
@ -0,0 +1,629 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'spectral_Window_phone.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_spectral_Window_phone(object):
|
||||
def setupUi(self, spectral_Window_phone):
|
||||
spectral_Window_phone.setObjectName("spectral_Window_phone")
|
||||
spectral_Window_phone.resize(540, 1175)
|
||||
self.gridLayout_6 = QtWidgets.QGridLayout(spectral_Window_phone)
|
||||
self.gridLayout_6.setObjectName("gridLayout_6")
|
||||
self.frame = QtWidgets.QFrame(spectral_Window_phone)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
|
||||
self.frame.setSizePolicy(sizePolicy)
|
||||
self.frame.setMinimumSize(QtCore.QSize(0, 600))
|
||||
self.frame.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame.setObjectName("frame")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.frame)
|
||||
self.gridLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.spe_glo = QtWidgets.QGridLayout()
|
||||
self.spe_glo.setObjectName("spe_glo")
|
||||
self.gridLayout.addLayout(self.spe_glo, 0, 0, 1, 1)
|
||||
self.gridLayout_6.addWidget(self.frame, 0, 0, 1, 1)
|
||||
self.frame_2 = QtWidgets.QFrame(spectral_Window_phone)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.frame_2.sizePolicy().hasHeightForWidth())
|
||||
self.frame_2.setSizePolicy(sizePolicy)
|
||||
self.frame_2.setMaximumSize(QtCore.QSize(16777215, 600))
|
||||
self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_2.setObjectName("frame_2")
|
||||
self.gridLayout_8 = QtWidgets.QGridLayout(self.frame_2)
|
||||
self.gridLayout_8.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_8.setSpacing(0)
|
||||
self.gridLayout_8.setObjectName("gridLayout_8")
|
||||
self.frame_4 = QtWidgets.QFrame(self.frame_2)
|
||||
self.frame_4.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_4.setObjectName("frame_4")
|
||||
self.gridLayout_4 = QtWidgets.QGridLayout(self.frame_4)
|
||||
self.gridLayout_4.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_4.setSpacing(0)
|
||||
self.gridLayout_4.setObjectName("gridLayout_4")
|
||||
self.spectral_mode_autoexposure_bt = QtWidgets.QPushButton(self.frame_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.spectral_mode_autoexposure_bt.sizePolicy().hasHeightForWidth())
|
||||
self.spectral_mode_autoexposure_bt.setSizePolicy(sizePolicy)
|
||||
self.spectral_mode_autoexposure_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.spectral_mode_autoexposure_bt.setAutoDefault(False)
|
||||
self.spectral_mode_autoexposure_bt.setObjectName("spectral_mode_autoexposure_bt")
|
||||
self.gridLayout_4.addWidget(self.spectral_mode_autoexposure_bt, 0, 0, 1, 1)
|
||||
self.autoexposure_le = QtWidgets.QLineEdit(self.frame_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.autoexposure_le.sizePolicy().hasHeightForWidth())
|
||||
self.autoexposure_le.setSizePolicy(sizePolicy)
|
||||
self.autoexposure_le.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.autoexposure_le.setStyleSheet("QLineEdit\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:40pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.autoexposure_le.setObjectName("autoexposure_le")
|
||||
self.gridLayout_4.addWidget(self.autoexposure_le, 0, 1, 1, 1)
|
||||
self.gridLayout_8.addWidget(self.frame_4, 0, 0, 1, 1)
|
||||
self.frame_6 = QtWidgets.QFrame(self.frame_2)
|
||||
self.frame_6.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_6.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_6.setObjectName("frame_6")
|
||||
self.gridLayout_2 = QtWidgets.QGridLayout(self.frame_6)
|
||||
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_2.setSpacing(0)
|
||||
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||
self.dc_timer_label = QtWidgets.QLabel(self.frame_6)
|
||||
self.dc_timer_label.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.dc_timer_label.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.dc_timer_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.dc_timer_label.setObjectName("dc_timer_label")
|
||||
self.gridLayout_2.addWidget(self.dc_timer_label, 0, 1, 1, 1)
|
||||
self.spectral_mode_dc_bt = QtWidgets.QPushButton(self.frame_6)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.spectral_mode_dc_bt.sizePolicy().hasHeightForWidth())
|
||||
self.spectral_mode_dc_bt.setSizePolicy(sizePolicy)
|
||||
self.spectral_mode_dc_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.spectral_mode_dc_bt.setAutoDefault(False)
|
||||
self.spectral_mode_dc_bt.setObjectName("spectral_mode_dc_bt")
|
||||
self.gridLayout_2.addWidget(self.spectral_mode_dc_bt, 0, 0, 1, 1)
|
||||
self.gridLayout_8.addWidget(self.frame_6, 1, 0, 1, 1)
|
||||
self.frame_7 = QtWidgets.QFrame(self.frame_2)
|
||||
self.frame_7.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_7.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_7.setObjectName("frame_7")
|
||||
self.gridLayout_7 = QtWidgets.QGridLayout(self.frame_7)
|
||||
self.gridLayout_7.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_7.setSpacing(0)
|
||||
self.gridLayout_7.setObjectName("gridLayout_7")
|
||||
self.spectral_mode_wb_bt = QtWidgets.QPushButton(self.frame_7)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.spectral_mode_wb_bt.sizePolicy().hasHeightForWidth())
|
||||
self.spectral_mode_wb_bt.setSizePolicy(sizePolicy)
|
||||
self.spectral_mode_wb_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.spectral_mode_wb_bt.setAutoDefault(False)
|
||||
self.spectral_mode_wb_bt.setObjectName("spectral_mode_wb_bt")
|
||||
self.gridLayout_7.addWidget(self.spectral_mode_wb_bt, 0, 0, 1, 1)
|
||||
self.wb_timer_label = QtWidgets.QLabel(self.frame_7)
|
||||
self.wb_timer_label.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.wb_timer_label.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.wb_timer_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.wb_timer_label.setObjectName("wb_timer_label")
|
||||
self.gridLayout_7.addWidget(self.wb_timer_label, 0, 1, 1, 1)
|
||||
self.gridLayout_8.addWidget(self.frame_7, 2, 0, 1, 1)
|
||||
self.frame_5 = QtWidgets.QFrame(self.frame_2)
|
||||
self.frame_5.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_5.setObjectName("frame_5")
|
||||
self.gridLayout_5 = QtWidgets.QGridLayout(self.frame_5)
|
||||
self.gridLayout_5.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_5.setSpacing(0)
|
||||
self.gridLayout_5.setObjectName("gridLayout_5")
|
||||
self.spectral_mode_record_bt = QtWidgets.QPushButton(self.frame_5)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.spectral_mode_record_bt.sizePolicy().hasHeightForWidth())
|
||||
self.spectral_mode_record_bt.setSizePolicy(sizePolicy)
|
||||
self.spectral_mode_record_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);/*hover*/\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);/*pressed*/\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.spectral_mode_record_bt.setAutoDefault(False)
|
||||
self.spectral_mode_record_bt.setObjectName("spectral_mode_record_bt")
|
||||
self.gridLayout_5.addWidget(self.spectral_mode_record_bt, 0, 0, 1, 1)
|
||||
self.data_type_comboBox = QtWidgets.QComboBox(self.frame_5)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.data_type_comboBox.sizePolicy().hasHeightForWidth())
|
||||
self.data_type_comboBox.setSizePolicy(sizePolicy)
|
||||
self.data_type_comboBox.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.data_type_comboBox.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QComboBox\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}")
|
||||
self.data_type_comboBox.setFrame(False)
|
||||
self.data_type_comboBox.setObjectName("data_type_comboBox")
|
||||
self.data_type_comboBox.addItem("")
|
||||
self.data_type_comboBox.addItem("")
|
||||
self.data_type_comboBox.addItem("")
|
||||
self.gridLayout_5.addWidget(self.data_type_comboBox, 0, 1, 1, 1)
|
||||
self.progressBar = QtWidgets.QProgressBar(self.frame_5)
|
||||
self.progressBar.setProperty("value", 0)
|
||||
self.progressBar.setTextVisible(False)
|
||||
self.progressBar.setObjectName("progressBar")
|
||||
self.gridLayout_5.addWidget(self.progressBar, 1, 0, 1, 2)
|
||||
self.gridLayout_8.addWidget(self.frame_5, 3, 0, 1, 1)
|
||||
self.gridLayout_6.addWidget(self.frame_2, 1, 0, 1, 1)
|
||||
self.frame_3 = QtWidgets.QFrame(spectral_Window_phone)
|
||||
self.frame_3.setMaximumSize(QtCore.QSize(16777215, 200))
|
||||
self.frame_3.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_3.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_3.setObjectName("frame_3")
|
||||
self.gridLayout_10 = QtWidgets.QGridLayout(self.frame_3)
|
||||
self.gridLayout_10.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_10.setSpacing(0)
|
||||
self.gridLayout_10.setObjectName("gridLayout_10")
|
||||
self.frame_9 = QtWidgets.QFrame(self.frame_3)
|
||||
self.frame_9.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_9.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_9.setObjectName("frame_9")
|
||||
self.gridLayout_9 = QtWidgets.QGridLayout(self.frame_9)
|
||||
self.gridLayout_9.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_9.setSpacing(0)
|
||||
self.gridLayout_9.setObjectName("gridLayout_9")
|
||||
self.filename_le = QtWidgets.QLineEdit(self.frame_9)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.filename_le.sizePolicy().hasHeightForWidth())
|
||||
self.filename_le.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(61)
|
||||
self.filename_le.setFont(font)
|
||||
self.filename_le.setStyleSheet("QLineEdit\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:61pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.filename_le.setObjectName("filename_le")
|
||||
self.gridLayout_9.addWidget(self.filename_le, 0, 2, 1, 1)
|
||||
self.label_2 = QtWidgets.QLabel(self.frame_9)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
|
||||
self.label_2.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft Yahei")
|
||||
font.setPointSize(25)
|
||||
self.label_2.setFont(font)
|
||||
self.label_2.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.gridLayout_9.addWidget(self.label_2, 0, 1, 1, 1)
|
||||
self.file_number_label = QtWidgets.QLabel(self.frame_9)
|
||||
self.file_number_label.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.file_number_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.file_number_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.file_number_label.setObjectName("file_number_label")
|
||||
self.gridLayout_9.addWidget(self.file_number_label, 0, 3, 1, 1)
|
||||
self.frame_10 = QtWidgets.QFrame(self.frame_9)
|
||||
self.frame_10.setMinimumSize(QtCore.QSize(200, 0))
|
||||
self.frame_10.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
self.frame_10.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_10.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_10.setObjectName("frame_10")
|
||||
self.gridLayout_11 = QtWidgets.QGridLayout(self.frame_10)
|
||||
self.gridLayout_11.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_11.setSpacing(0)
|
||||
self.gridLayout_11.setObjectName("gridLayout_11")
|
||||
self.label_3 = QtWidgets.QLabel(self.frame_10)
|
||||
self.label_3.setMinimumSize(QtCore.QSize(140, 0))
|
||||
self.label_3.setMaximumSize(QtCore.QSize(110, 16777215))
|
||||
self.label_3.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.gridLayout_11.addWidget(self.label_3, 0, 0, 1, 1)
|
||||
self.label_4 = QtWidgets.QLabel(self.frame_10)
|
||||
self.label_4.setMinimumSize(QtCore.QSize(140, 0))
|
||||
self.label_4.setMaximumSize(QtCore.QSize(110, 16777215))
|
||||
self.label_4.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.label_4.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.gridLayout_11.addWidget(self.label_4, 1, 0, 1, 1)
|
||||
self.spectral_number_le = QtWidgets.QLineEdit(self.frame_10)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.spectral_number_le.sizePolicy().hasHeightForWidth())
|
||||
self.spectral_number_le.setSizePolicy(sizePolicy)
|
||||
self.spectral_number_le.setMinimumSize(QtCore.QSize(60, 0))
|
||||
self.spectral_number_le.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
self.spectral_number_le.setStyleSheet("QLineEdit\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:30pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.spectral_number_le.setObjectName("spectral_number_le")
|
||||
self.gridLayout_11.addWidget(self.spectral_number_le, 1, 2, 1, 1)
|
||||
self.framenumber_average_le = QtWidgets.QLineEdit(self.frame_10)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.framenumber_average_le.sizePolicy().hasHeightForWidth())
|
||||
self.framenumber_average_le.setSizePolicy(sizePolicy)
|
||||
self.framenumber_average_le.setMinimumSize(QtCore.QSize(60, 0))
|
||||
self.framenumber_average_le.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
self.framenumber_average_le.setStyleSheet("QLineEdit\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:30pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" /*background-color:rgb(14 , 150 , 254);*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" /*border-radius:8px;*/\n"
|
||||
"}")
|
||||
self.framenumber_average_le.setObjectName("framenumber_average_le")
|
||||
self.gridLayout_11.addWidget(self.framenumber_average_le, 0, 2, 1, 1)
|
||||
self.gridLayout_9.addWidget(self.frame_10, 0, 0, 1, 1)
|
||||
self.gridLayout_10.addWidget(self.frame_9, 0, 0, 1, 1)
|
||||
self.frame_8 = QtWidgets.QFrame(self.frame_3)
|
||||
self.frame_8.setMaximumSize(QtCore.QSize(16777215, 35))
|
||||
self.frame_8.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.frame_8.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
self.frame_8.setObjectName("frame_8")
|
||||
self.gridLayout_3 = QtWidgets.QGridLayout(self.frame_8)
|
||||
self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_3.setSpacing(0)
|
||||
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||
spacerItem = QtWidgets.QSpacerItem(399, 15, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.gridLayout_3.addItem(spacerItem, 0, 0, 1, 1)
|
||||
self.t_label = QtWidgets.QLabel(self.frame_8)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.t_label.sizePolicy().hasHeightForWidth())
|
||||
self.t_label.setSizePolicy(sizePolicy)
|
||||
self.t_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.t_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.t_label.setObjectName("t_label")
|
||||
self.gridLayout_3.addWidget(self.t_label, 0, 1, 1, 1)
|
||||
self.hum_label = QtWidgets.QLabel(self.frame_8)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.hum_label.sizePolicy().hasHeightForWidth())
|
||||
self.hum_label.setSizePolicy(sizePolicy)
|
||||
self.hum_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.hum_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.hum_label.setObjectName("hum_label")
|
||||
self.gridLayout_3.addWidget(self.hum_label, 0, 2, 1, 1)
|
||||
self.camera_status_label = QtWidgets.QLabel(self.frame_8)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.camera_status_label.sizePolicy().hasHeightForWidth())
|
||||
self.camera_status_label.setSizePolicy(sizePolicy)
|
||||
self.camera_status_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" background-color:rgb(255 , 0 , 0);/*normal*/\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:10px;\n"
|
||||
"}")
|
||||
self.camera_status_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.camera_status_label.setObjectName("camera_status_label")
|
||||
self.gridLayout_3.addWidget(self.camera_status_label, 0, 3, 1, 1)
|
||||
self.gridLayout_10.addWidget(self.frame_8, 1, 0, 1, 1)
|
||||
self.gridLayout_6.addWidget(self.frame_3, 2, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(spectral_Window_phone)
|
||||
QtCore.QMetaObject.connectSlotsByName(spectral_Window_phone)
|
||||
|
||||
def retranslateUi(self, spectral_Window_phone):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
spectral_Window_phone.setWindowTitle(_translate("spectral_Window_phone", "光谱窗口"))
|
||||
self.spectral_mode_autoexposure_bt.setText(_translate("spectral_Window_phone", "曝 光"))
|
||||
self.dc_timer_label.setText(_translate("spectral_Window_phone", "计时"))
|
||||
self.spectral_mode_dc_bt.setText(_translate("spectral_Window_phone", "暗 电 流"))
|
||||
self.spectral_mode_wb_bt.setText(_translate("spectral_Window_phone", "白 板"))
|
||||
self.wb_timer_label.setText(_translate("spectral_Window_phone", "计时"))
|
||||
self.spectral_mode_record_bt.setText(_translate("spectral_Window_phone", "采 集"))
|
||||
self.data_type_comboBox.setCurrentText(_translate("spectral_Window_phone", "Ref"))
|
||||
self.data_type_comboBox.setItemText(0, _translate("spectral_Window_phone", "Ref"))
|
||||
self.data_type_comboBox.setItemText(1, _translate("spectral_Window_phone", "DN"))
|
||||
self.data_type_comboBox.setItemText(2, _translate("spectral_Window_phone", "Rad"))
|
||||
self.label_2.setText(_translate("spectral_Window_phone", "文 件"))
|
||||
self.file_number_label.setText(_translate("spectral_Window_phone", "文件号"))
|
||||
self.label_3.setText(_translate("spectral_Window_phone", "自动平均"))
|
||||
self.label_4.setText(_translate("spectral_Window_phone", "连续测量"))
|
||||
self.t_label.setText(_translate("spectral_Window_phone", "温度:无数据"))
|
||||
self.hum_label.setText(_translate("spectral_Window_phone", "湿度:无数据"))
|
||||
self.camera_status_label.setText(_translate("spectral_Window_phone", "光谱仪:连接失败"))
|
||||
1057
record_system_v27/ui/spectral_Window_phone.ui
Normal file
1057
record_system_v27/ui/spectral_Window_phone.ui
Normal file
File diff suppressed because it is too large
Load Diff
2313
record_system_v28/2record_system_v28.py
Normal file
2313
record_system_v28/2record_system_v28.py
Normal file
File diff suppressed because it is too large
Load Diff
63
record_system_v28/delete.py
Normal file
63
record_system_v28/delete.py
Normal file
@ -0,0 +1,63 @@
|
||||
from ximea import xiapi
|
||||
import numpy as np
|
||||
|
||||
cam = xiapi.Camera()
|
||||
cam.open_device()
|
||||
|
||||
|
||||
|
||||
# self.cam.set_width(1392)
|
||||
# cam.set_offsetX(272)
|
||||
#
|
||||
# cam.set_height(302)
|
||||
# cam.set_offsetY(338)
|
||||
|
||||
|
||||
# Serial number = 0031
|
||||
cam.set_width(1392)
|
||||
cam.set_offsetX(272)
|
||||
|
||||
cam.set_height(302)
|
||||
cam.set_offsetY(406)
|
||||
|
||||
framerate=20
|
||||
|
||||
cam.set_framerate(framerate)
|
||||
|
||||
|
||||
# cam.set_aeag_roi_offset_x(self.config_file_object.start_column)
|
||||
# cam.set_aeag_roi_offset_y(self.config_file_object.start_row)
|
||||
# cam.set_aeag_roi_height(self.config_file_object.end_row - self.config_file_object.start_row)
|
||||
# cam.set_aeag_roi_width(self.config_file_object.end_column - self.config_file_object.start_column)
|
||||
|
||||
|
||||
img = xiapi.Image()
|
||||
|
||||
# 使用相机自动曝光功能得到初始曝光值
|
||||
cam.enable_aeag() # 开启自动曝光
|
||||
cam.start_acquisition()
|
||||
for i in range(10):
|
||||
cam.get_image(img) # get data and pass them from camera to img
|
||||
cam.stop_acquisition()
|
||||
cam.disable_aeag() # 关闭自动曝光
|
||||
|
||||
|
||||
# 根据自动曝光所得初始曝光值,循环迭代获取不过曝的曝光值
|
||||
img.get_image_data_numpy()
|
||||
image_raw_numpy = img.get_image_data_numpy()
|
||||
while image_raw_numpy.max() >= 2730:
|
||||
cam.set_exposure(int(0.9 * cam.get_exposure()))
|
||||
|
||||
cam.start_acquisition()
|
||||
cam.get_image(img) # get data and pass them from camera to img
|
||||
cam.stop_acquisition()
|
||||
image_raw_numpy = img.get_image_data_numpy()
|
||||
|
||||
# 如果因为光线不足曝光值达到了最大,就将曝光反馈变量设置为1
|
||||
if cam.get_exposure() > int(1 / framerate * 10**6):
|
||||
cam.set_exposure(int(1 / framerate * 10**6))
|
||||
autoexposure_feedback = 1
|
||||
else:
|
||||
cam.set_exposure(cam.get_exposure())
|
||||
|
||||
haha=cam.get_exposure()
|
||||
48
record_system_v28/log/corning_config - 20220627.ini
Normal file
48
record_system_v28/log/corning_config - 20220627.ini
Normal file
@ -0,0 +1,48 @@
|
||||
[bin]
|
||||
binning = 1
|
||||
start_column_binning_1 = 12
|
||||
end_column_binning_1 = 1376
|
||||
start_row_binning_1 = 1
|
||||
end_row_binning_1 = 301
|
||||
start_column_binning_2 = 13
|
||||
end_column_binning_2 = 695
|
||||
start_row_binning_2 = 1
|
||||
end_row_binning_2 = 151
|
||||
|
||||
[effective_window]
|
||||
width_binning_1 = 1392
|
||||
offsetx_binning_1 = 272
|
||||
height_binning_1 = 302
|
||||
offsety_binning_1 = 364
|
||||
width_binning_2 = 696
|
||||
offsetx_binning_2 = 128
|
||||
height_binning_2 = 151
|
||||
offsety_binning_2 = 182
|
||||
|
||||
[calibration_file]
|
||||
cal_file_name_image_bining_1 = lens_bin1_gain_SN0073
|
||||
cal_file_name_image_bining_2 = lens_bin2_gain_SN0073
|
||||
cal_file_it_image_bining_1 = 6969
|
||||
cal_file_it_image_bining_2 = 1628
|
||||
cal_file_name_spectral_bining_1 = optical_fiber_bin1_gain_SN0073
|
||||
cal_file_it_spectrl_bining_1 = 42300
|
||||
|
||||
[wavelength_file_name]
|
||||
file_name = wavelength0073.txt
|
||||
|
||||
[image_record_param]
|
||||
image_dir = D:\py_program\corning410\record_system_v28/image
|
||||
default_image_name = testimage
|
||||
framerate = 50
|
||||
exposure_time = 9367.0
|
||||
gain = 0.0
|
||||
frame_number = 20
|
||||
arcus_speed = 1000
|
||||
|
||||
[spectral_record_param]
|
||||
spectral_dir = D:\py_program\corning410\record_system_v28/spectral
|
||||
default_spectral_name = testspectral
|
||||
spectral_number = 10
|
||||
framenumber_average = 10
|
||||
exposure_time_spectral = 69997
|
||||
|
||||
48
record_system_v28/log/corning_config.ini
Normal file
48
record_system_v28/log/corning_config.ini
Normal file
@ -0,0 +1,48 @@
|
||||
[bin]
|
||||
binning = 1
|
||||
start_column_binning_1 = 12
|
||||
end_column_binning_1 = 1376
|
||||
start_row_binning_1 = 1
|
||||
end_row_binning_1 = 301
|
||||
start_column_binning_2 = 13
|
||||
end_column_binning_2 = 695
|
||||
start_row_binning_2 = 1
|
||||
end_row_binning_2 = 151
|
||||
|
||||
[effective_window]
|
||||
width_binning_1 = 1392
|
||||
offsetx_binning_1 = 272
|
||||
height_binning_1 = 302
|
||||
offsety_binning_1 = 364
|
||||
width_binning_2 = 696
|
||||
offsetx_binning_2 = 128
|
||||
height_binning_2 = 151
|
||||
offsety_binning_2 = 182
|
||||
|
||||
[calibration_file]
|
||||
cal_file_name_image_bining_1 = lens_bin1_gain_SN0073
|
||||
cal_file_name_image_bining_2 = lens_bin2_gain_SN0073
|
||||
cal_file_it_image_bining_1 = 6969
|
||||
cal_file_it_image_bining_2 = 1628
|
||||
cal_file_name_spectral_bining_1 = optical_fiber_bin1_gain_SN0073
|
||||
cal_file_it_spectrl_bining_1 = 42300
|
||||
|
||||
[wavelength_file_name]
|
||||
file_name = wavelength0073.txt
|
||||
|
||||
[image_record_param]
|
||||
image_dir = D:\py_program\corning410\record_system_v28/image
|
||||
default_image_name = 20220627
|
||||
framerate = 10
|
||||
exposure_time = 23232
|
||||
gain = 0.0
|
||||
frame_number = 50
|
||||
arcus_speed = 800
|
||||
|
||||
[spectral_record_param]
|
||||
spectral_dir = D:\py_program\corning410\record_system_v28/spectral
|
||||
default_spectral_name = testspectral
|
||||
spectral_number = 10
|
||||
framenumber_average = 10
|
||||
exposure_time_spectral = 69997
|
||||
|
||||
0
record_system_v28/ui/__init__.py
Normal file
0
record_system_v28/ui/__init__.py
Normal file
150
record_system_v28/ui/enter_window.py
Normal file
150
record_system_v28/ui/enter_window.py
Normal file
@ -0,0 +1,150 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'enter_window.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_enter_Window(object):
|
||||
def setupUi(self, enter_Window):
|
||||
enter_Window.setObjectName("enter_Window")
|
||||
enter_Window.setEnabled(True)
|
||||
enter_Window.resize(651, 474)
|
||||
self.centralwidget = QtWidgets.QWidget(enter_Window)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.camstatus_label = QtWidgets.QLabel(self.centralwidget)
|
||||
self.camstatus_label.setEnabled(True)
|
||||
self.camstatus_label.setStyleSheet("QLabel\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:30pt;\n"
|
||||
" /*字体颜色为白色*/\n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/\n"
|
||||
" background-color:rgb(225 , 225 , 225);\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}")
|
||||
self.camstatus_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.camstatus_label.setObjectName("camstatus_label")
|
||||
self.gridLayout.addWidget(self.camstatus_label, 2, 0, 1, 1)
|
||||
self.spectral_mode_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.spectral_mode_bt.setEnabled(True)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.spectral_mode_bt.sizePolicy().hasHeightForWidth())
|
||||
self.spectral_mode_bt.setSizePolicy(sizePolicy)
|
||||
self.spectral_mode_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.spectral_mode_bt.setObjectName("spectral_mode_bt")
|
||||
self.gridLayout.addWidget(self.spectral_mode_bt, 1, 0, 1, 1)
|
||||
self.image_mode_phone_bt = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.image_mode_phone_bt.setEnabled(True)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.image_mode_phone_bt.sizePolicy().hasHeightForWidth())
|
||||
self.image_mode_phone_bt.setSizePolicy(sizePolicy)
|
||||
self.image_mode_phone_bt.setStyleSheet("/*按钮普通态*/\n"
|
||||
"QPushButton\n"
|
||||
"{\n"
|
||||
" /*字体为微软雅黑*/\n"
|
||||
" font-family:Microsoft Yahei;\n"
|
||||
" /*字体大小为20点*/\n"
|
||||
" font-size:25pt;\n"
|
||||
" /*字体颜色为白色*/ \n"
|
||||
" /*color:white;*/\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(225 , 225 , 225);\n"
|
||||
" /*边框圆角半径为8像素*/ \n"
|
||||
" border-radius:20px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮停留态*/\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(44 , 137 , 255);\n"
|
||||
" /*边框圆角半径为8像素*/\n"
|
||||
" /*border-radius:20px;*/\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"/*按钮按下态*/\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" /*背景颜色*/ \n"
|
||||
" background-color:rgb(255 , 0 , 0);\n"
|
||||
"\n"
|
||||
" /*左内边距为3像素,让按下时字向右移动3像素*/ \n"
|
||||
" padding-left:3px;\n"
|
||||
"\n"
|
||||
" /*上内边距为3像素,让按下时字向下移动3像素*/ \n"
|
||||
" padding-top:3px;\n"
|
||||
"}")
|
||||
self.image_mode_phone_bt.setObjectName("image_mode_phone_bt")
|
||||
self.gridLayout.addWidget(self.image_mode_phone_bt, 0, 0, 1, 1)
|
||||
enter_Window.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(enter_Window)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 651, 23))
|
||||
self.menubar.setObjectName("menubar")
|
||||
enter_Window.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(enter_Window)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
enter_Window.setStatusBar(self.statusbar)
|
||||
self.actionwew_e = QtWidgets.QAction(enter_Window)
|
||||
self.actionwew_e.setObjectName("actionwew_e")
|
||||
|
||||
self.retranslateUi(enter_Window)
|
||||
QtCore.QMetaObject.connectSlotsByName(enter_Window)
|
||||
|
||||
def retranslateUi(self, enter_Window):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
enter_Window.setWindowTitle(_translate("enter_Window", "主窗口"))
|
||||
self.camstatus_label.setText(_translate("enter_Window", "正在打开相机..."))
|
||||
self.spectral_mode_bt.setText(_translate("enter_Window", "光谱模式"))
|
||||
self.image_mode_phone_bt.setText(_translate("enter_Window", "影像模式"))
|
||||
self.actionwew_e.setText(_translate("enter_Window", "wew e"))
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user