我在 tkinter 中使用条目的删除方法时遇到问题。目前我按如下方式导入 tkinter:
import Tkinter as tk
Run Code Online (Sandbox Code Playgroud)
然后我声明两个变量,用于跟踪两个输入字段的值,如下所示:
self.UN = tk.StringVar()
self.PW = tk.StringVar()
Run Code Online (Sandbox Code Playgroud)
我能够使用
self.UN.get()
Run Code Online (Sandbox Code Playgroud)
没有任何问题,但是当尝试使用删除值时
self.UN.delete(0, END)
Run Code Online (Sandbox Code Playgroud)
我收到错误消息,StringVar 实例没有属性“删除”我已经查看了其他可能的解决方案,但似乎没有一个与我的问题相关。我使用以下教程来尝试使其工作:http : //effbot.org/tkinterbook/entry.htm
我还尝试了删除的变体,例如将 Tk.END 放在括号内,但无法实现。任何帮助表示赞赏。
我正在尝试为我的第一个SFML项目编写一个非常基本的游戏.它是一个带有关节臂的机器人,只能用手弹出气球.我遇到的问题是,检查是否夹击精灵与气球精灵相交时,返回true所有的时间,无论气球或机器人夹击的位置.我正在使用变换来放置机器人手臂的各个部分,这是我想到的问题,但我不知道为什么.我已经尝试在单独的程序中使用边界框碰撞,其中不使用变换并且它完美地工作.转换和检测代码如下.如果有人能向我解释这一点,我将不胜感激.我是SFML的新手,所以为我的无知道歉!
sf::Transform trBody;
trBody.translate(sBodyPos);
/////////////////////////////////////////////////
sf::Transform trArm1;
trArm1.translate(sArm1Pos);
sf::Transform rotArm1;
rotArm1.rotate(sArm1Rot);
sf::Transform TR1 = trBody*trArm1*rotArm1;
/////////////////////////////////////////////////
sf::Transform trArm2;
trArm2.translate(sArm2Pos);
sf::Transform rotArm2;
rotArm2.rotate(sArm2Rot);
sf::Transform TR2 = TR1*trArm2*rotArm2;
/////////////////////////////////////////////////
sf::Transform trPincer1;
trPincer1.translate(sPincer1Pos);
sf::Transform TR3 = TR2*trPincer1;
/////////////////////////////////////////////////
sf::Transform trPincer2;
trPincer2.translate(sPincer2Pos);
sf::Transform TR4 = TR2*trPincer2;
/////////////////////////////////////////////////
sf::Transform trBalloon1;
trBalloon1.translate(sBalloon1Pos);
if (sPincer1.getGlobalBounds().intersects(sBalloon1.getGlobalBounds())){
cout << "Bang" << endl;
ballOneHit = true;
}
// Clear screen
app.clear();
app.draw(sArm2, TR2);
app.draw(sPincer1, TR3);
app.draw(sPincer2, TR4);
app.draw(sArm1, TR1);
app.draw(sBody, trBody);
if (ballOneHit == false){
app.draw(sBalloon1, trBalloon1);
}
// Update …Run Code Online (Sandbox Code Playgroud) 我有一个小脚本,我将图片从覆盆子pi上的picamera传递到OpenCV的流.一旦OpenCV有了图像,它应该使用haar级联方法寻找面部.如果我将面部检测分开,代码将运行正常,读入图像并按预期上传到远程服务器.当我进行面部检测时,我得到以下错误:
flags = cv2.cv.CV_HAAR_SCALE_IMAGE
TypeError:找不到必需参数'rejectLevels'(pos 2)
这是代码:
current_time = time.time()
endtime = current_time + 30
stream = io.BytesIO()
CAMERA_WIDTH = 640
CAMERA_HEIGHT = 480
cascPath = sys.argv[1]
faceCascade = cv2.CascadeClassifier(cascPath)
while current_time <= endtime:
timeStamp = time.strftime('%d-%m-%Y-%H-%M-%S', time.localtime(current_time))
with picamera.PiCamera() as cam:
cam.rotation = 270
cam.resolution = (CAMERA_WIDTH, CAMERA_HEIGHT)
cam.capture(stream, format='bmp')
data = np.fromstring(stream.getvalue(), dtype=np.uint8)
img = cv2.imdecode(data, 1)
stream.seek(0)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbours=5,
minSize=(30,30),
flags = cv2.cv.CV_HAAR_SCALE_IMAGE
)
print("Found {0} faces!".format(len(faces)))
Run Code Online (Sandbox Code Playgroud)
我不确定错误告诉我的是什么,一些建议会很棒!
我正在tkinter(python)中构建一个基本的登录系统,当用户输入要注册的详细信息时,我想显示一个tkmessagebox,该框将告诉他们输入中是否有错误。
最初加载GUI时,询问他们是否要登录或注册(工作正常)。假设用户单击注册,则将他们带到第二个屏幕以输入其详细信息(也可以正常工作)。从那里,当他们输入详细信息并单击“注册”时,如果显示错误警报,则GUI的注册部分将失去焦点,并消失在用户选择进入注册屏幕的GUI的第一部分的后面。
显示警报时,有什么方法可以防止我的子窗口失去焦点吗?
def registerCheck(self):
#print('Username: '+ str(self.UN.get()))
errorList = ''
if self.UN.get() == '':
errorList += 'Username cannot be empty\n'
if len(self.PW.get()) < 4:
errorList += 'Password must be more than 4 characters long\n'
if self.PW.get() != self.PWCF.get():
errorList += 'Passwords do not match\n'
if len(self.Email.get()) < 5:
errorList += 'Email is not valid\n'
if errorList == '':
tkMessageBox.showinfo(title="About", message="No Errors Found")
else:
tkMessageBox.showerror(title="Errors Found!", message=errorList)
return
Run Code Online (Sandbox Code Playgroud)


