小编Rob*_*ney的帖子

StringVar 实例没有属性“删除”

我在 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 放在括号内,但无法实现。任何帮助表示赞赏。

tkinter python-2.7

5
推荐指数
1
解决办法
4660
查看次数

SFML边界框碰撞检测

我正在尝试为我的第一个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)

c++ collision-detection bounding-box sfml

3
推荐指数
1
解决办法
3361
查看次数

必需参数'rejectLevels'(pos 2)未找到OpenCV Raspberry Pi

我有一个小脚本,我将图片从覆盆子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)

我不确定错误告诉我的是什么,一些建议会很棒!

opencv python-2.7 raspberry-pi

1
推荐指数
1
解决办法
3592
查看次数

显示信息警报时,Python tkinter窗口失去焦点

我正在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)

初始画面

注册画面

在此处输入图片说明

python user-interface tkinter python-2.7

-1
推荐指数
1
解决办法
506
查看次数