[分享] 基于Python的示波器的截屏GUI界面
2283 查看
8 回复
 楼主 | 发布于 2018-04-21 | 只看楼主
分享到:

import time

import tkinter as tk

from tkinter import *

from tkinter import ttk

class ScreenCapture(object):

    def __init__(self):

        self.idn = self.__class__.__name__

        # Instrument Initialisation

#        self.instr = MyInstruments()

        self.timestamp = time.strftime('%d-%b-%Y_%I.%M.%S_%p')

        self.results_folder = '%s%s%s' % ('./EvalData/', self.timestamp, '/')

    def gui_setup(self):

        # Title and window size

        win = tk.Tk()

        win.title("Screen Capture GUI")

        win.geometry('550x400')

        # CH Name Setting

        label1 = ttk.Label(win, text='CH1:LABEL:NAME').grid(column=0, row=0)

        text1 = tk.Text(width = 10, height = 1)

        text1.grid(column=1, row=0)

        text1.insert(INSERT,'LX1')

        label2 = ttk.Label(win, text='CH2:LABEL:NAME').grid(column=0, row=1)

        text2 = tk.Text(width = 10, height = 1)

        text2.grid(column=1, row=1)

        text2.insert(INSERT,'VOUT')

        label3 = ttk.Label(win, text='CH3:LABEL:NAME').grid(column=0, row=2)

        text3 = tk.Text(width = 10, height = 1)

        text3.grid(column=1, row=2)

        text3.insert(INSERT,'LX2')

        label4 = ttk.Label(win, text='CH4:LABEL:NAME').grid(column=0, row=3)

        text4 = tk.Text(width = 10, height = 1)

        text4.grid(column=1, row=3)

        text4.insert(INSERT, 'IOUT')

        # CH Offset Setting

        ttk.Label(win, text="CH1 Offset").grid(column=2, row=0)

        ch1offset = StringVar()

        ch1offset_set = Scale(win, from_=0, to=2, orient=HORIZONTAL, resolution=0.01, tickinterval=100, length=100, variable=ch1offset)

        ch1offset_set.grid(column=3, row=0)

        ttk.Label(win, text="CH2 Offset").grid(column=2, row=1)

        ch2offset = StringVar()

        ch2offset_set = Scale(win, from_=0, to=2, orient=HORIZONTAL, resolution=0.01, tickinterval=10, length=100, variable=ch2offset)

        ch2offset_set.grid(column=3, row=1)

        ttk.Label(win, text="CH3 Offset").grid(column=2, row=2)

        ch3offset = StringVar()

        ch3offset_set = Scale(win, from_=0, to=2, orient=HORIZONTAL, resolution=0.01, tickinterval=10, length=100, variable=ch2offset)

        ch3offset_set.grid(column=3, row=2)

        ttk.Label(win, text="CH4 Offset").grid(column=2, row=3)

        ch4offset = StringVar()

        ch4offset_set = Scale(win, from_=0, to=2, orient=HORIZONTAL, resolution=0.01, tickinterval=10, length=100, variable=ch4offset)

        ch4offset_set.grid(column=3, row=3)

        # Input Voltage setting

        ttk.Label(win, text="INPUT VOLTAGE[V]").grid(column=0, row=4)

        vin = tk.StringVar()

        vin_set = ttk.Combobox(win, width=10, textvariable=vin)

        vin_set['values'] = (2.5, 3.0, 3.5, 3.7, 4.0, 4.5, 5.0, 5.5)

        vin_set.grid(column=1, row=4)

        vin_set.current(3)

        # Output Current Setting

        ttk.Label(win, text="LOAD CURRENT[A]").grid(column=0, row=5)

        iout = tk.StringVar()

        iout_set = ttk.Combobox(win, width=10, textvariable=iout)

        iout_set['values'] = (0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0)

        iout_set.grid(column=1, row=5)

        iout_set.current(0)

        # Trigger choose and type setting

        ttk.Label(win, text="CH Num of Trigger").grid(column=0, row=6)

        number = tk.StringVar()

        numberChosen = ttk.Combobox(win, width=10, textvariable=number)

        numberChosen['values'] = ('CH1','CH2', 'CH3', 'CH4')

        numberChosen.grid(column=1, row=6)

        numberChosen.current(3)

        riseorfall = tk.StringVar()

        riseorfallChosen = ttk.Combobox(win, width=10, textvariable=riseorfall)

        riseorfallChosen['values'] = ('Rise','Fall')

        riseorfallChosen.grid(column=2, row=6)

        riseorfallChosen.current(1)

        # Screen Capture button

        action = ttk.Button(win, text="Screen Capture")

        action.grid(column=1, row=10)

        tk.mainloop()

if __name__ == '__main__':

    meas = ScreenCapture()

    try:

        meas.gui_setup()

    finally:

        pass



(0 ) (0 )
回复 举报

楼主 | 回复于 2018-04-21 沙发

抱歉。保存的时候格式出现问题了。。。
(0 )
评论 (0) 举报

楼主 | 回复于 2018-04-21 2#

输出结果如下图:

(0 )
评论 (0) 举报

回复于 2018-04-21 3#

THANKS
(0 )
评论 (0) 举报

回复于 2018-04-21 4#

这个不错;
(0 )
评论 (0) 举报

楼主 | 回复于 2018-04-21 5#

格式没法修改,各位有经验的可以指点一下。
(0 )
评论 (0) 举报

回复于 2018-04-22 6#

这个不错,有人说Python做界面速度慢,楼主实际测试如何?
(0 )
评论 (2) 举报

楼主 | 回复于 2018-04-23 7#

这个只是图形界面,和示波器建立通信稍后完善。

(0 )
评论 (1) 举报

回复于 2018-04-23 8#

感谢分享
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部