Каркас робота, открывающий несколько окон Tkinter - PullRequest
0 голосов
/ 21 февраля 2019

В настоящее время я вызываю класс из скрипта фреймворка робота, и он открывает два окна Tkinter.Я попытался запустить свой объект python через PyCharm и через cmd, и через него я получаю только одно окно Tkinter.Однако, когда я вызываю мой объект через RobotFramework, он открывает пустое окно Tk и ожидаемое окно Tk.Есть идеи?

Мой Hello.py - это:

from Tkinter import *


class hello(object):
    def __init__(self, question="Not today"):
        self.question = question
        self.master = Tk()
        self.lbl = Label(self.master, text=self.question)
        self.lbl.pack()
        self.btn = Button(self.master, text="Yes", command=self.yes_command)
        self.btn.pack()
        self.master.mainloop()

    def yes_command(self):
        print("User pressed Yes")
        self.master.quit()
        self.master.destroy()

Содержимое моего файла tk_hello:

from Tkinter import *


class tk_hello(object):
    def __init__(self, question):
        self.question = question
        self.master = Tk()
        self.lbl = Label(self.master, text=self.question)
        self.lbl.pack()
        self.btn = Button(self.master, text="Yes", command=self.yes_command)
        self.btn.pack()
        self.master.mainloop()

    def yes_command(self):
        print("User pressed Yes")
        self.master.quit()
        self.master.destroy()

Мой скрипт Robot Framework:

*** Settings ***
Library           hello.py

*** Variables ***

*** Test Cases ***
Example_1
    Import Library    ${CURDIR}\\..\\work_project\\tk_hello.py    "Worked"    WITH NAME    Try_This
    Log To Console    \r ${CURDIR}

1 Ответ

0 голосов
/ 21 февраля 2019

Когда вы импортируете Hello.py, робот обнаруживает класс с именем hello, поэтому он автоматически создает его экземпляр.Он создает корневое окно в функции __init__, так что это ваше первое окно.

Когда вы импортируете tk_hello.py, робот обнаруживает класс с именем tk_hello, поэтому он автоматически создает его экземпляр.Он создает корневое окно в функции __init__, это ваше второе окно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...