python - 想要在两个不同的 tkinter 标签中显示两个字符串值
问题描述
我使用 tkinter GUI 编写了用于在两个不同标签中显示两个串行读取字符串的代码。我的代码正在运行并且窗口也弹出但没有显示值。帮助我解决这个问题。这是我的代码
import serial
import tkinter
from tkinter import *
import time
class SerialViewer(Tk):
def _init_(self):
self.win = Tk()
self.ser=serial.Serial('/dev/ttyS0',9600)
def makewindow (self):
frame1 =Frame(self.win)
frame1.pack()
self.v=StringVar()
self.v.set=('default')
label=Label(frame1,textvariable=self.v,relief=RAISED)
label.pack(side=LEFT)
frame2 = Frame(self.win)
frame2.pack()
self.d=StringVar()
self.d.set=('default')
label=Label(frame2,textvariable=self.d,relief=RAISED)
label.pack(side=RIGHT)
def update(self):
print(self.ser.write("*01T%"))
data=self.ser.readline(self.ser.inWaiting())
self.v.set(data)
time.sleep(2)
print(self.ser.write('*00T%'))
data1=self.ser.readline(self.ser.inWaiting())
self.d.set(data1)
self.win.after(100,self.update)
def run (self):
self.makewindow()
self.update()
self.win.mainloop()
app=SerialViewer()
app.mainloop()
解决方案
正如评论中所说,方法 _init_ 需要更改为 __init__ 并且递归错误即将到来,因为未调用父类的 __init__ 方法。请添加如下调用:
class SerialViewer(Tk):
def _init_(self):
super(SerialViewer, self).__init__() # Call the initializer method of parent class
self.win = Tk()
self.ser=serial.Serial('/dev/ttyS0',9600)
希望这可以帮助!!
推荐阅读
- javascript - 如果语句不适用于 document.querySelector
- web-scraping - 刮 Highchart,缺少数据
- rust - 如何在 nom 中获取 N 位字节?
- python - 无法在命令行中运行 python 脚本 - urllib3.util.ssl_
- haskell - 处理结果的可能解决方案以“(RealFrac a,Integral a)=>a”结尾
- java - 在 Android Studio 中为通话记录添加搜索功能
- android - 基本 react-native 项目的运行错误
- python - 计算 Azure 数据湖 gen2 容器大小和读/写操作
- app-store - 列出 Apple Store 应用程序的所有应用程序内产品
- javascript - 调试使用 ES6 模块的 JavaScript 代码